Drupal $ вкладки, не включая редактирование / ревизии / рабочий процесс - PullRequest
1 голос
/ 23 октября 2009

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

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

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

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

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

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

Из того, что я могу сказать, тема основана на теме Zen STARTERKIT.

Ответы [ 2 ]

6 голосов
/ 23 октября 2009

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

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

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

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

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

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

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

0 голосов
/ 23 октября 2009

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

...