Определение шаблона сайта по своей логике в 1С-Битрикс
Порой и такое надо.
Код обработчика
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'main',
'OnGetCurrentSiteTemplate',
function (\Bitrix\Main\Event $e) {
$template = $e->getParameter('template');
$newTemplateName = 'main';
if (
$_SERVER['HTTP_HOST'] === '1c.site.ru'
&& $template === '.default'
) {
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
$newTemplateName
);
}
}
);
Похожие записи
В этой заметке я хочу рассказать о технологии LazyLoad или в простонародье «ленивая загрузка» в Битриксе. Метод, описанный мной, будет точно работать в компонентах catalog.section и news.list.
С выходом нового шаблона компонента sale.order.ajax на форумах битрикса разгораются возмущения и недомения. Мол, теперь код всего шаблона на JavaScript и как его кастомизировать непонятно. На самом деле да, код js-скрипта составляет почти семь тысяч строк. Сходу в таком количестве кода, даже хорошо написанного (к сожалению, битрикс этим не балует), соблюдая паттерны программирования, будет непросто.
В этой заметке я покажу способ, как можно кастомизировать основной скрипт логики шаблона оформления заказа (order_ajax.js), не прибегая к его правке. Что нам это даёт? Когда прилетят очередные обновления шаблона, мы просто заменим его и всё. Все наши кастомизации будут работать (в теории).
Итак, поехали!
Не буду писать про боль при интегации дефотного шаблона. Давайте просто напишем свой, с блекджеком и вот этим всем.
В заметке будет (интересного):
- построение древовидного массива без рекурсии (неограниченной вложенности)
- анонимная рекурсивная функция
- формирование урлов для секций супер-быстрым способом
- поработаем с сущностями инфоблока через ORM D7
Дальше много кода.
Добавить комментарий