Problemas con el módulo Localizer y Gallery en Drupal

La semana pasada detecté un problema con uno de los portales basados en Drupal. Por solicitud del cliente se instaló el módulo Localizer que permite mantener versiones en distintos idiomas de los contenidos de los nodos.

Este módulo modifica el estilo de los URL que maneja Drupal cambiándolos del estilo ?q=modulo/accion al estilo ?q=idioma/modulo/accion. Esto requirió que en algunas partes donde se autoriza o no el uso de algún recurso según el URL (como por ejemplo donde mostrar TinyMCE) se actualizara de node/* a */node/* y así sucesivamente.

Todo funcionaba perfectamente hasta que me percaté que el módulo de Galería de Imágenes que en realidad realiza la interacción con Gallery estaba fallando, los enlaces estaban siendo mal construídos y por ende llevaban al usuario a un error 404.

  • Incorrecta: http://HOST/apps/site/?q=es/index.php?q=gallery&g2_itemId=1&g2_GALLERYSID=XXX
  • Correcta: http://HOST/apps/site/?q=es/gallery&g2_itemId=1&g2_GALLERYSID=XXX

A pesar de que el autor de Localizer menciona en su sitio web que existen varias formas de configurar el módulo para que integre la información del idioma (la modificación mencionada al parámetro q es una de ellas) no encontré documentación acerca de como hacerlo. Investigué un poco y encontré una solución al problema.

En el archivo gallery_base.inc ubicado en modules/gallery realicé las siguientes modificaciones basadas en las incluídas para el módulo de I18.

En la línea 87 (función _gallery_init) agregué el siguiente código después de la línea “include_once($embed_path);“.

// Localizer url rewrite
if(module_exists('localizer'))
{
$embed_uri = preg_replace('/index.php?q=/', '', $embed_uri);
}

Esto corrige el URL de forma adecuada para que los visitantes puedan acceder a los álbumes de Gallery desde Drupal.

One thought on “Problemas con el módulo Localizer y Gallery en Drupal”

Leave a Reply

Your email address will not be published. Required fields are marked *