【问题标题】:Drupal 7: how to hide link to secondary tab?Drupal 7:如何隐藏到辅助选项卡的链接?
【发布时间】:2012-02-29 18:48:19
【问题描述】:

我正在编写一个 Drupal 7 模块。因此,我对 hook_menu() 的部分实现如下所示:

$items['admin/mymodule/a'] = array(
  'title' => 'A',
  'page callback' => 'mymodule_a',
  'access arguments' => array('administer mymodule'),
  'type' => MENU_LOCAL_TASK,
  'weight' => 2,
);
$items['admin/mymodule/a/%id/edit'] = array(
  'title' => 'Edit',
  'page callback' => 'mymodule_edit',
  'access arguments' => array('administer mymodule'),
  'type' => MENU_DEFAULT_LOCAL_TASK,
  'weight' => 1,
);
$items['admin/mymodule/a/%id/details'] = array(
  'title' => 'Details',
  'page callback' => 'mymodule_details',
  'access arguments' => array('administer mymodule'),
  'type' => MENU_LOCAL_TASK,
  'weight' => 2,
);

现在我想要实现的是隐藏从标题为“A”的页面到辅助选项卡的链接,这些辅助选项卡之间仍然有链接,即在访问 admin/mymodule/a 时,应该没有显示到辅助选项卡的链接,而对于 admin/mymodule/a/42/edit 应该有链接添加到 .../42/edit.../42/details 页面。 我想这应该很容易实现,但我不知道如何...感谢您的建议!

【问题讨论】:

    标签: drupal drupal-7 hook-menu


    【解决方案1】:

    我自己是 drupal 新手,但我认为您可以使用以下钩子:

    hook_menu_alter(&$items)  
    // http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_menu_alter/7
    

    将最后 2 个页面的“类型”更改为 MENU_CALLBACK(然后隐藏这些页面的选项卡)

    编辑(阅读您的回复后):

     $items['pages/render-array'] = array(
        'title' => 'Render array',
        'description' => 'Menu system example using a render array.',
        'page callback' => 'pages_render_array',
        'access arguments' => array('access content'),
        'weight' => 2,
        'type' => MENU_LOCAL_TASK,
      );
      $items['pages/render-array/tab1'] = array(
        'type' => MENU_DEFAULT_LOCAL_TASK,
        'title' => 'Tab 1',
      );
      $items['pages/render-array/tab2'] = array(
        'title' => 'Tab 2',
        'description' => 'Demonstrating secondary tabs.',
        'page callback' => 'pages_render_array',
        'access callback' => TRUE,
        'type' => MENU_LOCAL_TASK,
      );
    

    这是包含 2 个子选项卡的页面的代码, 我认为您可以在“hook_menu_alter”上设置一个条件(= 在页面“A”中时)以更改其他 2 页(或类似的东西..?)

    如果这也没有帮助,我真的很抱歉,只是想在这里集思广益:D(drupal 的第一周)

    【讨论】:

    • 感谢您的回复,但这并不能解决问题。我也可以首先将最后两页的类型更改为 MENU_CALLBACK,但是访问这些页面时,它们应该显示为子选项卡。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    相关资源
    最近更新 更多