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)==
+
==Что такое AJAX интерфейс Joomla! (com_ajax)==
Компактный, расширяемый компонент, действующий в качестве точки входа для HTTP запросов для автономных модулей и плагинов, тем самым предоставляя им потенциал функциональности Ajax. Com_ajax в основном используют, в тех случаях, когда не являються разработчиками того компонента, с которым взаимодействует модуль или плагин.
+
Компактный, расширяемый компонент, действующий в качестве точки входа для HTTP запросов для автономных модулей и плагинов, тем самым предоставляя им потенциал функциональности AJAX. Com_ajax в основном используют в тех случаях, когда не являются разработчиками того компонента, с которым взаимодействует модуль или плагин.
  
'''ПРИМЕЧАНИЕ''': Если Вы разработчик компонентов, Вам нет нужды применять com_ajax для имплементации функционала Ajax  в неи. Вы можете это сделать напрямую в компоненте.
+
'''ПРИМЕЧАНИЕ''': Если Вы разработчик компонентов, то нет необходимости применять в нем com_ajax для реализации  функционала AJAX. Вы можете это сделать напрямую в своем компоненте.
  
Примеры применения, включая но не ограничиваясь:
+
Примеры применения:
*Модуль, получающий данные средствами внешнего API.
+
*Модуль, получающий данные из внешнего API.
*Модуль, взаимодействующий с компонентом, написаным не Вами.
+
*Модуль, взаимодействующий с компонентом, который разработан не вами.
 
* Плагин, реализующий схожую с API функциональность для организации потребления данных с Вашего сайта.
 
* Плагин, реализующий схожую с API функциональность для организации потребления данных с Вашего сайта.
  
==Анатомия запроса Ajax==
+
==Анатомия 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
+
Дополнительные переменные и значения, используемые вашим расширением также могут быть включены в URL.
  
Например запрос к <code>?option=com_ajax&amp;module=session</code> может вызывать <code>mod_session</code> с результатами возвращенными в формате по умолчанию, и напротив <code>?option=com_ajax&amp;plugin=session&amp;format=json</code>
+
Например запрос к <code>?option=com_ajax&amp;module=session</code> вызовет <code>mod_session</code> с результатами, возвращенными в формате по умолчанию. Код <code>?option=com_ajax&amp;plugin=session&amp;format=json</code>
запустит <code>onAjaxSession</code> группу плагинов с выводом результата в JSON.
+
вызовет метод <code>onAjaxSession</code> плагинов с выводом результата в JSON.
  
 
==Поддержка модулей==
 
==Поддержка модулей==
Line 39: Line 39:
 
===Детали===
 
===Детали===
  
Module requests must include the <code>module</code> variable in the URL, paired with the name of the module (i.e. <code>module=session</code> for <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>. Однако, это ограничение не действительно для плагинов, где название плагина может содержать символы подчёркивания.
  
 
Это значение также используется для:
 
Это значение также используется для:
  
* Имя каталога для проверки файла помошеика, например <code>/modules/mod_session/helper.php</code>
+
* Имени директории для проверки файла помощника, например <code>/modules/mod_session/helper.php</code>
  
 
*Наименование класса для вызова, например:
 
*Наименование класса для вызова, например:
 +
<code>modSessionHelper</code>
  
Optionally, the <code>method</code> variable may be included to override the default method prefix of <code>get</code>.
+
Опционально может быть включена переменная <code>method</code> для отмены префикса метода <code>get</code> по умолчанию.
  
:"'Примечание"': все методы должны заканчиваться в <code>Ajax</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> .
+
Поддержка плагинов достигается путем запуска события. плагина <code>onAjax[Name]</code> .
  
 
===Детали===
 
===Детали===
Line 66: Line 67:
 
Это значение также используется для:
 
Это значение также используется для:
  
*Имя класса плагина следом за условностью <code>plgAjax[Name]</code>
+
*Имени класса плагина, который следует соглашению <code>plgAjax[Name]</code>
*Имя функции плагина следом за условностью <code>onAjax[Name]</code>/
+
*Имени функции, которая следует соглашению <code>onAjax[Name]</code>/
*Группа плагинов по умолчанию <code>ajax</code>. Вы можете сменить её указав параметр запроса <code>group</code>. (Начиная с Joomla! 3.4)
+
*Группа плагинов по умолчанию <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] пример плагина, демонстрирующего такую функциональность.
  
==Response Format==
+
==Формат Ответа==
  
<code>format=[json|debug]</code> is an optional argument for the results format:
+
<code>format=[json|debug]</code> необязательный аргумент для формата результатов.
  
*<code>json</code> for JSON format
+
*<code>json</code> для формата JSON
*<code>debug</code> for human-readable output of the results.
+
*<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

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎русский • ‎فارسی • ‎中文(台灣)‎
Joomla! 
≥ 3.2
серия

Что такое 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 для формата JSON
  • debug для человекочитаемого вывода результатов./ru/ru/ru