2011-09-13 27 views
7

Mam poniższe menu hook, przez które wysyłam dwa parametry do funkcji.Jak uzyskać wiele parametrów wysyłanych przez drupal hook_menu

Ale w funkcji otrzymuję tylko pierwszy parametr.

Czy ktoś wie, jak wysłać i uzyskać wiele parametrów za pomocą systemu menu 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

miałem ten sam problem i po przepłukaniu cache, to działało. – Parthi04

Odpowiedz

8

Robisz to dokładnie we właściwy sposób, jeśli to nie działa spróbuj spłukać swoje pamięci podręczne. Możliwe, że nie zostały one usunięte, ponieważ dodano drugi argument, a Drupal buforuje elementy zwracane z hook_menu(), więc nie musi być wywoływane na każdej stronie.

+0

Dzięki za radę. Ale wyczyszczenie pamięci podręcznych mi nie pomogło. Co ciekawe odkryłem, że musisz powiedzieć systemowi drupal, że wprowadziłeś zmiany w hook_menu, więc drupal może śledzić ścieżkę. Co zrobiłem najpierw odinstalować i ponownie zainstalować moduł niestandardowy (Robiąc to teraz drupal wiem, co robię) i to działało dla mnie. –

1

Jesteś na właściwej drodze i tak ... Jeśli to nie działa dla Ciebie, a następnie spróbuj następujące

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

Po odinstalowaniu i ponownym zainstalowaniu niestandardowego modułu mój kod zaczął działać. Próbuję wypróbować twój kod. Dziękuję za Twoją radę. –