2013-08-16 50 views
0

我使用的Drupal 7. 我有去HREF鏈接= 「/ MOD /濾波器/ 1」drupal的菜單回調鉤子不調用函數

<a href="/mod/filter/1">X</a> 

和我有AA hook_menu

function mod_menu() { 
    $menu = array(
        'mod/filter/%' => array (
            "title" => "Bare HTML for use in ajax.", 
            "page callback" => "mod_remove_filter_function", 
            "page arguments" => array(1), 
            "type" => MENU_CALLBACK, 
        ) 
    ); 

    return $menu; 
} 

然後回調函數

function mod_remove_filter_function($arg){ 
    dsm('call back filter'); 
    drupal_goto('/res/search'); 
} 

對我來說,這應該工作,這是我第一次使用的菜單鉤,但這看起來應該按照給出的文檔工作。

任何想法爲什麼是行不通的?

回答

1
function mod_menu() { 
    $menu = array(
       'mod/filter/%' => array (
           "title" => "Bare HTML for use in ajax.", 
           "page callback" => "mod_remove_filter_function", 
           "page arguments" => array(1), 
           "type" => MENU_CALLBACK, 
       ) 
); 

    return $menu; 
    } 

勾是workds完美。問題可能在回調函數中 dsm函數需要devel模塊,如果您使用的是drupal_goto('/ res/search');首先檢查「/ res/search」路徑。

:) 

這裏是我如何在自定義模塊中使用hook_menu。

$menu['mod/filter/%'] = array(
     'title'=>t('look this is title'), 
        'page callback' => 'mod_remove_filter_function', 
     'access callback' => 'user_access', 
     'access arguments' => array('access_contents'), 
     'type' => MENU_NORMAL_ITEM, 
    ); 
0

請勿在菜單項中使用t()函數。通過defualt drupal將標題字符串傳遞給函數t()。您可以通過在菜單項目數組中設置新的「標題回調」來更改該行爲

See hook_menu book from drupal.org