Колеги помогите разобратся с одной интересной штукой в композите, Как включить включаемую область в композит? Все варианты которые есть в документашке не дали решения
Всем привет, в шаблоне сайта есть включаемая область содержимое области это кусок кода который из глобальной переменой выводит количество товаров в корзине, для каждого пользователя свое количество по этому делаем этот кусок кода динамической областью и итоге получилась вот такая запись
<?$frame = new \Bitrix\Main\Page\FrameHelper("ajax_basket"); $frame->begin();?> <?if(count($GLOBALS['BX_MASTER_TOVAR_IN_BASKET']) > 0){echo '<span class="count">'.count($GLOBALS['BX_MASTER_TOVAR_IN_BASKET']).'</span>';}?> <?$frame->end();?> В итоге композит корректно отрабатывает я вижу как при обновлении он мне показывает старое число а потом меняет его на правельное но кеш в логе зараза обновляет в таком случаи эта цифра обновляется в общем кэше и все видят чужую корзину
А как быть с такой ситуацией: комплексный компонент каталога, кроме списка разделов на странице есть выводятся вместо элементов список новинок(catalog.top отфильтрованный по свойству и отсортированный рендом). Получается нужно ставить компонент в динамику.
Если ставим так:
Код
$frame = $this->createFrame()->begin();
то кеш постоянно перезаписывается и отдается тот который был у последнего пользователя, а бывает так что у пользователя по какой-то причине компонент пустой(не прогружается) и соответсвенно другим пользователям отдается тоже пустой. Если ставить так
Код
$frame = $this->createFrame()->begin("");
то страница отдается пустой и только на второй хит подгружается(у некоторых пользователей вторго(фонового) хита не происходит и они видет пустую страницу постоянно) - выпадает из поиска - для роботов она становится пустой и сеошники начинают кричать
В заглушку
Код
$frame->beginStub();
ставить нечего компонент динамический и должен выводить элементы рандомно из отмеченных как новинки или спецпредложения