2009-10-22 3 views
1

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

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

Обзор СПЕЦИАЛИСТОВ ресурсы и инструменты в области Новости События Курсы Мультимедиа Редактировать Track Рабочий процесс Установки

Однако в некоторых разделах имеются различные варианты: Просмотр Layout Настройки настройки макета Advanced Контекст Содержание Экспорт

мне нужно добавить (Edit, Track, Workflow, Настройки) в меню второго, но я не уверен, как это сделать.

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

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

ответ

6

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

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

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

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

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

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

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

0

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