Варіант 1: Через кастом-модуль
Для таких витонченість є спец функція drupal # 95; add # 95; js (). Вона, як нескладно здогадатися, додаючи JS файл на сайт. Все просто і банально, ось вам парочка прикладів:
Також корисною виявиться наступна функція:
Ця функція поверне шлях до місця знаходження модуля. Наприклад, якщо ви зберігаєте свій скрипт в модулі wtf, а там в папці js, то додати скрипт можна двома способами:
Варіант 2: Через тему сайту
Також можна підключати JS за допомогою своєї теми оформлення. Напишу на прикладі zen-subtheme.
Створюємо в папці теми нову папку і назвемо js, а в неї кладемо наш script.js. Потім нам досить відкрити .info файл теми і додати в відповідний розділ, якщо немає то додайте де самі вважаєте за потрібне, наступний код:
Варіант 3: У файлі темізаціі
Припустимо ви хочете щоб файл підключився на певній ноді і ви створили для неї шаблон node-NID.tpl.php. В цьому випадку найпростіше підчепити JS безпосередньо в цьому файлі, просто вгорі напишіть то що ми розглянули в варіанті 1.
Тут буде корисна ще одна функція для опредленія шляхів: path # 95; to # 95; theme () - вона повертає шлях до поточної теми, як у випадку з модулем.
Припустимо хочемо додати файл з варіанту 2 але через php:
Ви можете подивитися як, наприклад, я зробив у своєму невеликому модулі. який зроблений весь на JS, але обгорнутий в модуль Drupal'a.
Залишайся на зв'язку
Будь завжди в курсі нових матеріалів! Підписуйся на канали \ паблік \ розсилки щоб отримувати оперативні оповіщення.
#attached (не обов'язково застосовувати саме до форм, хоча, судячи з усього, спочатку замислювався саме для цієї мети)
drupal_add_library приєднує бібліотеку, бібліотека по суті являє собою набір JS і CSS файлів, крім того, може мати залежні бібліотеки, які так само будуть підключені.
Бібліотеки описуються в hook_library, де вказуються підключаються JS, CSS файли і залежні бібліотеки, а так само адміністративну інформацію. Це зручно, якщо підключити якусь сторонню JS бібліотеку, або просто необхідно підключити кілька разів одні й ті ж файли в різних місцях модуля. Бібліотека, що складається з одного підключеного файлу, зазвичай сенсу не має.
Відповідь на Доповню небагато: від sg (гість)
Я якраз вчора розбирався в цьому. Але у мене не підключався, мабуть мій косяк в тому що я юзал hook_library_info ()
Загалом я ща какраз це розгрібати. Інформації достатньо мало в мережі, а ще вони дуже силно різняться, хто для дев пише, хто для альфи і ось сидиш думаєш який зараз.