Собственно как вывести информацию в карточке товара.
например название или срок действия скидки?
Нашел как вывести дату окончания скидки непосредственно
<xsl:value-of select="document('uobject://834.end_date')//value" />
но как узнать ид скидки, которая применена?
Собственно как вывести информацию в карточке товара.
например название или срок действия скидки?
Нашел как вывести дату окончания скидки непосредственно
<xsl:value-of select="document('uobject://834.end_date')//value" />
но как узнать ид скидки, которая применена?
%emarket price()% (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/internetmagazin/emarket_price/)— Возвращает стоимость товара, а также информацию о скидке:
<udata element-id="68" module="emarket" method="price" generation-time="0.117425">
<discount id="640" name="25% новогодняя скидка">
<description>25% новогодняя скидка на все телевизоры</description>
</discount>
<price name="Российский рубль" rate="1" nominal="1" suffix="руб">
<original>800</original>
<actual>600</actual>
</price>
<currencies>
<price>
<original>800</original>
<actual>600</actual>
</price>
<price name="Американский доллар" rate="31.5" nominal="1" prefix="$">
<original>25.4</original>
<actual>19.05</actual>
</price>
<price name="Евро" rate="35" nominal="1" prefix="€">
<original>22.86</original>
<actual>17.14</actual>
</price>
</currencies>
<currency-prices>
<items>
<item name="Американский доллар" rate="31.5" nominal="1" prefix="$">
<original>25.4</original>
<actual>19.05</actual>
<price-original>25.4</price-original>
<price-actual>19.05</price-actual>
</item>
<item name="Евро" rate="35" nominal="1" prefix="€">
<original>22.86</original>
<actual>17.14</actual>
<price-original>22.86</price-original>
<price-actual>17.14</price-actual>
</item>
</items>
</currency-prices>
</udata>
Спасибо за подсказку
<xsl:value-of select="document(concat('udata://emarket/price/',page/@id))" />
сделал вот так а он выводит только цену....
без скидки и со скидкой для разных валют
.........
18000
14400
..........
<!-- декларируем переменную $discountId равной id скидки, если есть -->
<xsl:variable name="discountId" select="document(concat('udata://emarket/price/',page/@id))/udata/discount/@id" />
<!-- выводим id скидки, если есть -->
<xsl:value-of select="document(concat('udata://emarket/price/',page/@id))/udata/discount/@id" />
<!-- применяем шаблон для скидки, если есть -->
<xsl:apply-templates select="document(concat('udata://emarket/price/',page/@id))/udata/discount" />
Здорово! спасибо!
получил вот такой код
<xsl:variable name="discountId" select="document(concat('udata://emarket/price/',page/@id))/udata/discount/@id" />
<xsl:value-of select="document(concat('uobject://',$discountId,'.discount_rules_id'))/udata/property/value/item/@id" />
но в /udata/property/value/
находится 2 item
мне нужно получить тот который с name='dataRange'
а он выводит первый
все разобрался :))
<xsl:value-of select="document(concat('uobject://',$discountId,'.discount_rules_id'))/udata/property/value/item[@name='dateRange']/@id" />
А еще вопрос хотел бы задать :))
а как мне перебрать все эти элементы
ну в цикле как бы?
Постарайся формулировать более ясные вопросы, если хочешь получить нужный ответ.
Отвечу в общем. Как бы цикл это элементы xsl:for-each и xsl:apply-templates рекомендую использовать последний, пример:
<root_node>
<item link="#" title="Some title">Some text</item>
<item link="#" title="Some title">Some text</item>
<item link="#" title="Some title">Some text</item>
</root_node>
<xsl:template match="root_node">
<ul>
<xsl:apply-templates select="item" />
</ul>
</xsl:template>
<xsl:template match="root_node/item">
<li>
<a href="{@link}" title="{@title}">
<xsl:value-of select="." />
</a>
</li>
</xsl:template>
Здравствуйте, подскажите как добавить скидку сюда
http://name.ru/emarket/personal/
и сюда
http://name.ru/emarket/cart/
Сейчас выводится - "Скидка 150 руб"
А хотелось бы - "Скидка 5% 150 руб"
Попробовал вот так и ничего
<xsl:value-of select="concat(' — ', .//property[@name = 'proc']/value, '%')" />
Спасибо.