В Joomla 3.2 з'явився новий компонент com_ajax. за допомогою цього компонента можна виконувати AJAX запити в модулі або плагіни!
У цій статті ми розглянемо як правильно використовувати цей компонент!
Для початку відразу треба зрозуміти що ми не зможемо робити запит в будь-який модуль або плагін!
Запити ми можемо робити тільки в ті модулі в яких є метод getAjax. і метод onAjaxІмяПлагіна
Для початку розглянемо як нам зробити AJAX запит в модуль!
Отже нам потрібно в рядку запиту зробити посилання виду:
index.php? option = com_ajaxmodule = module_nameformat = rawvar1.
- option = com_ajax - це рядок незмінна і є обов'язковим параметром, означає що ми використовуємо компонент com_ajax
- module = module_name - в цьому рядку ми говоримо що будемо отримувати модуль, module_name - ім'я модуля до якого ми хочемо достукатися!
Важливо! ім'я модуля потрібно вказувати без приставки mod_ - format = raw - обов'язковий параметр в якому ми говоримо в якому форматі будуть наші дані, всього є три формату: raw. json і debug
- Далі ми можемо вказувати свої параметри!
- Так само ми можемо додатково перевизначити метод в який буде йти AJAX запит! для цього нам потрібно передати змінну method = myMethod
У цьому випадку буде викликатися метод: getMyMethodAjax
Для того що б все це працювало у нашого модуля повинен бути клас помічник helper.php. цей файл повинен лежати в одній папці з нашим модулем.
Клас помічника повинен строго називатися mod ModuleName Helper. в імені класу помічника не повинно бути знаку нижнього підкреслення!
У класі повинен бути файл getAjax () який буде приймати наші дані з AJAX і виконувати потрібні вам дії!
Тепер розглянемо роботу з плагінами!
Рядок для запиту практично та ж:
index.php? option = com_ajaxplugin = plugin_nameformat = rawvar1.
Всі параметри ті ж самі що і в модулі крім:
plugin = plugin_name - в якому ми говоримо що будемо працювати з плагіном і вказуємо ім'я плагіна!
Важливо! - при запиті в плагіни, будуть використовуватися тільки ті плагіни які знаходяться в групі ajax!
В плагіні повинен бути метод onAjax ІмяПлагіна який і буде ловити звернення до цього плагіну!
Змінювати ім'я методу для плагіна, як в модулі, не можна!
Приклад модуля з AJAX для Joomla 3.2 ви можете завантажити нижче!