UMIhelp

Разработка сайта на UMI.CMS => Шаблоны TPL => Тема начата: Masalkinn от 17 Сентября 2011, 21:45:55

Название: Скрыть объект в каталоге.
Отправлено: Masalkinn от 17 Сентября 2011, 21:45:55
Добрый день. Столкнулся с проблемой и никак не приложу ума куда копать.
Каталог с различными товарами, у каждого товара есть поле остаток. Необходимо сделать, чтобы при остатке равном 0, товар исчезал в каталоге.
Буду благодарен за подсказку.
Название: Re:Скрыть объект в каталоге.
Отправлено: admin от 19 Сентября 2011, 13:12:11
так как у нас tpl, то удобного способа нет, только если ставить проверку(в виде кастомного макроса) на значение этого поля в шаблоне каталога при выводе объекта каталога, либо еще что-то в таком же духе придумывать. Можно, например, написать модифицированный вариант макроса getObjectList, который будет при выборке объектов добавлять условие, что значение поля остаток должно быть больше 0
Название: Re:Скрыть объект в каталоге.
Отправлено: pashsha от 21 Сентября 2011, 18:34:45
Лучше именно работать с кастомным выводом объектов каталога, так скорость работы сайта в разы больше.
http://wiki.umisoft.ru/%D0%9C%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%B0_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0_%28TPL%29
Решение типа такого: 
В вашем кастомном методе getObjectsListCustom, после строки:
$sel->addElementType($hierarchy_type_id);
можно вставить строку:
$sel->addPropertyFilterMore(408, 0.1);
данная строка добавит условие выборки объектов, для которых значение поля с
id=408 (остаток) >= 0.1:
http://api.umi-cms.ru/selections.umiSelection.html