2013-08-16 39 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