@ermolaev_nikita

Как создать динамическую область внутри шаблона компонента?

Допустим есть следующее задание. У каждой карточки товара в каталоге есть значок, которые отображает тот факт, что данный товар уже находится в корзине. Мы можем написать некоторый код, с помощью которого будем получать список добавленных товаров и сверять его с выводимыми товарами в каталоге. Однако нам придется постоянно сбрасывать кеш, чтобы данный значок появлялся на карточке товара, т.к. компонент кешируется.
Я пытался это сделать через композит и вот эти методы внутри шаблона:

$frame = $this->createFrame()->begin();
   if(FALSE != $isCart = array_search($item['ID'], $arParams["PRODUCTS_IN_CART"])){ // Допустим компонент Catalog.item через параметр получает список товаров в корзине
   ?>
         <div class="inCart"></div>
   <?
    }
$frame->end();
  • Вопрос задан
  • 942 просмотра
Пригласить эксперта
Ответы на вопрос 2
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Через композит можно сделать так как написано в курсе

Лично я привык делать по другому:
- В шаблоне выводить кнопку без всякой логики.
- После загрузки страницы делать ajax запрос к скрипту в котором получать товары, которые находятся в корзине.
- Товарам которые в корзине через js расставлять нужные классы на кнопки.

Так не будет проблем с кешированием.
Ответ написан
Anadi
@Anadi
Если ответ Вам помог мой, решением отметье его!
В карточке товара делаешь проверку есть ли этот товар в корзине (в result_modifier.php), а при добавлении в корзину, аяксом возвращаешь класс значка или как там у тебя.

Получается при добавлении выводится значок, при перезагрузке выводится значок.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы