Difference between revisions of "Using Joomla Ajax Interface/ru"
From Joomla! Documentation
(Created page with "[https://github.com/Joomla-Ajax-Interface/Ajax-Latest-Articles Ajax Latest Articles plugin] пример плагина, демонстрирующего такую функц...") |
|||
(26 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
<noinclude>{{Joomla version|version=3.2|time=and after|comment=серия}}</noinclude> | <noinclude>{{Joomla version|version=3.2|time=and after|comment=серия}}</noinclude> | ||
{{-}} | {{-}} | ||
− | ==Что такое интерфейс | + | ==Что такое AJAX интерфейс Joomla! (com_ajax)== |
− | Компактный, расширяемый компонент, действующий в качестве точки входа для HTTP запросов для автономных модулей и плагинов, тем самым предоставляя им потенциал функциональности | + | Компактный, расширяемый компонент, действующий в качестве точки входа для HTTP запросов для автономных модулей и плагинов, тем самым предоставляя им потенциал функциональности AJAX. Com_ajax в основном используют в тех случаях, когда не являются разработчиками того компонента, с которым взаимодействует модуль или плагин. |
− | '''ПРИМЕЧАНИЕ''': Если Вы разработчик компонентов, | + | '''ПРИМЕЧАНИЕ''': Если Вы разработчик компонентов, то нет необходимости применять в нем com_ajax для реализации функционала AJAX. Вы можете это сделать напрямую в своем компоненте. |
− | Примеры применения | + | Примеры применения: |
− | *Модуль, получающий данные | + | *Модуль, получающий данные из внешнего API. |
− | *Модуль, взаимодействующий с компонентом, | + | *Модуль, взаимодействующий с компонентом, который разработан не вами. |
* Плагин, реализующий схожую с API функциональность для организации потребления данных с Вашего сайта. | * Плагин, реализующий схожую с API функциональность для организации потребления данных с Вашего сайта. | ||
− | ==Анатомия запроса | + | ==Анатомия AJAX запроса== |
===Требуется=== | ===Требуется=== | ||
Line 21: | Line 21: | ||
===Опционально=== | ===Опционально=== | ||
− | *<code>method=[custom fragment]</code> по умолчанию становится <code>get</code>, если | + | *<code>method=[custom fragment]</code> по умолчанию становится <code>get</code>, если не указано. |
===Обзор=== | ===Обзор=== | ||
− | Все запросы начинаются с <code>?option=com_ajax</code>, который вызывает это расширение, | + | Все запросы начинаются с <code>?option=com_ajax</code>, который вызывает это расширение, должны содержать в себе тип расширения для вызова и формат возвращаемых данных. |
− | Дополнительные переменные и | + | Дополнительные переменные и значения, используемые вашим расширением также могут быть включены в URL. |
− | Например запрос к <code>?option=com_ajax&module=session</code> | + | Например запрос к <code>?option=com_ajax&module=session</code> вызовет <code>mod_session</code> с результатами, возвращенными в формате по умолчанию. Код <code>?option=com_ajax&plugin=session&format=json</code> |
− | + | вызовет метод <code>onAjaxSession</code> плагинов с выводом результата в JSON. | |
==Поддержка модулей== | ==Поддержка модулей== | ||
Line 39: | Line 39: | ||
===Детали=== | ===Детали=== | ||
− | + | Запросы модуля должны включать в себя переменную <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>. Однако, это ограничение не действительно для плагинов, где название плагина может содержать символы подчёркивания. | |
Это значение также используется для: | Это значение также используется для: | ||
− | * | + | * Имени директории для проверки файла помощника, например <code>/modules/mod_session/helper.php</code> |
*Наименование класса для вызова, например: | *Наименование класса для вызова, например: | ||
+ | <code>modSessionHelper</code> | ||
− | + | Опционально может быть включена переменная <code>method</code> для отмены префикса метода <code>get</code> по умолчанию. | |
− | :"'Примечание"': все методы должны заканчиваться | + | :"'Примечание"': все методы должны заканчиваться на <code>Ajax</code>. Например: |
:<code>method=mySuperAwesomeMethodToTrigger</code> вызовет <code>mySuperAwesomeMethodToTriggerAjax</code> | :<code>method=mySuperAwesomeMethodToTrigger</code> вызовет <code>mySuperAwesomeMethodToTriggerAjax</code> | ||
− | [https://github.com/Joomla-Ajax-Interface/Ajax-Session-Module Ajax Session Module] | + | [https://github.com/Joomla-Ajax-Interface/Ajax-Session-Module Ajax Session Module] является примером модуля, демонстрирующего такую функциональность. |
==Ответ плагинов== | ==Ответ плагинов== | ||
Line 58: | Line 59: | ||
===Обобщение=== | ===Обобщение=== | ||
− | Поддержка плагинов | + | Поддержка плагинов достигается путем запуска события. плагина <code>onAjax[Name]</code> . |
===Детали=== | ===Детали=== | ||
Line 66: | Line 67: | ||
Это значение также используется для: | Это значение также используется для: | ||
− | * | + | *Имени класса плагина, который следует соглашению <code>plgAjax[Name]</code> |
− | * | + | *Имени функции, которая следует соглашению <code>onAjax[Name]</code>/ |
− | *Группа плагинов по умолчанию <code>ajax</code>. Вы можете сменить её указав параметр запроса <code>group</code> | + | *Группа плагинов по умолчанию <code>ajax</code>. Вы можете сменить её, указав параметр запроса <code>group</code> (начиная с Joomla! 3.4). |
[https://github.com/Joomla-Ajax-Interface/Ajax-Latest-Articles Ajax Latest Articles plugin] пример плагина, демонстрирующего такую функциональность. | [https://github.com/Joomla-Ajax-Interface/Ajax-Latest-Articles Ajax Latest Articles plugin] пример плагина, демонстрирующего такую функциональность. | ||
− | == | + | ==Формат Ответа== |
− | <code>format=[json|debug]</code> | + | <code>format=[json|debug]</code> необязательный аргумент для формата результатов. |
− | *<code>json</code> | + | *<code>json</code> для формата JSON |
− | *<code>debug</code> | + | *<code>debug</code> для человекочитаемого вывода результатов. |
− | [[Category:AJAX]] | + | [[Category:AJAX]]/ru |
− | [[Category:JavaScript]] | + | [[Category:JavaScript]]/ru |
− | [[Category:Development]] | + | [[Category:Development]]/ru |
Latest revision as of 02:01, 4 November 2021
Что такое AJAX интерфейс Joomla! (com_ajax)
Компактный, расширяемый компонент, действующий в качестве точки входа для HTTP запросов для автономных модулей и плагинов, тем самым предоставляя им потенциал функциональности AJAX. Com_ajax в основном используют в тех случаях, когда не являются разработчиками того компонента, с которым взаимодействует модуль или плагин.
ПРИМЕЧАНИЕ: Если Вы разработчик компонентов, то нет необходимости применять в нем com_ajax для реализации функционала AJAX. Вы можете это сделать напрямую в своем компоненте.
Примеры применения:
- Модуль, получающий данные из внешнего API.
- Модуль, взаимодействующий с компонентом, который разработан не вами.
- Плагин, реализующий схожую с API функциональность для организации потребления данных с Вашего сайта.
Анатомия AJAX запроса
Требуется
option=com_ajax
[module|plugin]=name
format=[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