Стрим, спецвыпуск по аякс-библиотеке Битрикса:
BX.ajax
https://www.youtube.com/watch?v=0fk0gPBlArw&list=PLy4Hf2Vh5ftbtGha_zNMVkgikeJRwOyqS&index=4&t=0s
#битрикс #ajax
BX.ajax
https://www.youtube.com/watch?v=0fk0gPBlArw&list=PLy4Hf2Vh5ftbtGha_zNMVkgikeJRwOyqS&index=4&t=0s
#битрикс #ajax
YouTube
#Спецвыпуск 03(1/3) / ajax-Битрикс-ajax / #Битрикс
Изучаем аякс в контексте использования Битрикс-библиотек и инструментов.
Часть 1. Разбираем низкоуровневые функции вида BX.ajax.*
$-$-$
Сказать спасибо: https://burlaka.studio/thanks-donate/
00:00:18 - Вводная
00:03:50 - Простейший аякс-вызов через библиотеку…
Часть 1. Разбираем низкоуровневые функции вида BX.ajax.*
$-$-$
Сказать спасибо: https://burlaka.studio/thanks-donate/
00:00:18 - Вводная
00:03:50 - Простейший аякс-вызов через библиотеку…
Когда мы принимаем аякс-запрос, данные могут приходить как в нормальном виде — готовом к работе (если проект под UTF), так и нет (кракозябры: проект под windows-1251).
\CUtil::decodeURIComponent( [...] )
...рекурсивно перекодирует массив в нужный вид.
Вызываем её с массивом полученных параметров (передаётся внутрь указатель на массив).
Фактически, обычная обёртка над конвертером символов.
#битрикс #аякс #ajax
\CUtil::decodeURIComponent( [...] )
...рекурсивно перекодирует массив в нужный вид.
Вызываем её с массивом полученных параметров (передаётся внутрь указатель на массив).
Фактически, обычная обёртка над конвертером символов.
#битрикс #аякс #ajax
===
Если мы обрабатываем аякс-запросы «вручную»
...и если у нас во время обработки вызывается хотя бы один компонент
...и если ответ который мы должны отдать — json
...и если механизмом воспользуется пользователь с доступом к административной панели
...и если в интерейсе пользователя будет установлен
чекбокс «Переходить в режим правки сайта без перезагрузки страницы»
= аякс будет падать с ошибкой парсинга json, потому что механизм компонентов будет пытаться оборачивать его в специальный div
Чтобы этого избежать, нам нужно объявить константу
#битрикс #аякс #ajax.
Если мы обрабатываем аякс-запросы «вручную»
...и если у нас во время обработки вызывается хотя бы один компонент
...и если ответ который мы должны отдать — json
...и если механизмом воспользуется пользователь с доступом к административной панели
...и если в интерейсе пользователя будет установлен
чекбокс «Переходить в режим правки сайта без перезагрузки страницы»
= аякс будет падать с ошибкой парсинга json, потому что механизм компонентов будет пытаться оборачивать его в специальный div
Чтобы этого избежать, нам нужно объявить константу
@define( 'ADMIN_SECTION', true );
...но сделать это после того, как подключится пролог. #битрикс #аякс #ajax.
===
Если мы обрабатываем аякс-запросы «вручную»
...и если ответ который мы должны отдать — json
...и если у нас активирован режим отладки
= аякс будет падать с ошибкой парсинга json, потому что к ответу будет дописываться отладочная информация.
Чтобы этого избежать, нам нужно объявить константу
Если мы обрабатываем аякс-запросы «вручную»
...и если ответ который мы должны отдать — json
...и если у нас активирован режим отладки
= аякс будет падать с ошибкой парсинга json, потому что к ответу будет дописываться отладочная информация.
Чтобы этого избежать, нам нужно объявить константу
define( 'PUBLIC_AJAX_MODE', true );
#битрикс #аякс #ajax.=====
is ajax
Внутри
Его «целевой» потребитель — метод
...который в случае установленного аякс-флага пакует стили не в
То есть если мы собираем свой аякс-обработчик, чтобы стили были обёрнуты для корректной обработки ответа BX-функциями, мы должны проинициализировать аякс-шапку.
#битрикс #аякс #ajax #BX
is ajax
Внутри
\Bitrix\Main\Page\Asset
работает private переменная-флаг ajax
.Его «целевой» потребитель — метод
\Bitrix\Main\Page\Asset::getInstance()->getCss()
,...который в случае установленного аякс-флага пакует стили не в
<link...>
а оборачивает в javascript-вызов и тогда подключение стилей выглядит например так:<script type="text/javascript">Флаг работает только в паре с инициализацией аякс-шапки
BX.loadCSS(['.../.default/style.css?1556374578666']);
</script>
$APPLICATION->ShowAjaxHead(...);...который его зажигает.
То есть если мы собираем свой аякс-обработчик, чтобы стили были обёрнуты для корректной обработки ответа BX-функциями, мы должны проинициализировать аякс-шапку.
#битрикс #аякс #ajax #BX
Битриксоид из Колхоза
===== is ajax Внутри \Bitrix\Main\Page\Asset работает private переменная-флаг ajax. Его «целевой» потребитель — метод \Bitrix\Main\Page\Asset::getInstance()->getCss(), ...который в случае установленного аякс-флага пакует стили не в <link...> а оборачивает…
Битриксоид из Колхоза
Публичным «братом» указанного флага является $APPLICATION->bInAjax; ...который мы можем проверять например внутри своих компонентов. Важно помнить, что оба устанавливаются только при иниализации аякс-шапки: $APPLICATION->ShowAjaxHead(...); #битрикс #аякс…
Префильтры и Постфильтры в экшенах компонентов.
Возможность фильтровать сигнал на входе и трансформировать результат на выходе.
https://youtu.be/CKGWtJMAPrE
#битрикс #компоненты #ajax #action
Возможность фильтровать сигнал на входе и трансформировать результат на выходе.
https://youtu.be/CKGWtJMAPrE
#битрикс #компоненты #ajax #action
YouTube
4. Префильтры и постфильтры контроллера из «Контроллеры и экшены компонентов» #Битрикс
Часть 4. Префильтры и постфильтры контроллера
Фильтруем сигнал на входе — до выполнения экшена (префильтр) и модифицируем на выходе (постфильтр).
00:06 - Вводная
07:01 - configureAction и дефолтные префильтры, переопределяем набор префильтров своим
10:40…
Фильтруем сигнал на входе — до выполнения экшена (префильтр) и модифицируем на выходе (постфильтр).
00:06 - Вводная
07:01 - configureAction и дефолтные префильтры, переопределяем набор префильтров своим
10:40…