[РЕШЕНО] Где определяется переменная $scripts? Как добавить/удалить скрипты?

Главные вкладки

Комментарии

Аватар пользователя trololoo trololoo 21 февраля 2011 в 14:10

добавил в html.tpl.php <?php drupal_add_js('misc/jquery-1.4.4.min.js'); ?>
не помогло
через <script type="text/javascript" src="....."></script> всё работает, в чём кстати разница между drupal_add_js и ручной вставкой?
и как можно выключать библиотеки из $scripts? вся задача в том, чтобы заменить одну библиотеку на другую

Аватар пользователя natbampo natbampo 21 февраля 2011 в 14:17

"trololoo" wrote:
добавил в html.tpl.php

в самом шаблоне страницы уже поздно добавлять скрипт через drupal_add_js. Там уже готова переменная со скриптами для вывода.
"trololoo" wrote:
в чём кстати разница между drupal_add_js и ручной вставкой?

кеширование
"trololoo" wrote:
и как можно выключать библиотеки из $scripts? вся задача в том, чтобы заменить одну библиотеку на другую

посмотри как в модуле jquery_update сделано.

Аватар пользователя Ch Ch 21 февраля 2011 в 16:50

В html.tpl.php после того, как инициализируется $scripts, добавлять скрипты с помощью drupal_add_js() уже поздно.
Добавляйте в template_preprocess_html() или template_process_html(). Они для того и существуют, что бы "готовить" переменные для шаблона.

Quote:
всё работает, в чём кстати разница между drupal_add_js и ручной вставкой?

Хотя бы в том, что агрегация скриптов в последнем случае не будет работать.

Аватар пользователя trololoo trololoo 21 февраля 2011 в 15:29

Большое спасибо natbampo и Ch!
Вставил в template_preprocess_html, всё работает. Но одна вещь остаётся непонятной: на главной странице я использую accordion (из JQuery UI), ему требуется jquery-1.4.4.min.js, которая идёт по-умолчанию в drupal 7, но с ней работать он не хочет и работает лишь если вставить её в template_preprocess_html через drupal_add_js('misc/jquery-1.4.4.min.js'). Почему так происходит? Ведь библиотека одна.