Обработчик до композита

Рейтинг: 13.6294  
Предложил Журов Михаил 06.04.2015 11:46:14

Обработчик до композита

Бывают случаи, когда нужно влиять на исполнение сайта до того, как подключился композитный режим. Например, если сайт использует региональные поддомены и при входе на основной домен нужно отправить посетителя на его региональный поддомен на основании куки. Сейчас нет никакой возможности это сделать при композитном режиме, хотя достаточно внедрить один небольшой обработчик события, чтобы исправить эту ситуацию

Рейтинг: 0.1904  
Резников Артемий 27.05.2016 15:49:57
Обработчик, всё-же потребует подключение ядра.
Можно добавить ещё один файл на подобии init.php

Но который подключается в \bitrix\header.php до ядра

например

<? 

require_once($_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/before_core.php");  

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog.php");   

?> 


В этом файле можно городить то что нужно чистым php без API битрикса.  
Рейтинг: 0  
Фаттахов Азат 01.07.2016 01:10:08
я даже зарегался чтобы плюсануть и оставить комментарий
вы здесь описали только php композит, но до него ещё есть отдача nginx (если вы его настроили, вы же читали курс? там выигрывается ещё 50% времени отдачи), пришлось и туда лезь в мапы и дописывать условие на проверку куки города

в итоге если нет куки города сначала отключается nginx композит:

map $cookie_BITRIX_SM_city $non_cookie_city {
  default      "1";
  ""           "0";
}
 


потом через колхозинг /bitrix/header.php
отключаем php отдачу композита
if (!isset($_COOKIE['BITRIX_SM_city'])) $_GET["ncc"]=1;
 
и только после первого init.php у меня устанавливается куки города и редиректит на нужный поддомен
был второй вариант решения проблемы через nginx модуль определения города, но bitrix environment скомпилен без него
полдня потратил в поисках что-то вроде onBeforeComposite, а его и нет оказывается