No me carga el hook_menu [resuelto]

Events happening in the community are now at Drupal community events on www.drupal.org.
oskar_calvo's picture

Buenas gente, me pasa algo raro.

Os cuento, normalmente despiezo los módulos y suelo agregar un archivo solo para los hook_menu y hook_menu_alter(), así como otro para theming/ blocks, fields, etc.. vamos tener el módulo algo más ordenado, al menos a mi me parece que esta más ordenado.

El caso es que con el módulo con el que estoy

en wadus.module tengo

<?php
module_load_include
('inc', 'wadus', 'wadus.router');
?>

y en wadus.router.inc tengo

<?php
function wadus_menu(){

dpm('Hook menu function fired!');

}
?>

Y por lo que sea no me pinta el dpm, como si no leyese el archivo. He limpiado cache, reinstalado el módulo, etc... y no me ha dado problemas con el bloque, ni con las funciones de theming que también van fuera de wadus.module

Alguna idea que no sea llevar el hook_menu a wadus.module

Comments

Mi teoria es que dpm no está

rodrigoaguilera's picture

Mi teoria es que dpm no está cargado en la fase de bootstrap en la que se ejecuta hook_menu.
Intenta print_r

Gracias Rodrigo, al final lo

oskar_calvo's picture

Gracias Rodrigo, al final lo que he hecho ha sido comprobar la carga de module_load_include de la siguiente manera:

<?php
$file
= module_load_include('inc','wadus','wadus.router');
dpm($file);
?>

Y me devolvía el archivo correcto y una comprobación posterior en la tabla menu_roueter me ha demostrado que ha registrado el hook :D

Genial!

em_agus's picture

Me ha venido de perlas tu error, ya que me pasaba lo mismo y he podido corregirlo después de estar un día entero comiéndome el tarro. Gracias!

Yo los separo igual de la

jansete's picture

Yo los separo igual de la misma manera, con el module_load_include, se me ocurren algunas cosas para debuggear porque el código lo veo correcto:

Mirar el log de apache.
Revisar permisos si estás en linux.
Dpm te los muestra en la variable $messages no? Asegurarte que esa variable está en tus plantillas.

Y aquí un poco duda, a lo mejor en hook_menu no se visualizan, como igual pasa que si modificas cosas en el hook_menu no se toman los cambios hasta vaciar la caché, lo mismo luego el dpm lo escupe por otro lado o no afecta.

¿Has probado a meterle items a ver si funciona?

Saludos!

Debug

rpayanm's picture

Intenta ponerlo todo en mismo archivo, de la forma desorganizada a ver si funciona y vas descartando posibilidades.
Puedes también debuguear con xdebug y phpstorm, es muy bueno para este tipo de problemas, es sencillo y no hay que hacer mil configuraciones para esto, si te interesa te explico como hacerlo.

Salu2.

while(alive){learn();}

xDebug salva la vida

isholgueras's picture

Yo estoy con @rpayanm. xDebug es la mejor forma de debuggear y ver si pasa o no pasa, cuándo pasa,...

Yo lo tengo rulando con PHPStorm, pero funciona con Netbeans, Eclipse, ... incluso lo he visto funcionar con Sublime Text (aunque no lo recomiendo).

En la asociación de Drupal se hizo un vBof sobre xDebug. Configuración y funcionamiento.
https://www.youtube.com/watch?v=-lMo3CgNupo

no me carga el hook_menu de un modulos nuevos

alillo's picture

Hola soy nueva en drupal.

He creado varios modulos que me muestran paginas creadas con items y me iba bien hasta que borre por error una carpeta de un modulo, he vuelto a crearlo y siempre me da el error de pagina no encontrada.
Ni puedo crear nuevas paginas, ni modulos, ni modificar los que me funcionan.
Para hacerlo borro caché, incluso activo y desactivo el modulo.

Alguien sabe que me puede estar pasando. (uso drupal 7)

Gracias.

Recomiendo crear un tema sobre tu problema.

w4lt3r's picture

Hola,

Antes de empezar, te recomiendo publicar tu problema como un nuevo hilo, esto ayuda a que nuevas personas con problemas similares encuentren una referencia al respecto rápido y aún más importante no mezclar un problema con otro distinto, te dejo un enlace para que le des una leida: https://www.drupal.org/forum-posting.

Por lo general si eliminas la carpeta de un módulo solo con volver a descargar y descomprimir el módulo debería solucionar tu problema.

Nota: Debes asegurarte que el módulo se encuentre en la misma ruta de instalación.

Te hago las siguientes preguntas:

  • ¿Que módulo fue el que eliminaste por error?
  • ¿En el hook_menu de tus modulos, si estas retornando el array de configuración? Si por alguna razón se te olvida colocar el return o bien el nombre de la variable que retornas difiere de la original donde guardas tu configuración, pues no se registrarán tus rutas y por ende no encontrará las páginas.

Si lo anterior no te funciona, revisa el log de apache puede que encuentres más información al respecto en el.

Cuando crees tu post, copia y coloca el enlace como respuesta a este comentario para proseguir en el.

Nos cuentas que tal te fue para ayudarte.

Madrid

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: