hook_menu

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

developer/hooks/core.php, строка 1076

Версии
5
hook_menu($may_cache)
6
hook_menu()

Определяет пункты меню и обратный вызов страниц.

Этот хук разрешает модулям регистрировать пути, которые определяют запросы, подлежащие обработке. В зависимости от типа регистрации, запрошенного для каждого пути, ссылка помещается в блоке навигации и/или пункт появляется в меню административной страницы ('q=admin/menu').

Этот хук часто вызывается, например, при включении модуля.

  • 'title': Обязательно. Непереведенное название пункта меню.
  • 'title callback': Функция для генерации названия пункта меню, по умолчанию t(). Если вы хотите вывести необработанные строки, установите этот параметр в FALSE.
  • 'title arguments': Аргументы для функции t() или вашей персональной функции.
  • 'description': Непереведенное описание пункта меню.
  • 'page callback': Имя функции, вызываемой для отображения страницы, когда пользователь переходит по пункту меню. Если пропущено, будет вызвана функция родительского пункта меню.
  • 'page arguments': Массив аргументов, передаваемых функции 'page callback'. Целочисленные значения соответствуют частям URL (см. функцию arg()).
  • 'access callback': Имя функции, возвращающей булево значение, определяющее, имеет ли пользователь права доступа к этому пункту меню. По-умолчанию — user_access() или функция доступа родительского пункта меню.
  • 'access arguments': Массив аргументов, передаваемых в функцию 'access callback'. Целочисленные значения соответствуют частям URL.
  • 'weight': Целочисленное значение, обозначающее позицию пункта в меню. По умолчанию равно 0. Если не уверены, не указывайте это значение, сортировка по алфавиту почти всегда лучше.
  • 'menu_name': (опционально) Название меню, в которое следует поместить пункт. По-умолчанию пункты меню помещаются в меню Navigation.
  • 'type': Тип пункта меню из списка:
    • MENU_NORMAL_ITEM: Нормальный пункт, который показывается в древе меню и может быть передвинут/скрыт администратором.
    • MENU_CALLBACK: Регистрирует функцию, которая что-то возвращает по соответствующему пути.
    • MENU_SUGGESTED_ITEM: Модули могут "предлагать" администратору пункты, которые полезно включить.
    • MENU_LOCAL_TASK: Локальные задачи отображаются как табы.
    • MENU_DEFAULT_LOCAL_TASK: Каждый набор локальных задач должен иметь одну по-умолчанию, которая ссылается на родительский пункт меню.
    Если параметр 'type' пропущен, он устанавливается в MENU_NORMAL_ITEM по-умолчанию.

Примеры использования — page_example.module.

Возвращаемое значение

Массив пунктов меню. Каждый пункт меню имеет ключ, который согласуется с путём, который зарегистрирован в Drupal. Пункт - это ассоциативный массив, который содержит следующие пары ключ-значение:

Связанные темы

▾ 1 функция вызывает hook_menu()

menu_router_build in includes/menu.inc
Собирает, изменяет и хранит определения меню и элементов.

Код

<?php
function hook_menu() {
  $items = array();

  $items['blog'] = array(
    'title' => 'blogs',
    'description' => 'Listing of blogs.',
    'page callback' => 'blog_page',
    'access arguments' => array('access content'),
    'type' => MENU_SUGGESTED_ITEM,
  );
  $items['blog/feed'] = array(
    'title' => 'RSS feed',
    'page callback' => 'blog_feed',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );

  return $items;
}
?>

Пользовательские комментарии

Есть ещё один аттрибут - 'file', который указывает на то, что код обработчика нужно искать в этом файле.
Пример:
'file' => 'keywords.pages.inc',

так же есть еще аттрибут - 'load arguments', необходмый для передачи дополнительных параметров в "параметризованную функцию" пункта меню.

пример

'load arguments' => array('example1','example2');

предоставит два дополнительных параметра.

существует также еще несколько специальных параметра для 'load arguments'
'%map' - содержит массив всех параметров пункта меню
'%index' - позиция "параметризованной функции" в списке параметров пункта меню

пример

'load arguments' => array('%map', '%index')

расписал уж очень поверхностно.
инфа в книге "Pro drupal Develoment 6" John K. VanDyk , Chapter 4, page 78

Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему