Sobreescribir menu links del core de Drupal 6

Escrito por Roberto M. Oliva el Febrero 26th, 2009

Esto es más un apunte para que no se me olvide la próxima vez. Si además le viene bien a alguien, pues mejor :)

Cuando creamos un módulo podemos hacer que atienda él mismo las peticiones que se harían al core si no estuviese. Dicho de otra manera: Nuestro módulo va a interceptar ciertas llamadas que se harían al core de Drupal para proporcionar un comportamiento diferente al de por defecto y no romper el sistema de enlaces propuesto por Drupal.

Por ejemplo, he desarrollado un modulo que muestra los elementos de una taxonomía de manera distinta a como lo hace Drupal. Para ello hemos redigido la llamada de menú: taxonomy/term/% (atendida por el core en el modulo Taxomony) a una función de nuestro módulo.

Al motor de enlaces le va a llegar dos entradas de menu que tienen la misma url, pero que apuntan a dos funciones distintas. Cómo hace Drupal para escoger la que va a atender? Pues muy sencillo, por el peso del módulo que atiende a las peticiones.

Todos los módulos se instalan con un peso por defecto, si a nuestro módulo le ponemos un peso mayor que el del módulo Taxonomy del core (la lista de llamadas se hace sobreescribiendo las anteriores y Drupal recorre los modulos, al generar el menú, de menor a mayor peso) la sobreescribirá con la entrada de menu de nuestro módulo.

Para cambiar el peso de un módulo, basta con actualizar el valor del campo weight de la table {system} de la base de datos de nuestro sitio. Para más información: How to update a module’s weight.

Por último recordar que el menú del sitio se encuentra cacheado en la base de datos. No basta con actualizar nuestro código para que queden disponibles los enlaces implementados en nuestro módulo. Hay que recargar la tabla {menu_links}. Esto es facil de hacer guardando la lista de módulos del sitio, sin tocar nada.

Escritos anteriores

Otra manera de calcular la media ponderada en Ruby

Escrito por Roberto M. Oliva el Febrero 16th, 2009

Hook_theme en Drupal 6

Escrito por Roberto M. Oliva el Octubre 10th, 2008

Flex: Atendiendo a la finalizacion de comandos

Escrito por Roberto M. Oliva el Julio 22nd, 2008

Desplegando Rails

Escrito por Roberto M. Oliva el Abril 16th, 2008

Retomando…

Escrito por Roberto M. Oliva el Abril 1st, 2008

La importancia del testing

Escrito por Roberto M. Oliva el Noviembre 26th, 2007

Flex: Mostrar imágen desde un servicio XML

Escrito por Roberto M. Oliva el Julio 30th, 2007

Apuntes para RJS

Escrito por Roberto M. Oliva el Julio 30th, 2007

Este camino se acabará algún día?

Escrito por Roberto M. Oliva el Junio 29th, 2007

Bienvenido a mi blog.

Gracias por visitarla. Date una vuelta y mira a ver si te interesa lo que escribo. Por supuesto que me gustaría conocer tu opinión, así que siéntete libre de poner tus comentarios. Espero que te guste!