per*_*eam 12 drupal drupal-7 drupal-routes
如何在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)
);
Run Code Online (Sandbox Code Playgroud)
如果我在没有第三个参数的情况下调用activities_list/76,我将收到一个找不到页面的错误.如何将第三个参数设置为可选参数?
谢谢!
Muh*_*eda 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'),
);
Run Code Online (Sandbox Code Playgroud)
页面回调函数看起来像这样:
function activities_list($arg1, $arg2)
{
// Your code goes here...
drupal_set_title(activities_list_title($arg1, $arg2));
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码更改页面标题.(未经测试,如果有效,请告诉我):
function activities_list_title($arg_1, $arg_2)
{
$title = "";
// Your code goes here
return $title;
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于......穆罕默德.
我认为你不能.如果您只使用一个通配符执行此操作:
$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)
);
Run Code Online (Sandbox Code Playgroud)
这将适用于像activities_list/foo这样的URL ,但如果你有一个像activities_list/foo/bar这样的URL,你仍然可以在页面回调中获得bar的值,因为它仍然通过'page arguments'传递给该函数=>数组(1,2).
或者您也可以在页面回调中使用arg(2)来调用它.
| 归档时间: |
|
| 查看次数: |
10244 次 |
| 最近记录: |