data-ajax
и организовать обработку.Рассмотрим на примере.
В любой активируемый элемент, например, гиперссылку, добавляем
data-ajax="my_custom_handler"
:Код: Выделить всё
<a href="#" data-ajax="my_custom_handler">Это ссылка</a>
data-ajax="my_custom_handler"
- имя функции-обработчика в скрипте JQuery. Имя может быть любым. Создаем файл скрипта, например, ext/vendor/ext_name/template/my_ajax.js
:Код: Выделить всё
/* global phpbb */
(function($) { // Avoid conflicts with other libraries
'use strict';
phpbb.addAjaxCallback('my_custom_handler', function(res) {
// Используем всю мощь JQuery здесь
});
})(jQuery); // Avoid conflicts with other libraries
При необходимости, в скрипт можно передавать результаты работы вызываемого при активации элемента скрипта PHP:
Код: Выделить всё
if ($this->request->is_ajax())
{
$data = [
'mode' => 'mode',
'post_id' => $post_id,
'l_colon' => $this->language->lang('COLON'),
];
$json_response = new \phpbb\json_response();
$json_response->send($data);
}
$this->request->is_ajax()
выполняется в случае, если вызов происходит из функции-обработчика JQuery, в данном случае - из my_custom_handler
. В результате данные из массива $data
будут переданы в обработчик и могут быть использованы через пареметр res
:Код: Выделить всё
/* global phpbb */
(function($) { // Avoid conflicts with other libraries
'use strict';
phpbb.addAjaxCallback('my_custom_handler', function(res) {
var mode = res.mode;
var post_id = res.post_id;
var l_colon = res.l_colon;
// Используем всю мощь JQuery здесь
});
})(jQuery); // Avoid conflicts with other libraries
Код: Выделить всё
{% INCLUDEJS '@vendor_ext_name/my_ajax.js' %}