作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果需要向加载函数传递额外的参数,那么可以使用load arguments键。下面是来自节点模块的例子:一个用来查看节点修订本的菜单项。在这里需要向加载函数,也就是node_load(),传递节点ID和修订本的ID。
$items['node/%node/revisions/%/view'] = array(
'title' => 'Revisions',
'load arguments' => array(3),
'page callback' => 'node_show',
'page arguments' => array(1, TRUE),
'access callback' => '_node_revision_access',
'access arguments' => array(1),
);
菜单项为load arguments键指定了array(3)。这意味着,除了节点ID通配符的值会自动传递给加载函数以外,还会向加载函数传递一个额外的参数。因为array(3)里面有个元素;我们在“使用通配符的值”一节中已经讲过,这意味着将会使用路径中的部分3。当路径node/12/revisions/29/view被访问时,由于这里定义了load arguments键,这就意味着将会调用node_load('12', '29'),而不是node_load('12')了。
当页面回调运行时,加载函数会将'12'替换为加载了的节点对象,所以页面回调将会是node_show($node, TRUE)。