PdoMenu и Tv
Здравствуйте, помогите сделать такую штуку.
В меню выводятся категории, у категорий есть TV — sale, если значение TV=1, то выводится рядом картинка prntscr.com/9f6sn4.
Вывод меню:
В меню выводятся категории, у категорий есть TV — sale, если значение TV=1, то выводится рядом картинка prntscr.com/9f6sn4.
Вывод меню:
[[pdoMenu?
&startId=`2678`
&level=`1`
&includeTVs=`sale`
&tpl=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]][[isSale]]</a>[[+wrapper]]</li>`]]Сниппет isSale:$sale = $modx->resource->getTVValue('sale');
if ($sale==1) {
return '<img src="/images/dif/flame-1.png" height="20">';
}
else {
return '';
}Но значение ТВ, которое получает функция всегда равно 0 (значению по дефолту). Как правильно написать сниппет? Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
1) Fenom (вроде правильно написал)
2) вынести tpl в чанк, потому что в inline не работают конструкции типа :default
tpl.menuRow
А ну и вариант со своим сниппетом.
Делаете этот ТВ доступным для нужных шаблонов.
Вызов pdoMenu (стандартный вызов с bootstrap'ом):
То-есть мы просто подставляем [[*sale:eq=`yes`:then=`some cod here`]] в нужное место с нужным кодом, тегом img, например.
Смысл в том, чтобы в нужной категории поставить галочку на «Распродажа» и таким образом выводить картинку в меню, которая показывает юзеру, что мол тут дешево.
Попробуйте.
Ну а в сниппете соответственно правильно лосить эту переменную
но более оптимизированным будет считаться вариант с феном