<rmcreative>

RSS

Часовая бомба в Drupal 5

4 декабря 2008

Вчера работающий без проблем пару недель модуль ни с того ни с сего повесил весь проект.

Симптомы: белый экран (ошибка 500) при включенном кэшировании для анонимного пользователя.

Копание в коде показало, что модуль начал подключаться до подключения common.inc, в котором описан drupal_add_js().

В моём случае были виноваты вызовы drupal_add_js() вне хуков и в хуке hook_init().

Решение — перенести подключение JS/CSS в hook_menu:

function module_name_menu($may_cache){
  if(!$may_cache){
    drupal_add_js(...);
  }

Кстати, из документации по хуку _init() убрали рекомендацию по подключению JS/CSS в нём, которую я прочитал ранее. Теперь рекомендация только в API Drupal6…

Комментарии RSS

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.