0

我正在使用 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');
 }

对我来说这应该可以工作,这是我第一次使用菜单挂钩,但这看起来应该根据给定的文档工作。

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

4

2 回答 2

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 函数需要开发模块,如果您使用的是 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,
    );
于 2013-08-25T11:31:01.547 回答
0

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

参见 drupal.org 的 hook_menu 书

于 2015-01-12T09:06:42.297 回答