Вопрос по miniShope2
Добрый день! Столкнулся с проблемой в miniShop2
Суть такая…
Вывод сниппета
Чанк item
Чанк tpl.msProducts.row.my
В результате всего этого выводится:
Должны выводиться блоки с иконками «Новый», «Популярный товар», «Особый товар», т.е. те блоки который в чанке tpl.msProducts.row.my занесены в комментарий.
Если в чанке item напрямую вставить код из tpl.msProducts.row.my, тогда все работает.
Но хотелось первый вариант использовать. Как быть с данной проблемой? почему она возникает и как ее решить?
П.С. связано ли это с miniShop2 или это особенность работы MODx?
Нашел выход:
Суть такая…
Вывод сниппета
[[msProducts?
&parents = `3`
&tplWrapper = `wrapper`
&tpl = `item`
]]
Чанк item
<li class="item">
[[$tpl.msProducts.row.my]]
</li>
Чанк tpl.msProducts.row.my
.................
<span class="product__labels">[[+new]] [[+popular]] [[+favorite]]</span></p>
.................
<!--minishop2_popular <span class="glyphicon" title="[[%ms2_frontend_popular]]"></span>-->
<!--minishop2_new <span class="glyphicon" title="[[%ms2_frontend_new]]"></span>-->
<!--minishop2_favorite <span class="glyphicon" title="[[%ms2_frontend_favorite]]"></span>-->
<!--minishop2_old_price <span class="old_price">[[+old_price]] [[%ms2_frontend_currency]]</span>-->
В результате всего этого выводится:
1 0 0
Должны выводиться блоки с иконками «Новый», «Популярный товар», «Особый товар», т.е. те блоки который в чанке tpl.msProducts.row.my занесены в комментарий.
Если в чанке item напрямую вставить код из tpl.msProducts.row.my, тогда все работает.
Но хотелось первый вариант использовать. Как быть с данной проблемой? почему она возникает и как ее решить?
П.С. связано ли это с miniShop2 или это особенность работы MODx?
Нашел выход:
&tpl = `@INLINE <li class="item">[[$product-card]]</li>`
Комментарии: 11
А зачем ты чанк в чанк засунул?
<li class="item">
[[$tpl.msProducts.row.my]]
</li>
у li класс может меняться, в зависимости где нужно вставить блок…так же может меняться и сам тег, например, div…
тут конечно можно что-то придумать, сделать по-другому, но все равно интересно почему так… т.е. плэйсхолдеры парсятся нормально, а вот именно эта фишка с подстановкой блока из комментария не работает почему-то…
Сделай все таки в одном чанке. А если нужно чтобы класс менялся, подставляй условие типа
[[+template:is=`1`:then=`class="item"`]]
Спасибо, ну это мне кажется еще большая жесть и извращение )
Чанк в чанке это в самом деле плохая идея. А вообще можно попробовать сделать так:
[[$tpl.msProducts.row.my? &new=`[[+new]]`]]
А почему плохая идея?
Чтобы не дублировать кусок кода, я вынес его в чанк и там где нужно вставляю… вроде логично наоборот? для это и придуманы они вроде были?
Чтобы не дублировать кусок кода, я вынес его в чанк и там где нужно вставляю… вроде логично наоборот? для это и придуманы они вроде были?
[[$tpl.msProducts.row.my? &new=`[[+new]]`]]
можно попробовать, а что это даст? [[+new]] вроде и так парсится и заменяется на цифры… но спасибо, попробую…
Видимо я неправильно понял вопрос. Что должно выводиться?
Если
А идея плохая, потому что чем меньше работает родной парсер, тем лучше (:
Если
<span class="product__labels">[[+new]] [[+popular]] [[+favorite]]</span></p>
то все в порядке, оно и должно выводить <span class="product__labels">1 0 0</span>
А если нужно с иконками в зависимости от значения [[+new]] и т.п., то надо или пользоваться модификаторами или параметром prepareSnippet или использовать fenom.А идея плохая, потому что чем меньше работает родной парсер, тем лучше (:
аа… если только с этой точки зрения… тогда соглашусь…
должно выводиться:
Это в miniShop2 по-молчанию так происходит в стандартных чанках… без модификаторов…
должно выводиться:
<span class="glyphicon" title="[[%ms2_frontend_popular]]"></span>,
если [[+popular]] == 1<span class="glyphicon" title="[[%ms2_frontend_new]]"></span>
если [[+new]] == 1<span class="glyphicon" title="[[%ms2_frontend_favorite]]"></span>
если [[+favorite]] == 1Это в miniShop2 по-молчанию так происходит в стандартных чанках… без модификаторов…
Не знал до сегодняшнего дня, а оказывается Василий придумал такой вот костыль с комментариями. Но работать этот костыль будет только если чанки обрабатывает pdoTools, а не парсер MODX. Вот и не работает, когда чанк в чанке.
ок, попробую с pdoResources
там еще где-то у него были подобные «костыли» с комментариями )
там еще где-то у него были подобные «костыли» с комментариями )
Нашел выход:
&tpl = `@INLINE <li class="carousel__item">[[$product-card]]</li>`
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.