Drupal 6绝对通配符在_menu()中,是否可能?

Drupal 6绝对通配符在_menu()中,是否可能?,drupal,drupal-routes,Drupal,Drupal Routes,是否可以按模块处理_menu()中的所有通配符 我知道一些特定的通配符,比如 display/page/% 但是对于路径display/page/3/和derby/Name 如果我想处理大量不可预测的参数,比如 display/page/3/12/45_2/candy/yellow/bmw/turbo 我想要一个display/*\u menu()路径来处理所有参数 我该怎么做呢?Drupal将把任何附加URL元素作为附加参数传递给hook\u菜单回调函数-在回调中使用以获取它们 因此,如果您只

是否可以按模块处理_menu()中的所有通配符

我知道一些特定的通配符,比如

display/page/%
但是对于路径
display/page/3/和derby/Name

如果我想处理大量不可预测的参数,比如

display/page/3/12/45_2/candy/yellow/bmw/turbo

我想要一个
display/*
\u menu()路径来处理所有参数


我该怎么做呢?

Drupal将把任何附加URL元素作为附加参数传递给
hook\u菜单
回调函数-在回调中使用以获取它们

因此,如果您只注册了一个通配符
display/page/%
,但实际请求中有两个额外的元素
display/page/3/androderby/Name
,那么您的回调将以“3”作为显式参数传递,同时以“androderby”和“Name”作为隐式附加参数传递

回调示例:

function yourModuleName_display_callback($page_number) {
  // Grab additional arguments
  $additional_args = func_get_args();
  // Remove first one, as we already got it explicitely as $page_number
  array_shift($additional_args);
  // Check for additional args
  if (!empty($additional_args)) {
    // Do something with the other arguments ...
  }
  // other stuff ...
}
啊;) 你是对的

下面是我如何解决它的

function mysearch_menu() {
$items['mysearch/%'] = array(
'page callback' => 'FN_search',
'access callback' => TRUE,
);
return $items;
}


function FN_search()
{
    return print_r(func_get_args(),true);
};

顺便说一句,Drupal的标准做法是在所有函数前面加上模块名,以防止命名冲突,因此,如果您的模块名为“mysearch”,则您的回调应命名为
mysearch\u search
mysearch\u FN\u search
。否则,向现有实例添加新模块可能会破坏站点。