Class ‘Mage_Googlecheckout_Helper_Data’ not found

magento_logo

El otro día actualicé un Magento de la versión 1.8.0.0 a la 1.8.1.0. Al entrar al administrador me salía la típica ventana de Magento en blanco total que no te informa de absolutamente nada (White Screen Of Death), menos mal que a veces el fichero de errores de apache dice alguna cosa útil.

El problema estaba en la clase Mage_Googlecheckout_Helper_Data. Algo han hecho en la última versión ya que en la propia info de de lanzamiento ponen que hay que eliminar todos los archivos menos config.xml de la ruta

/magento-install-dir/app/code/core/Mage/GoogleCheckout/etc

Más info en:

http://www.magentocommerce.com/knowledge-base/entry/ce-18-later-release-notes#11810-changes-upgrade-issue
http://stackoverflow.com/questions/20569358/class-mage-googlecheckout-helper-data-not-found

Paginación de usuarios en WordPress con wp_pagenavi y WP_User_Query

wordpress-logo

Para listar usuarios en WordPress basta con usar WP_User_Query como si fuera una WP_Query normal (con sus modificaciones claro). Lo que me ha costado a mi es encontrar como hacer la paginación de estos usuarios con wp_pagenavi. Este es un plugin de paginación avanzada que funciona genial.

Bueno, pues para hacer que todo funcione como toca hay que hacer la consulta controlando las variables de paginación así:

Y justo antes de cerrar el if poner el siguiente código, indicando la variable de consulta y el tipo.

Ya digo, algo muy sencillo pero que me ha costado encontrar como hacerlo.

+info: http://wordpress.stackexchange.com/questions/30977/list-users-by-last-name-in-wp-user-query ( Cuidado, no implementa bien la paginación )

http://wordpress.org/support/topic/plugin-wp-pagenavi-fatal-error-call-to-undefined-method-wp_user_queryget

Quitar decimales en los precios de Magento 1.7.0.2

magento_logo

Puede ser que en tu proyecto tengas que quitar los decimales porque los precios de tus productos sean muy altos y no quieres tener el típico ,00 colgando de todos ellos.

Para hacer esto solo hay que copiar un archivo del core a local y modificar el número de decimales.

  1. Copiar el archivo app/code/core/Mage/Directory/Model/Currency.phpapp/code/local/Mage/Directory/Model para no eliminarlo en futuras actualizaciones
  2. Busca la función format y cambia la precisión de 2 a 0:

Con lo que te quedaría el código así:

Url de custom post types en WordPress saca 404

Al crear un custom post type en wordpress me sacaba un 404 al acceder a cada uno de ellos. Para solucionarlo he tenido que usar este código para generar de nuevo el url rewrite:

Donde incluímos al principio del array de reglas de reescritura la que nos vale para que el custom post type cursos se renderice correctamente.

Lo he sacado de aquí: http://codex.wordpress.org/Custom_Queries#Permalinks_for_Custom_Archives

Por lo visto si se crea un plugin en lugar de hacerlo directamente desde el archivo functions.php también funciona, pero yo soy así de bruto.

Streaming de ficheros zip en php

En Uhuru Labs tenemos varias secciones con archivos descargables. Algunos de ellos son ficheros comprimidos en .zip como MMP, la extensión para VLC que creamos hace ya un año.

El caso es que subimos la versión y no nos dimos cuenta durante bastante tiempo de que teníamos un error grave a la hora de descargar los ficheros comprimidos. Resulta que sí que descargaba un fichero .zip, pero al descomprimirlo este se convertía en un fichero .cpgz y al descomprimir este volvía a aparecer el fichero .zip. Era un bucle infinito de descompresiones!!

El error lo teníamos en la descarga del archivo, ya que utilizamos un script php que, aparte de proporcionar el archivo comprimido según el proyecto y la versión de este, nos avisa por correo de la descarga realizada. En este script ponemos los datos del header y luego vamos leyendo el archivo requerido y mandandolo mediante la orden flush().

Para corregir el error, una vez creados los datos de la cabecera hay que hacer un ob_clean(), limpiando así el buffer de salida antes de empezar a mandar nada.

El código quedaría así:

Vídeos youtube en Magento

Parece algo sencillo, y en realidad lo es, lo que pasa es que hay un par de pegas que hacen que escriba este post.

Si queremos meter un video de youtube en un bloque estático o en una página en Magento, simplemente con ir a la url del video y obtener el código para compartir. Ahora es mucho más limpio ya que es una url que incluye todo en un tag <iframe> con lo que no hay tantos tags crípticos.

1. Una de las pegas que he encontrado es que se puede meter código html directamente en Magento, pero con la particularidad de que al acceder al contenido una vez guardado este, ciertos tags, como en este caso el tag <iframe> no se muestra en el editor.

Para arreglar esto hay que decirle al javascript utilizado en el editor del administrador que se pueden utilizar tags <iframe>. Lo que hay que hacer es incluir la línea:

en los settings del editor en:  js/mage/adminhtml/wysiwyg/tiny_mce/setup.js, cerca de la línea 96 donde pone var settings = {, dentro de este bloque es donde hay que añadir la línea, por ejemplo debajo de theme_advanced_resizing : true,

2. La otra pega, y esta ya es global, tanto para Magento como para cualquier web, es que puede ser que en la misma página tengamos un lightbox o una ventana modal que se muestre al pinchar en un enlace. Al mostrarse esta ventana modal ésta queda por debajo del video. Para solucionar esto, habrá que añadir a la url del video el parámetro wmode=opaque. Quedaría algo así:

Hay que tener en cuenta que si tenemos algún parámetro más en la url tendremos que poner un & en lugar del ? :

Con esto tendremos los vídeos como tienen que verse y no montándose encima de nuestras ventanas modales.

+info
+info