Using Joomla Ajax Interface/ru: Difference between revisions
From Joomla! Documentation
No edit summary |
No edit summary |
||
| Line 39: | Line 39: | ||
===Детали=== | ===Детали=== | ||
Запросы модуля должны включать в себя переменную <code>module</code> в URL, в паре с именем модуля (например: <code>module=session</code> для <code>mod_session</code>) | Запросы модуля должны включать в себя переменную <code>module</code> в URL, в паре с именем модуля (например: <code>module=session</code> для <code>mod_session</code>). Обратите внимание на то, что в названии модуля не должно быть символов подчеркивания - "_" без учёта префикса <code>mod_</code>. Например, обратиться по ajax к модулю с названием <code>mod_virtuemart_products</code> не получится. Название модуля должно быть <code>mod_virtuemartproducts</code>, а вызов по ajax <code>module=virtuemartproducts</code>. Однако, это ограничение не действительно для плагинов, где название плагина может содержать символы подчёркивания. | ||
Это значение также используется для: | Это значение также используется для: | ||
Latest revision as of 07:01, 4 November 2021
Что такое AJAX интерфейс Joomla! (com_ajax)
Компактный, расширяемый компонент, действующий в качестве точки входа для HTTP запросов для автономных модулей и плагинов, тем самым предоставляя им потенциал функциональности AJAX. Com_ajax в основном используют в тех случаях, когда не являются разработчиками того компонента, с которым взаимодействует модуль или плагин.
ПРИМЕЧАНИЕ: Если Вы разработчик компонентов, то нет необходимости применять в нем com_ajax для реализации функционала AJAX. Вы можете это сделать напрямую в своем компоненте.
Примеры применения:
- Модуль, получающий данные из внешнего API.
- Модуль, взаимодействующий с компонентом, который разработан не вами.
- Плагин, реализующий схожую с API функциональность для организации потребления данных с Вашего сайта.
Анатомия AJAX запроса
Требуется
option=com_ajax[module|plugin]=nameformat=[json|debug|raw]
Опционально
method=[custom fragment]по умолчанию становитсяget, если не указано.
Обзор
Все запросы начинаются с ?option=com_ajax, который вызывает это расширение, должны содержать в себе тип расширения для вызова и формат возвращаемых данных.
Дополнительные переменные и значения, используемые вашим расширением также могут быть включены в URL.
Например запрос к ?option=com_ajax&module=session вызовет mod_session с результатами, возвращенными в формате по умолчанию. Код ?option=com_ajax&plugin=session&format=json
вызовет метод onAjaxSession плагинов с выводом результата в JSON.
Поддержка модулей
Обобщение
Поддержка модулей реализована вызовом метода в файле helper.php модуля.
Детали
Запросы модуля должны включать в себя переменную module в URL, в паре с именем модуля (например: module=session для mod_session). Обратите внимание на то, что в названии модуля не должно быть символов подчеркивания - "_" без учёта префикса mod_. Например, обратиться по ajax к модулю с названием mod_virtuemart_products не получится. Название модуля должно быть mod_virtuemartproducts, а вызов по ajax module=virtuemartproducts. Однако, это ограничение не действительно для плагинов, где название плагина может содержать символы подчёркивания.
Это значение также используется для:
- Имени директории для проверки файла помощника, например
/modules/mod_session/helper.php
- Наименование класса для вызова, например:
modSessionHelper
Опционально может быть включена переменная method для отмены префикса метода get по умолчанию.
- "'Примечание"': все методы должны заканчиваться на
Ajax. Например: method=mySuperAwesomeMethodToTriggerвызоветmySuperAwesomeMethodToTriggerAjax
Ajax Session Module является примером модуля, демонстрирующего такую функциональность.
Ответ плагинов
Обобщение
Поддержка плагинов достигается путем запуска события. плагина onAjax[Name] .
Детали
Запросы плагинов должны включать в себя переменнуюplugin в URL в паре с событием плагина, например plugin=session для onAjaxSession.
Это значение также используется для:
- Имени класса плагина, который следует соглашению
plgAjax[Name] - Имени функции, которая следует соглашению
onAjax[Name]/ - Группа плагинов по умолчанию
ajax. Вы можете сменить её, указав параметр запросаgroup(начиная с Joomla! 3.4).
Ajax Latest Articles plugin пример плагина, демонстрирующего такую функциональность.
Формат Ответа
format=[json|debug] необязательный аргумент для формата результатов.
jsonдля формата JSONdebugдля человекочитаемого вывода результатов./ru/ru/ru