Drupal: Как добавить пункт меню в админ панель

Если нужно добавить пункт меню в административной панели, следует воспользоваться хуком hook_menu. Согласно мануалу, для того, чтоб определить hook_menu, нужно создать функцию имямодуля_menu.

Например, если модуль называется mymodule, функция будет называться mymodule_menu и будет выглядеть так:

/**
 * Implements hook_menu().
 */
function mymodule_menu() {
  $items = array();
  // Need at least one child item before your section will appear.
  $items['admin/config/system/item'] = array(
    'title' => 'First item',
    'description' => 'This is the first child item in the section',
    'page callback' => 'mymodule_item_callback',
    'access arguments' => array('administer site configuration'),
  );
  return $items;
}

Будет добавлен новый пункт меню в уже существующую секцию "Система", как показано на рисунке:

Drupal - Добавление меню в Секцию "Система"

Если-же нужно создать отдельную секцию, функция mymodule_menu будет выглядеть так:

/**
 * Implements hook_menu().
 */
function mymodule_menu() {
  $items = array();
  $items['admin/config/mymodule'] = array(
    'title' => 'My configuration section',
    'description' => 'This is the parent item',
    'position' => 'left',
    'weight' => -100,
    'page callback' => 'system_admin_menu_block_page',
    'access arguments' => array('administer site configuration'),
    'file' => 'system.admin.inc',
    'file path' => drupal_get_path('module', 'system'),
  );
  // Need at least one child item before your section will appear.
  $items['admin/config/mymodule/item'] = array(
    'title' => 'First item',
    'description' => 'This is the first child item in the section',
    'page callback' => 'mymodule_item_callback',
    'access arguments' => array('administer site configuration'),
  );
  return $items;
}

Результат будет выглядеть так:

Drupal - Добавление меню в новую Секцию

Замечание: при обновлении меню, следует очищать кэш: Конфигурация > Разработка > Очистка кэша

Полезные ссылки: hook_menu, Creating a module configuration (settings) page.

 

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <s> <u> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <hr> <dd> <sub> <sup>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Защита от СПАМ ботов. Подтвердите, пожалуйста, что вы человек.