menu_get_item

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

includes/menu.inc, строка 301

Версии
5
menu_get_item($mid, $path = NULL, $reset = FALSE)
6
menu_get_item($path = NULL, $router_item = NULL)

Получает элемент роутера.

Параметры

$path Путь, например 'node/5'. Функция найдет соответствующий 'node/%' и возвратит его.

$router_item Параметр только для внутренноего использования.

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

Элемент роутера — это ассоциативный массив, соответствующий еденичной записи в таблице menu_router. Значение ключа "map" содержит загруженные объекты. Значение ключа "access" содержит TRUE, если текущий пользователь имеет доступ к странице. Значения ключей "title", "page_arguments", "access_arguments" заполняются значениями из базы данных и загруженных объектов.

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

▾ 14 функции вызывают menu_get_item()

menu_execute_active_handler in includes/menu.inc
Выполняет функцию, которая ассоциируется с текущим путём.
menu_get_active_breadcrumb in includes/menu.inc
Получает хлебные крошки для текущей страницы, определенные активным путем.
menu_get_object in includes/menu.inc
Возвращает загруженный объект из роутера меню.
menu_local_tasks in includes/menu.inc
Собирает локальные задачи (вкладки) для заданного уровня.
menu_reset_item in modules/menu/menu.module
Reset a system-defined menu item.
menu_set_active_trail in includes/menu.inc
Задает (или получает) активный след текущей страницы - путь к корню в дереве меню.
menu_set_item in includes/menu.inc
Заменяет статически кэшированный элемент заданного пути.
menu_tree_page_data in includes/menu.inc
Get the data structure representing a named menu tree, based on the current page.
menu_valid_path in includes/menu.inc
Проверяет путь ссылки создаваемого или редактируемого пункта меню.
node_add_page in modules/node/node.pages.inc
path_admin_form_validate in modules/path/path.admin.inc
Verify that a new URL alias is valid
system_admin_menu_block_page in modules/system/system.admin.inc
Представляет единый блок из меню администрирования как страницу. Эта функция часто является "местом назначения" для таких блоков.(прим. переводчика - видимо имеется в виду, что корневой элемент меню часто имеет параметром "page callback" данную функцию, она используется для показа таких элементов, имеющих дочерние). Например, путь 'admin/content/types' должен иметь "место назначения" чтобы соответствовать системе меню Drupal, однако слишком много информации может быть скрыто, поэтому мы указываем содержимое блока.
system_logging_overview in modules/system/system.admin.inc
Menu callback; Menu page for the various logging options.
system_settings_overview in modules/system/system.admin.inc
Menu callback; displays a module's settings page.

Код

<?php
function menu_get_item($path = NULL, $router_item = NULL) {
  static $router_items;
  if (!isset($path)) {
    $path = $_GET['q'];
  }
  if (isset($router_item)) {
    $router_items[$path] = $router_item;
  }
  if (!isset($router_items[$path])) {
    $original_map = arg(NULL, $path);
    $parts = array_slice($original_map, 0, MENU_MAX_PARTS);
    list($ancestors, $placeholders) = menu_get_ancestors($parts);

    if ($router_item = db_fetch_array(db_query_range('SELECT * FROM {menu_router} WHERE path IN ('. implode (',', $placeholders) .') ORDER BY fit DESC', $ancestors, 0, 1))) {
      $map = _menu_translate($router_item, $original_map);
      if ($map === FALSE) {
        $router_items[$path] = FALSE;
        return FALSE;
      }
      if ($router_item['access']) {
        $router_item['map'] = $map;
        $router_item['page_arguments'] = array_merge(menu_unserialize($router_item['page_arguments'], $map), array_slice($map, $router_item['number_parts']));
      }
    }
    $router_items[$path] = $router_item;
  }
  return $router_items[$path];
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

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