Drupal 7: как скрыть ссылку на дополнительную вкладку? - PullRequest
1 голос
/ 29 февраля 2012

Я пишу модуль 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 .Я думаю, это легко достижимо, но я не могу понять, как ... Спасибо за ваши предложения!

1 Ответ

0 голосов
/ 29 февраля 2012

Я новичок в 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 (первая неделя друпала)

...