2011-09-13 7 views
7

Tengo este menú debajo del cual envío dos parámetros a la función.Cómo obtener múltiples parámetros enviados a través de drupal hook_menu

Pero en la función solo estoy recibiendo el primer parámetro.

¿Alguien sabe cómo enviar y obtener múltiples parámetros usando el sistema de menú de Drupal?

function drupal_menu(){ 
    $items = array(); 
    $items['drupal/%/%'] = array(
     'title' => t('Welcome to the Hello World Module'), 
     'page callback' => 'drupal_page', 
     'page arguments' => array(1,2), 
     'access arguments' => array('access content'), 
     'type' => MENU_CALLBACK, 
    ); 
    return $items; 
} 


function drupal_page($arg1, $arg2) {  
    return drupal_json(array('mess1'=>$arg1,'mess2'=>$arg2)); 
} 
+0

que tenía mismo problema y después de vaciar la caché, funcionó. – Parthi04

Respuesta

8

Ya lo está haciendo exactamente de la manera correcta, si no funciona intente lavar las cachés. Es posible que no se hayan borrado desde que agregó el segundo argumento, y Drupal almacena en caché los elementos devueltos por hook_menu(), por lo que no es necesario llamarlos en cada página.

+0

Gracias por su asesoramiento. Pero limpiar los escondites no me ayudó. Lo interesante que encontré es que necesita decirle al sistema central de drupal que ha realizado cambios en hook_menu, para que drupal pueda rastrear la ruta. Lo que hice primero desinstalé y reinstalé el módulo personalizado (haciendo eso ahora drupal sé lo que estoy haciendo) y funcionó para mí. –

1

Está en el camino correcto de todos modos ... Si no está trabajando para usted, a continuación, intente lo siguiente

function drupal_page($arg1, $arg2) { 
    $arg1_new = arg(1) ; 
    $arg2_new = arg(2) ; 
    return drupal_json(array(
    'mess1'=>$arg1_new, 
    'mess2'=>$arg2_new 
    ) 
); 
} 
+0

Después de desinstalar y volver a instalar el módulo personalizado, mi código comenzó a funcionar. Estoy buscando probar tu código. Gracias por su consejo. –

Cuestiones relacionadas