Drupal 6 и 7 - подключаем js/jquery-скрипты разными способами

Категория: Drupal
Дата публикации: 25 февраля, 2013 - 20:56
Последнее изменение: 9 сентября, 2017 - 12:39

Drupal позволяет несколькими способами подключать js-скрипты. Актуальные и рабочие примеры приведены ниже.
Сразу стоит упомянуть нюанс по подключению JQuery кода в Drupal 7 - именно кода и скриптов, так как саму библиотеку крайне рекомендуется подключать модулем jquery_update. Чтобы js-код заработал нужно вставлять его вот в такую конструкцию (необходимо только для D7, на более старых версий такого не требуется) -

(function ($) {
Drupal.behaviors.THEMENAME = {
attach: function(context, settings) {

/*Add your js code here*/
alert('hello');

}
};
})(jQuery);

Либо:

(function ($, Drupal, window, document, undefined) {

Drupal.behaviors.my_custom_behavior = {
  attach: function(context, settings) {

    // Place your code here.
alert('hello');

  }
};

})(jQuery, Drupal, this, this.document);

Способ 1. Подключение js-скриптов через .info-файл темы оформления или модуля.

scripts[] = test.js

Это работает в 6 и 7 Drupal, пожалуй, самый быстрый, надежный и простой вариант.

Способ 2. Использование модуля http://drupal.org/project/js_injector (Drupal 7 требует установки модуля ctools). Он идеально подходит для подключения не слишком больших скриптов, к примеру, для каких-то решений на jquery, так как с большим количеством строк будет не удобно манипулировать из админки, вносить туда изменения.

Способ 3. Использование модуля http://drupal.org/project/autoload_js - только для Drupal 7.

Способ 4. Подключение через файл темы template.php или кастомный модуль. Используется следующий код (работает и в 6 и 7 Drupal) -

drupal_add_js(drupal_get_path('theme', 'THEMENAME') .'/test.js');

Способ 5. Подключение через файл-шаблон темы. Удален, так как вариант плох с точки зрения оптимизации скорости загрузки сайта и сжатия всех js скриптов.

Важно! Не забывайте чистить кеш, особенно в D7 все хорошо кешируется даже для админа.

Добавить комментарий