如何将drupal菜单项中的一个页面参数设置为可选页面参数?
我有
$items['activities_list/%/%']=array(
'title callback' => 'activities_list_title',
'title arguments' =>array(1),
'description' =>'All the Indicators divided by Coutry',
'page callback' => 'activities_list',
'access arguments' => array('access ppi'),
'page arguments' => array(1,2)
);
如果我在没有第三个参数的情况下调用activities_list / 76,我将收到一个找不到页面的错误。如何将第三个参数设置为可选参数?
谢谢!
答案 0 :(得分:20)
比你想象的要容易:)。不要在路径中设置任何参数,只需将它们传递给“页面回调”函数。
$items['activities_list']=array(
'title callback' => 'activities_list_title',
'description' =>'All the Indicators divided by Coutry',
'page callback' => 'activities_list',
'access arguments' => array('access ppi'),
);
页面回调函数如下所示:
function activities_list($arg1, $arg2)
{
// Your code goes here...
drupal_set_title(activities_list_title($arg1, $arg2));
}
您可以使用以下代码更改页面标题。 (未经测试,如果有效,请告诉我):
function activities_list_title($arg_1, $arg_2)
{
$title = "";
// Your code goes here
return $title;
}
希望这有帮助......穆罕默德。
答案 1 :(得分:5)
我认为你不能。如果您只使用一个通配符执行此操作:
$items['activities_list/%']=array(
'title callback' => 'activities_list_title',
'title arguments' =>array(1),
'description' =>'All the Indicators divided by Coutry',
'page callback' => 'activities_list',
'access arguments' => array('access ppi'),
'page arguments' => array(1,2)
);
这将适用于 activities_list / foo 这样的网址,但是如果你有一个像 activities_list / foo / bar 这样的网址,你仍然可以获得<页面回调中的strong> bar ,因为它仍然通过'page arguments'=&gt;传递给该函数阵列(1,2)强>
或者您可以在页面回调中使用 arg(2)来调用它。