Вывод уникальных свойств товара.
Привет!
Прошу помощи, т.к. испробовал всё что в моих силах, но желаемого результата по прежнему нет :(
Вводные:
— Цель — выводить в каталоге товары + некоторые их уникальные свойства (имя свойства+значение). Но чтобы свойства, значение которых отсутствует не выводились вообще. К примеру, если взять воздушный шар (шары — одна группа товаров) и гантелю (гантели — другая), то у шара уникальное свойство для данной группы товаров — объем, а у гантели — вес.
— Свойства товара подключаю как плагин.
— Казалось, нет ничего проще. А оказалось, что просто казалось :). Написал скрипт проверяющий наличие значения у свойства и подставляющий фрагмент кода. И… запихнул его в сниппет.
— Проверяю для товаров одинаковой группы одинаковые значения :) Отключаю кэширование сниппета — выводится значение только у первого по списку товара этой группы :( Вставляю код в tpl.msProducts.row, а при рендере код автоматически комментится.
— Написал скрипт на JS — адекватно работает только внутри tpl.msProducts.row. Вывод чанком дает такой же результат как и сниппетом, но отрендеренная страница содержит внутри себя текст скрипта :(
Впросы:
— как заставить сниппет вычислять значения на каждом цикле?
— или как вставить код в чанк tpl.msProducts.row так, чтобы он не самокомментился?
Спасибо!
Прошу помощи, т.к. испробовал всё что в моих силах, но желаемого результата по прежнему нет :(
Вводные:
— Цель — выводить в каталоге товары + некоторые их уникальные свойства (имя свойства+значение). Но чтобы свойства, значение которых отсутствует не выводились вообще. К примеру, если взять воздушный шар (шары — одна группа товаров) и гантелю (гантели — другая), то у шара уникальное свойство для данной группы товаров — объем, а у гантели — вес.
— Свойства товара подключаю как плагин.
— Казалось, нет ничего проще. А оказалось, что просто казалось :). Написал скрипт проверяющий наличие значения у свойства и подставляющий фрагмент кода. И… запихнул его в сниппет.
— Проверяю для товаров одинаковой группы одинаковые значения :) Отключаю кэширование сниппета — выводится значение только у первого по списку товара этой группы :( Вставляю код в tpl.msProducts.row, а при рендере код автоматически комментится.
— Написал скрипт на JS — адекватно работает только внутри tpl.msProducts.row. Вывод чанком дает такой же результат как и сниппетом, но отрендеренная страница содержит внутри себя текст скрипта :(
Впросы:
— как заставить сниппет вычислять значения на каждом цикле?
— или как вставить код в чанк tpl.msProducts.row так, чтобы он не самокомментился?
Спасибо!
Комментарии: 5
Я нифига не понял, в чем может быть проблема. Ничего «самокомментироваться» не может. Мы же не домохозяйки, у которых «оно само сломалось, я ничего не делала!»
Версия MS2?
Версия pdoTools?
Код скрипта?
Код чанка?
Версия MS2?
Версия pdoTools?
Код скрипта?
Код чанка?
MS2: 2.0.1-pl3
pdoTools:1.5.0-rc
PHP: 5.3
Сниппет:
pdoTools:1.5.0-rc
PHP: 5.3
Сниппет:
if ("[[+playTime]]")
{
echo ( '<div><img src="[[++assets_url]]images/shop/time.gif" title="Время игры" /><span>[[+playTime]]</span></div>');
}
if ("[[+numberOfPlayers]]")
{
echo ('<div><img src="[[++assets_url]]images/shop/players.gif" title="Количество игроков" /><span>[[+numberOfPlayers]]</span></div>');
}
if ("[[+numberOfPieces]]")
{
echo ('<div><img src="[[++assets_url]]images/shop/pieces.gif" title="Количество фрагментов пазла" /><span>[[+numberOfPieces]]</span></div>');
}
Чанк:<div class="shopItem shadowed">
<div class="shopItemInfoSigns" id="prop">
[[infoSigns]]
</div>
<div class="shopItemImage"><a href="[[~[[+id]]]]"><img src="[[+thumb:default=`[[++assets_url]]components/minishop2/img/web/shopItemEmpty.png`]]" /></a></div>
<h2><a href="[[~[[+id]]]]">[[+pagetitle]]</h2>
<p>[[+introtext]]</p>
<div class="shopItemPrice"><span class="rounded10">Цена: [[+price]] [[%ms2_frontend_currency]]</span></div>
<div class="shopItemBuy"><a href="#" class="ms2_link" data-action="cart/add" data-id="[[+id]]" data-count="1" data-options='[]'><i class="icon-barcode"></i><span class="rounded10" title="[[%ms2_frontend_add_to_cart]]"/><strong>Купить</strong></span></a></div>
<!-- <span class="flags">[[+new]] [[+popular]] [[+favorite]]</span>
[[+old_price:gt=`0`:then=`<span class="old_price">[[+old_price]] [[%ms2_frontend_currency]]</span>`:else=``]]
-->
</div>
<!--minishop2_popular <i class="icon-star" title="[[%ms2_frontend_popular]]"></i>-->
<!--minishop2_new <i class="icon-flag" title="[[%ms2_frontend_new]]"></i>-->
<!--minishop2_favorite <i class="icon-bookmark" title="[[%ms2_frontend_favorite]]"></i>-->
По поводу самокоммента, если в чанк вместо вызова сниппета вставить вот такой код:
<?php
echo "Тест";
?>
то рендер будет вот такой:<div class="shopItemInfoSigns" id="prop">
<!--?php
echo "Тест";
?-->
</div>
Защита такая.
if ("[[+playTime]]")
Эмм… Ты разницу между html и php понимаешь?Плейсхолдеры — это места в чанках html, куда php подставляет значения. Внутри сниппета php ими оперировать нельзя.
echo в MODX тоже не принято применять, ибо ты выводишь строку сразу в месте выполнения, а не добавляешь в вывод.
Я не смогу тебе помочь, проще сразу заказать нужный сниппет у фрилансера.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.