Использование пользовательского JavaScript
Есть ли место, куда я могу добавить пользовательский файл JavaScript в Drupal 7.x?
Он просто включает простые действия с событиями для меню, и я не хочу редактировать файлы темы/модуля.
Или мне нужно просто добавить крючок "включить" в тему/модуль?
2
Author: kiamlaluno, 2011-12-15
3 answers
Есть три места, где вы можете разместить свои ресурсы Javascript:
- Ваша папка с темой. Если у вас на сайте есть тема с именем Mechaflash, вы можете поместить ее в Mechaflash/js или просто в
Mechaflash
. Чтобы сделать папку темы "более организованной", обычно люди создают специальную папкуjs
. Я бы поместил Javascript в тему, когда ваш Javascript обеспечивает функциональность, специфичную для уровня темы/презентации, или что он влияет на весь сайт (глобальный). - В одном из ваших пользовательских модулей. Здесь также может применяться тот же принцип создания выделенной папки
js
. Я обычно помещаю JS в модули, когда Javascript предоставляет очень специализированную функциональность, относящуюся к определенному модулю. Это также позволяет вам "упаковывать" ваш Javascript с вашими модулями и передавать эти модули на другие сайты (т.Е. модульный подход). - В папке библиотеки сайта. Я никогда не делал этого лично. Не потому, что это плохо, а потому, что я думаю он зарезервирован для более сложных функций, которые могут использовать другие модули (и темы). Хороший пример - библиотека пользовательского интерфейса jQuery.
Все это можно сделать с помощью функции drupal_add_js(). Вот несколько примеров того, как добавить файл JS из модуля:
// Add a "javascript library" from your module. JS_LIBRARY is an integer constant with a value of -100, which means that `mecha_library.js` will be added before `mecha_ninja.js`.
$module_path = drupal_get_path('module', 'my_module');
drupal_add_js($module_path. 'js/mecha_library.js', array('group' => JS_LIBRARY));
// Add a javascript file from your module. The default 'group' here is JS_DEFAULT, so mecha_ninja.js will be added after mecha_library.js.
$path = drupal_get_path('module', 'my_module');
drupal_add_js($path. 'js/mecha_ninja.js', 'file');
6
Author: amateur barista, 2011-12-15 19:29:49
Drupal 7 допускает scripts[]
и stylesheets[]
в обеих темах.информация и модуль.информационные файлы.
3
Author: minnur, 2012-03-04 02:18:36
Самый простой способ - в вашем файле theme.info.
Вам просто нужно добавить скрипты[]= myscript.js в файл .info используемой вами темы.
2
Author: ipwa, 2011-12-16 13:14:00