drupal菜单回调挂钩不调用函数

时间:2013-08-16 10:36:39

标签: drupal-7 hook

我正在使用drupal 7。 我有一个链接到href =“/ mod / filter / 1”

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

我有一个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');
 }

对我来说,这应该可行,这是我第一次使用菜单钩子,但看起来它应该按照给出的文档工作。

任何想法为什么都不起作用?

2 个答案:

答案 0 :(得分: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;
  }
钩子是完美的。问题可能出在回调函数中  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,
    );

答案 1 :(得分:0)

不要在菜单项中使用t()函数。通过defualt drupal将标题字符串传递给函数t()。您可以通过在菜单项数组中设置新的“标题回调”来更改该行为

See hook_menu book from drupal.org