Вопрос

Прямо сейчас я читаю Pro Drupal development, и в примере на странице 82 используется следующая функция:

function menufun_menu_link_alter(&$item, $menu){  
  if ($item['link_path'] == 'logout'){  
    $item['link_title'] = 'Sign off';  
  }
}

Я понимаю, что я могу узнать, какие параметры принимает "hook_menu_link_alter", просмотрев api.drupal.org.Чего я не понимаю, так это как я должен узнать, что на самом деле содержит $item.В этом примере использовались $item['link_path'] и $item['link_title'] оба - откуда он узнал об их существовании?

Конечно, меня интересует не только этот конкретный пример.Я хочу иметь возможность делать это для любой функции, которую я просматриваю в drupal.

Заранее спасибо за помощь!

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

Решение

Если бы вы зашли на api.drupal.org и посмотрели вверх hook_menu_link_alter, вы бы получили эту страницу:

http://api.drupal.org/api/function/hook_menu_link_alter/6

Который включает в себя следующее примечание:

"$item Ассоциативный массив, определяющий ссылку на меню, переданную в menu_link_save()."

Если вы перейдете по ссылке на menu_link_save пейдж, ты была бы здесь:

http://api.drupal.org/api/function/menu_link_save/6

В котором содержимое $item параметр четко указан в разделе Параметры.

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

Если вы используете модуль Devel, я хотел бы добавить

dsm($item)

там, чтобы посмотреть, что в данный момент содержит $item.Он печатает приятный интерактивный навигатор массивов / объектов.

Конечно, вам все равно придется обратиться к API, чтобы просмотреть все возможности, поскольку это показывает только то, что установлено в данный момент.Но обычно в нем содержится достаточно, чтобы получить то, что я ищу.

Использование документов API или отображение переменных - это оба хороших инструмента для получения информации.У них обоих есть свои достоинства, использование devel в основном полезно, когда вы отлаживаете и хотите посмотреть, что происходит.Большая часть того, чтобы быть хорошим разработчиком drupal, заключается не в том, чтобы знать все, а в том, чтобы уметь отслеживать соответствующую информацию.Иногда также может быть очень полезно ознакомиться с кодом или кодами других пользователей.Наблюдение за тем, как другие что-то делают, иногда может очень помочь, когда вы хотите сделать что-то подобное.Google также может быть хорошим инструментом для обсуждения какой-либо проблемы с кем-либо.Существует много возможностей, вам просто нужно научиться пользоваться этими инструментами и использовать то, что подходит именно вам.Потратив больше времени на api.drupal.org вы действительно станете лучше извлекать информацию.

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