Элементы меню
Важная вещь, на которую нужно обратить внимание, - это то. что мы определяем путь и преобразуем его в имя функции. Путь— это Drupal-путъ, т.е. это путь относительно вашего базового URL. Но там также происходят некоторые другие интересные вещи.
Мы дали нашему элементу меню заголовок, который автоматически используется как заголовок страницы при ее отображении в браузере (если вы позже захотите изменить заголовок страницы в ходе выполнения кода, вы можете сделать это с помощью функции drupal_set_title).
Обработчик прерываний меню фактически вызывается дважды — один раз с Smay_cache. установленным в положение TRUE, и один раз с $may_cache. установленным в положение FALSE. Элемент меню, который мы создали в этом примере. — это статический элемент меню. Он не будет изменяться, и поэтому его можно кэ-шировать. Как только для определенного пользователя будет создано все дерево меню. Drupal будет кэшировать дерево как преобразованный в последовательную форму массив в таблице cache_menu. В ответ на последующие запросы дерево будет найдено и. вместо того чтобы быть восстановленным, преобразуется из последовательной формы в параллельную. Если мы хотим создать динамический элемент меню (например, тот. который использует текущее время как заголовок элемента меню).
Теперь этот элемент меню создается во время запроса.
Динамических элементов меню нужно по возможности избегать, потому что они дслжны проверяться и добавляться при выполнении HTTP-запроса, вместо того и извлекаться из кэша. Если у вас бизнес-сайт или большой сайт, часто посещаемый многими роботами, это приведет к большим обьемам вычислений.
В ходе разработки собственных модулей вы захотите установить модуль devel module, потому что он позволяет быстро и легко очищать кэш меню. Благодаря этому вы сможете видеть результаты изменения кода немедленно. Если модуль devel. module не установлен, вы можете очистить кэш, используя инструкцию SQL для усечения таблицы cache^menu (например, truncate table, 'cache_menu'). Другой подход состоит в том, чтобы вести разработку с динамическим элементом меню (! $may_cache), а затем, когда разработка завершена, заменить его на статический элемент меню ($may_cache).