В модуле инфоблоков замечена фабрика для генерации методов-обёрток разного предназначения.
use Bitrix\Iblock\Template\Functions\Fabric;
use Bitrix\Main\Loader;
Loader::includeModule('iblock');
$fabricTranslit = Fabric::createInstance(
'translit',
[
'change_case' => 'U',
'replace_space' => '-',
]);
$result = $fabricTranslit->calculate(
['летс го чейсинг рэинбоуз ин зе скай']
);
// LETS-GO-CHEYSING-REINBOUZ-IN-ZE-SKAY#битрикс #транслит #фабрика
// (© Freddie Mercury)
Пример запроса с логикой или.
#битрикс #orm #condition
use Bitrix\Main\ORM\Query\Query;
$entity = DoorsParserDoor::compileEntity();
$logicFilter = (Query::filter())
->logic('or')
->whereNull('UF_CONTENT')
->whereNull('UF_H1')
;
$qRes = (new Query($entity))
->setOrder(['ID' => 'ASC'])
->setSelect(['ID'])
->where($logicFilter)
->setLimit(1)
->exec();
#битрикс #orm #condition
Ребята, осторожнее и внимательнее с выборками!
На скриншоте: выборка ограничивает результат по размеру страницы (
И ты такой открываешь: на странице вроде один компонент со списком новостей, но у него в пагинации PAGEN_9 🥺☠️
#битрикс #постраничка #выборка #getlist
На скриншоте: выборка ограничивает результат по размеру страницы (
nPageSize
), хотя подразумевается nTopCount
и огорчение в том, что скрипт выполняя ->GetList()
идёт по альтернативной ветке, которая накручивает счётчик PAGEN_-ов (глобальный счётчик: global $NavNum
).И ты такой открываешь: на странице вроде один компонент со списком новостей, но у него в пагинации PAGEN_9 🥺☠️
#битрикс #постраничка #выборка #getlist
Код слева и код справа равносильны*.
Код справа использует хелп-методы класса
*) ...за исключением подсчётов пустых значений. Это связано с тем, что хелп-методу нужно обязательно передать поле. "*" в качестве названия колонки он принимать не желает.
#битрикс #orm #expression
Код справа использует хелп-методы класса
Bitrix\Main\ORM\Fields\ExpressionField
*) ...за исключением подсчётов пустых значений. Это связано с тем, что хелп-методу нужно обязательно передать поле. "*" в качестве названия колонки он принимать не желает.
#битрикс #orm #expression
Уже не первый раз мне на обслуживание приходит проект (или вёрстка), где используется
#swiper #невчитываясь
Swiper
-слайдер с неверной трактовкой breakpoints
-ов.#swiper #невчитываясь
Хелпер по сортировке массивов внутри массивов (например, результатов выборки):
#битрикс #сортировка
\Bitrix\Main\Type\Collection::sortByColumn(...)
С мульти-сортировкой (по-очереди по нужным полям), с проставлением дефолтных значений в промежуточный массив, который сортируется, с возможностью пустить сравнение через колбэк-функции.#битрикс #сортировка
В модуль «Полноценные комментарии» завезены расширенные поля и сегодня выпущен новый тип поля: Рейтинг (звёздочки, сердечки, кружочки) — видео-обзор.
#битрикс #комментарии #админканавью =)
#битрикс #комментарии #админканавью =)
Подписаться на события хайлоадблока:
• выброс события ожидаем не от модуля, потому указываем пустое значение;
• тип события строит название относительно названия сущности конкретного хайлоадблока.
На скриншоте дан пример стека событий — в «старом» формате и в новом (как написано в самом ядре:
#битрикс #события #хайлоадблок
use Bitrix\Main\EventManager;Особенности:
$eventManager = EventManager::getInstance();
$eventManager->addEventHandler(
'',
'RelinkInnerOnAfterUpdate',
['ClassName', 'methodName']
);
• выброс события ожидаем не от модуля, потому указываем пустое значение;
• тип события строит название относительно названия сущности конкретного хайлоадблока.
На скриншоте дан пример стека событий — в «старом» формате и в новом (как написано в самом ядре:
(modern with namespace)
). Они выбрасываются вместе, для совместимости.#битрикс #события #хайлоадблок
This media is not supported in your browser
VIEW IN TELEGRAM
Щупаем механизм правил и условий —
Ссылка на ютюбэ.
#битрикс #правила #условия #myconditionsmyrules
BX.TreeConditions
— известный нам по админке скидок или правил работы с корзиной.Ссылка на ютюбэ.
#битрикс #правила #условия #myconditionsmyrules