Использование AJAX интерфейса в Joomla!
From Joomla! Documentation
Что такое интерфейс Ajax Joomla! (com_ajax)
Компактный, расширяемый компонент, действующий в качестве точки входа для HTTP запросов для автономных модулей и плагинов, тем самым предоставляя им потенциал функциональности Ajax. Com_ajax в основном используют, в тех случаях, когда не являються разработчиками того компонента, с которым взаимодействует модуль или плагин.
ПРИМЕЧАНИЕ: Если Вы разработчик компонентов, Вам нет нужды применять com_ajax для имплементации функционала Ajax в неи. Вы можете это сделать напрямую в компоненте.
Примеры применения, включая но не ограничиваясь:
- Модуль, получающий данные средствами внешнего API.
- Модуль, взаимодействующий с компонентом, написаным не Вами.
- Плагин, реализующий схожую с API функциональность для организации потребления данных с Вашего сайта.
Анатомия запроса Ajax
Требуется
option=com_ajax
[module|plugin]=name
format=[json|debug|raw]
Optional
method=[custom fragment]
defaults toget
if omitted.
Overview
All requests begin with ?option=com_ajax
, which calls this extension, and must indicate the type of extension to call, and the data format to be returned.
Additional variables and values used by your extension may also be included in the URL.
For example, a request to ?option=com_ajax&module=session
would call mod_session
with results returned in the default format. In contrast,?option=com_ajax&plugin=session&format=json
would trigger the onAjaxSession
plugin group with results returned in JSON.
Module Support
Summary
Module support is accomplished by calling a method in the module's helper.php
file.
Details
Module requests must include the module
variable in the URL, paired with the name of the module (i.e. module=session
for mod_session
).
This value is also used for:
- The name of the directory to check for the helper file, e.g.
/modules/mod_session/helper.php
- The class name to call, e.g.
modSessionHelper
Optionally, the method
variable may be included to override the default method prefix of get
.
- NOTE: All methods must end in
Ajax
. For example: method=mySuperAwesomeMethodToTrigger
will callmySuperAwesomeMethodToTriggerAjax
The Ajax Session Module is an example module that demonstrates this functionality.
Plugin Response
Summary
Plugin support is accomplished by triggering the onAjax[Name]
plugin event.
Details
Plugin requests must include the plugin
variable in the URL, paired with the name of the plugin event, e.g. plugin=session
for onAjaxSession
.
This value is also used for:
- The plugin class name following the
plgAjax[Name]
convention. - The plugin function name following the
onAjax[Name]
convention. - The default plugin group is
ajax
. You can change it specifying thegroup
request parameter. (From Joomla! 3.4)
The Ajax Latest Articles plugin is an example plugin that demonstrates this functionality.
Response Format
format=[json|debug]
is an optional argument for the results format:
json
for JSON formatdebug
for human-readable output of the results.