В Joomla 3.x з'явився новий компонент під назвою com_ajax. Який представляє з себе тонкий, розширюваний компонент, який використовується в якості відправної точки для виконання HTTP запитів з модулів і плагінів.
Кілька прикладів використання:
- Модуль, який отримує дані з зовнішнього API
- Модуль, який використовує ресурси стороннього компонента
- Плагін, який реалізує API в якості функціоналу на Вашому сайті
Це далеко не весь перелік можливостей, які відкриває com_ajax перед розробниками.
Анатомія Ajax запитів
- format = [json | debug] - за замовчуванням raw. якщо не вказано
- method = [custom fragment] - за замовчуванням get. якщо не вказано
Всі запити починаються з? Option = com_ajax - посиланням на компонент. Так само повинен бути зазначений тип розширення і його назва.
Додаткові змінні і значення, які використовуються Вашим розширенням, також можуть бути включені в URL. Наприклад, запит на? Option = com_ajaxmodule = session. де викликається mod_session. з повертаються даними в форматі за замовчуванням. В протилежність. option = com_ajaxplugin = sessionformat = json здійснить виклик onAjaxSession і поверне результат у форматі JSON.
для модулів
Підтримка модуля здійснюється шляхом виклику методу в файлі helper.php модуля.
Запит модуля повинен включати в URL змінну module. в парі з ім'ям модуля (module = session для mod_session).
Це значення також використовується:
- Як ім'я каталогу для перевірки допоміжного файлу, наприклад /modules/mod_session/helper.php
- Як ім'я класу для виклику, наприклад modSessionHelper
Так само запит може містити необов'язковий параметр method. Змінна може бути включена, щоб перевизначити метод за замовчуванням (get).
ПРИМІТКА: Всі методи повинні закінчуватися на Ajax. Наприклад: method = mySuperAwesomeMethodToTrigger потрібно назвати mySuperAwesomeMethodToTriggerAjax
Ajax-Session-Module є прикладом модуля, який демонструє цю функціональність.
для плагінів
Підтримка плагінів здійснюється викликом події плагіна onAjax [Name].
Запит модуля повинен включати в URL змінну plugin. в парі з ім'ям модуля (plugin = session для onAjaxSession).
Це значення також використовується для:
- Передачі імені плагіна для подальшої plgAjax [Name] конверсії
- Передачі імені функції плагіна для подальшої onAjax [Name] конверсії
Ajax-Latest-Articles є прикладом плагіна, який демонструє цю функціональність.
Формат повертаються даних
format = [json | debug] є додатковим аргументом, що визначає формат одержуваного результату:
- json для формату JSON
- debug для людино-зрозумілого результату на виході