Від автора: вітаю Вас, шановні читачі. Сучасні веб-сайти, які активно використовують JavaScript для реалізації додаткового функціоналу, безпосередньо на стороні клієнта. Приміром, слайдери і галереї зображень, валідація інформації і т. д. Тому в даному уроці ми поговоримо про те, як вставити скрипт в Joomla використовуючи різні способи.
Як Ви знаєте за формування дизайну користувальницької частині сайту, відповідає шаблону. Відповідно саме в шаблоні здійснюється підключення основних бібліотек, фреймворків, скриптів і стилів. Але шаблон формує основну структуру сайту, а за відображення інформації компонентів або модулів, що відповідають їх вбудовані макети, які при необхідності можуть перевизначатися в шаблоні. Таким чином, необхідні для конкретних розширень скрипти, можуть підключатися безпосередньо в макетах.
З вище сказаного випливає, що скрипти для joomla можуть бути підключені в певному файлі шаблону, або макета конкретного розширення. Та найбільш зручне місце – це, звичайно ж, головний файл шаблону index.php, так як розширення доступні не на всіх сторінках сайту.
Тому, давайте розглянемо перший спосіб підключення скриптів в Joomla, який передбачає ручне додавання певного коду. Отже, відкриваємо вихідні файли CMS Joomla і переходимо в каталог templates.
В даній папці ми бачимо список каталогів з встановленими шаблонами. Далі переходимо в папку активного шаблона і відкриваємо файл index.php в текстовому редакторі.
Відповідно між тегами head як правило підключаються необхідні елементи (скрипти, стилі тощо). А значить, ми можемо вручну прописати підключення або ж використовувати спеціальний метод, про який ми далі поговоримо. Тому давайте підключимо простий скрипт, який описаний в окремому файлі script.js. Ось його код:
Відповідно між вищевказаними тегами, використовуючи блок , прописуємо підключення файлу:
Хотів би зауважити, що файл зі скриптом, Ви можете розташовувати де завгодно, головне правильно вказати шлях підключення. Але у файловій структурі визначена папка media, яка якраз і призначена для зберігання скриптів, бібліотек і стилів. А значить, цікавий файл, ми будемо розташовувати в каталозі script (даний каталог звичайно ж необхідно створити) вищевказаної директорії.
Зверніть увагу — вираз baseurl;?>, повертає базовий шлях до сайту, щодо якого Ви прописуєте шлях до скрипта. Після цього можна перевіряти результати нашої роботи.
Як Ви бачите, метод alert() успішно відпрацьовує.
Так само підключити файл зі скриптом, ви можете більш зручним способом, використовуючи спеціальний метод addScript(), глобального об'єкта Joomla JDocument. Тобто, перед кодом HTML файлу index.php, використовуючи вищезгаданий метод, зареєструємо скрипт для підключення:
JFactory::getDocument()->addScript($this->baseurl . '/media/script/script.js');
При цьому метод getDocument(), об'єкта JFactory, повертає об'єкт глобального класу JDocument. Метод addScript(), реєструє скрипт для подальшого підключення в блоці . В якості першого аргументу, необхідно передати шлях до підключеному скрипту.
Як Ви бачите, скрипти підключаються досить просто, але даний спосіб не зовсім зручний, так як вимагає роботи з файловою структурою.
Тому розглянемо другий варіант відповіді на питання, як вставити JavaScript в Joomla, який полягає у використанні додаткового розширення під назвою Flexi Custom Code.
Після скачування модуля, необхідно розпакувати отриманий архів і тільки потім приступати до установки розширення, використовуючи "Менеджер розширень".
Далі переходимо в "Менеджер модулів" і відкриваємо сторінку налаштування щойно встановленого модуля.
В текстову область "Insert Code" додаємо необхідний JavaScript код, публікуємо модуль в певній позиції на вакансій сторінках і зберігаємо зміни.
Далі перевіряємо результати нашої роботи. Як Ви бачите, цей спосіб більш зручний, так як зацікавив скрипт додається прямо в панелі адміністратора.
Більш докладно робота з шаблонами і макетами Joomla розглянуто в курсі Joomla-Майстер. З нуля до преміум шаблону.
На це питання, як підключити скрипт в joomla вичерпаний, а значить і завершена дана стаття. Всього Вам доброго і вдалого кодування!!!