1

我正在使用以下代码为我的节点类型包含一个自定义选项卡:

function mymodule_menu(){
    $items['node/%node/register']   =   array(
        'page arguments' => array(1),
        'access arguments'  =>  array('access content'),
        'type'  =>  MENU_LOCAL_TASK,
        'title' =>  'Register',
    );
    return $items;
}

这具有为每个节点类型包括一个注册选项卡的效果。但是,我需要只为页面类型包含该选项卡,并在所有其他类型(如文章类型等)中排除它。

任何人都可以提供一些方向吗?

4

1 回答 1

0

最简单的方法是提供您自己的访问回调来检查节点类型,例如

function mymodule_menu(){
  $items['node/%node/register'] = array(
    'page arguments' => array(1),
    'access callback' => 'mymodule_node_register_tab_access',
    'access arguments' => array(1),
    'type'  =>  MENU_LOCAL_TASK,
    'title' =>  'Register',
  );
  return $items;
}

function mymodule_node_register_tab_access($node) {
  $valid_types = array('page');
  return in_array($node->type, $valid_types);
}
于 2012-11-19T13:00:57.757 回答