Вкладки Drupal $, не включающие редактирование / ревизии / рабочий процесс

StackOverflow https://stackoverflow.com/questions/1609625

Вопрос

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

На многих страницах есть меню, доступное администраторам, которое позволяет вам выполнять определенные действия:

Обзор Специалисты Ресурсы и инструменты В данной области Новости Мероприятия Курсы Мультимедиа Редактировать Отслеживать Рабочий процесс Настройки

Однако в некоторых разделах существуют разные варианты:Предварительный просмотр Планировка Настройки Настройки макета Дополнительно Контекст Содержание Экспорт

Мне нужно добавить (Редактировать, Отслеживать, Рабочий процесс, настройки) во второе меню, но я не уверен, как это сделать.

Я вижу в page.tpl.php есть region для $ tabs, но я не могу понять, как это создается.

Насколько я могу судить, тема основана на теме Zen STARTERKIT.

Это было полезно?

Решение

Переменная $tabs обычно заполняется пунктами меню типа MENU_LOCAL_TASK.

Взгляните на система меню, и особенно в hook_menu() чтобы получить основную идею.Это сводится к сопоставлению функций обратного вызова с путями.Если URL-адрес совпадает с путем, определенным в hook_menu (может содержать заполнители!), функция обратного вызова, зарегистрированная для этого пути, будет вызвана для генерации содержимого для этого URL.

"Тип" этого hook_menu элемент определяет, как комбинация путь / обратный вызов представлена в системе.Это может быть MENU_CALLBACK, что означало бы только зарегистрированную комбинацию пути / обратного вызова, но отсутствие соответствующего пункта меню "real".A MENU_NORMAL_ITEM, было бы то же самое, но со "стандартным" пунктом меню, напримерв меню навигации.A MENU_LOCAL_TASK это то же самое, но соответствующий пункт меню обычно отображается в $ tabs, а не в меню.

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

  • некоторый/путь/tab1
  • некоторые/path/tab2
  • некоторые/path/tab3

и все это определяется как MENU_LOCAL_TASK, вы бы увидели по одной вкладке для каждого из них на каждой странице, которую они представляют.

Итак, чтобы найти места, которые вам нужно изменить / улучшить, вы должны выполнить поиск в своей кодовой базе для всех hook_menu() реализации, которые определяют пути, по которым отображаются эти вкладки.Обратите внимание, что не обязательно все они должны быть определены в одном и том же месте, но могут поступать из разных hook_menu реализации в разных модулях.Затем вам нужно будет добавить определения меню для вкладок, которые вы хотите добавить, сопоставив соответствующие пути с функциями обратного вызова.Функции обратного вызова возвращали бы содержимое страниц, которое пользователь должен видеть при нажатии на вкладки.

Другие советы

Если вы отображаете узел, обычно в $ tabs уже есть ссылка Редактировать, поскольку ее нет, это может быть что-то другое (какой-то модуль компоновки).Вам нужно добавить параметры редактирования / отслеживания, чтобы редактировать / отслеживать, какого рода контент?Конкретный узел или что?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top