jQuery, его плагины и мои скрипты...

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

Аватар пользователя sashka sashka 18 марта 2007 в 21:38

По умолчанию, друпал использует jQuery, который то появляется то нет в хеадере страницы в зависимости от того, нужны ли скрипты или нет. Так? При апомощи jq можно сделать много всего красивого. Это треюует чтобы скрипты были подключенны на каждой странице. Плюс имеются зваимозависимости скриптов, то есть я не могу кого-то подключить "грубо" в шаблоне. Вопросы:
1. Как это сделать? Чтобы по, например, меньшей мере jquery.js... был на каждой странице.
2. Как это сделать "павильно", по друпальски Wink

Комментарии

Аватар пользователя sashka sashka 18 марта 2007 в 22:37

Частично ответы нашёл здесь
http://drupal.org/node/89005
но ветка остаётся актуальной для меня: может кто чё добавит полезного Smile
Пока не могу понять как друпал соблюдает зависимости скриптов.

Аватар пользователя Toologic Toologic 19 марта 2007 в 11:56

Мои эксперименты с новой системой довавление js через функцию drupal_add_js() показали, что там все как-то черезчур интелектуально. Т.к код "высокого полета".

Мне на сайте также нужна была постоянная фунциональность библиотеки JQ.
Посмотрев правила отключения\подключения js сделал так.

 unset($js["core"]["misc/jquery.js"]);
 $js = drupal_add_js(path_to_theme()."/js/jquery-1.1.1.js", "core", "header");
 echo drupal_get_js("header", $js);

Запуск показал, что на этапе drupal_get_js(), а может и ранее все-равно происходит анализ - нужна библиотека, али нет.

Посему сделал жестко

<!-- кодом javascript , можно и ниже вывода js-библиотек js-->
<script type="text/javascript" src="/misc/jquery.js"></script>
// php
 unset($js["core"]["misc/jquery.js"]);
// ВАЖНО Эта строка должна быть последней перед выводом js. Любой другой unset - приводит снова к анализу необходимости
// включения jquery
 echo drupal_get_js("header", $js);

Работатет нормально, накладок с двоением-отсутствием нет
---------
Мой сайт на drupal5 www.traveldaily.ru

Аватар пользователя greenmother@drupal.org greenmother@dru... 19 марта 2007 в 15:47

jquery.js включается при первом осмысленном вызове drupal_add_js(). т.е. всё, что нужно, это добавить ваш скрипт в код "правильно, по друпальски". я делаю в phptemplate-теме в template.php функцию:
<?php
function mytheme_page($content) {
drupal_add_js('myscript.js', 'theme');
// ... остальное, всё что надо сделать
return phptemplate_page($content);
}
?>