1С Битрикс вывод элемента количества товара в корзине при определённом условии
В общем есть кастомное поле "PROPERTY_VID" в товаре. Принимает два значения "новое" или "бу". Необходимо, чтобы выбор количества в товара в корзине, был доступен только для товаров, у которых кастомное поле равно "новое". Я так понимаю, отредактировать необходимо шаблон (bitrix\components\bitrix\sale.basket.basket\templates.default\js-templates\basket-item.php), сделать сравнение по значению параметра, вот только как до него достучаться? Дошёл вот до чего:
<?php
if (!empty($arParams['PRODUCT_BLOCKS_ORDER'])) {
foreach ($arParams['PRODUCT_BLOCKS_ORDER'] as $blockName) {
switch (trim((string)$blockName)) {
case 'columns':
?>
{{#COLUMN_LIST}}
{{#IS_TEXT}}
{{NAME}}
{{VALUE}}
{{/IS_TEXT}}
{{/COLUMN_LIST}}
<?php
}
}
}
?>
До нужных данных достучался. Но за вывод отвечает шаблонизатор mustache.js, который в свою очередь не имеет логики, т.е. вот так например:
{{#VALUE == "бу"}}
он не умеет. Пробовал сравнить через php вот так:
<?php
if (!empty($arParams['PRODUCT_BLOCKS_ORDER'])) {
foreach ($arParams['PRODUCT_BLOCKS_ORDER'] as $blockName) {
switch (trim((string)$blockName)) {
case 'columns':
?>
{{#COLUMN_LIST}}
{{#IS_TEXT}}
<?php
$text_name = "{{NAME}}";
$text_value = "{{VALUE}}";
if ($text_value == "бу"):
echo $text_value;
endif;
?>
{{/IS_TEXT}}
{{/COLUMN_LIST}}
<?php
}
}
}
?>
И тут вообще ничего не понимаю, сравнивать он их не хочет, я уже и типы данных сверял, и приводил к строке перед сравнением и посимвольное сравнение строк делал, не работает. Странно то, если перед сравнением вывести:
echo $text_value;
содержимое переменной выводит.
Уже не знаю куда копать. Может я изначально не в те дебри полез?!
Ответы (1 шт):
Выводишь архив в php, вот так:
print_r($arResult['BASKET_ITEM_RENDER_DATA']);
Смотришь в каком поле у тебя твоё свойство PROPERTY_VID, например, оно у тебя во 2 поле, то-есть в php ты выводишь NAME вот так:
echo $arResult[...]['COLUMN_LIST'][2]['NAME'];
Значит в корзине битрикса ты обращаешься к нему так:
{{COLUMN_LIST.2.NAME}}
Ну а значение, соответственно, получаешь так:
{{COLUMN_LIST.2.VALUE}}