створити вкладки з гаком_меню () для спеціального модуля


14

оскільки дві години я намагаюся створити вкладки в моєму користувальницькому модулі.

Я спробував кілька пропозицій, але жоден із них не міг працювати.

це мій поточний_ук_меню ():

    function social_links_menu() {
  $items['admin/config/system/social_links'] = array(
    'title' => 'social_links',
    'description' => 'Configure to fit clients needs',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('social_links_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'social_links.admin.inc',
  );

  return $items;
}

Я просто хочу дві вкладки: "tab1" і "tab2".

Чи може хтось надати мені робочий приклад? Це має бути справді просто, але зараз це здається неможливим

Відповіді:


44

Вам потрібно визначити шлях «root», який є звичайним пунктом меню, а потім додати ще один пункт для кожної з вкладок. Перший з них успадкує властивості кореневого елемента, а другий визначить власні зворотні виклики.

У поєднанні з константами MENU_LOCAL_TASKта MENU_DEFAULT_LOCAL_TASKвведіть очікувані вкладки:

function social_links_menu() {
  $items['admin/config/system/social_links'] = array(
    'title' => 'social_links',
    'description' => 'Configure to fit clients needs',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('social_links_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'social_links.admin.inc',
  );

  $items['admin/config/system/social_links/tab1'] = array(
    'title' => 'Tab 1',
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'weight' => -10
  );

  $items['admin/config/system/social_links/tab2'] = array(
    'title' => 'Tab 2',
    'type' => MENU_LOCAL_TASK,
    'page callback' => 'some_callback',
    'access arguments' => array('some permission')
  );

  return $items;
}

2
дякую за уроки кліпу! Гарне пояснення. Ти щойно врятував мене кілька годин :)
mhmdrupal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.