Вывод зачеркнутой старой цены рядом с ценой по скидке xslt — различия между версиями
Материал из Umicms
Williwaw (обсуждение | вклад) |
Whoa (обсуждение | вклад) м (Whoa переименовал страницу Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt). в [[Вывод зачеркнутой старой цены рядом с ценой по ск…) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
[[category:Верстка в XSLT]][[Категория:Модуль Интернет магазин]] | [[category:Верстка в XSLT]][[Категория:Модуль Интернет магазин]] | ||
− | '''Актуально для версии 2.9''' | + | '''Актуально для версии 2.9.5''' |
+ | |||
+ | :Данное решение рассмотрено на примере интернет-магазина "Современный", шаблон demodizzy. | ||
+ | :Изменения производились в файле price.xsl (templates/demodizzy/xslt/modules/emarket) | ||
Строка 14: | Строка 17: | ||
:Цена по скидке выводится с помощью шаблона | :Цена по скидке выводится с помощью шаблона | ||
− | <source lang=" | + | <source lang="xml"> |
− | <xsl:template match="price" mode="discounted-price"> | + | <xsl:template match="price" mode="discounted-price"> |
− | <xsl:value-of select="concat(@prefix, ' ', actual, ' ', @suffix)" /> | + | <xsl:value-of select="concat(@prefix, ' ', actual, ' ', @suffix)" /> |
− | </xsl:template> | + | </xsl:template> |
</source> | </source> | ||
:Внесем в него изменения: | :Внесем в него изменения: | ||
− | <source lang=" | + | <source lang="xml"> |
− | <xsl:template match="price" mode="discounted-price"> | + | <xsl:template match="price" mode="discounted-price"> |
− | <xsl:if test="original | + | |
+ | <xsl:if test="original"> | ||
+ | <div style="text-decoration: line-through"> | ||
+ | <xsl:value-of select="concat(@prefix, ' ', original,' ', @suffix)" /> | ||
+ | </div> | ||
+ | </xsl:if> | ||
+ | <div> | ||
+ | <xsl:value-of select="concat(@prefix, ' ', actual,' ', @suffix)" /> | ||
+ | </div> | ||
+ | |||
+ | </xsl:template> | ||
+ | </source> | ||
− | + | После того, как мы сделали шаблон для отображения цены, нужно применить этот шаблон. | |
+ | Например, в карточке товара (/templates/demodizzy/xslt/modules/catalog/object-view.xsl) вызов | ||
+ | цены нужно задать следующим образом: | ||
− | + | <source lang="xml"> | |
− | + | <div class="price" itemprop="offers" itemscope="itemscope" itemtype="http://schema.org/Offer"> | |
− | + | <span umi:element-id="{page/@id}" umi:field-name="price" itemprop="price"> | |
− | + | <xsl:apply-templates select="document(concat('udata://emarket/price/', page/@id))/udata/price" mode="discounted-price"/> | |
− | + | </span> | |
− | + | <link itemprop="itemCondition" href="http://schema.org/NewCondition" /> | |
− | </ | + | </div> |
</source> | </source> | ||
− | : | + | То есть, мы применяем к вызову udata://emarket/price/ мод "discounted-price" и суживаем необходимую информацию до /udata/price. |
Текущая версия на 10:11, 15 августа 2018
Актуально для версии 2.9.5
- Данное решение рассмотрено на примере интернет-магазина "Современный", шаблон demodizzy.
- Изменения производились в файле price.xsl (templates/demodizzy/xslt/modules/emarket)
Задача:
- Необходимо, чтобы, при включении скидки на товар, рядом выводилась перечеркнутая старая цена.
Решение:
- Отредактировать необходимо шаблон, по которому выводятся все цены, а именно - price.xsl
- Находится в templates/название шаблона/xslt/modules/emarket
- Цена по скидке выводится с помощью шаблона
<xsl:template match="price" mode="discounted-price">
<xsl:value-of select="concat(@prefix, ' ', actual, ' ', @suffix)" />
</xsl:template>
- Внесем в него изменения:
<xsl:template match="price" mode="discounted-price">
<xsl:if test="original">
<div style="text-decoration: line-through">
<xsl:value-of select="concat(@prefix, ' ', original,' ', @suffix)" />
</div>
</xsl:if>
<div>
<xsl:value-of select="concat(@prefix, ' ', actual,' ', @suffix)" />
</div>
</xsl:template>
После того, как мы сделали шаблон для отображения цены, нужно применить этот шаблон. Например, в карточке товара (/templates/demodizzy/xslt/modules/catalog/object-view.xsl) вызов цены нужно задать следующим образом:
<div class="price" itemprop="offers" itemscope="itemscope" itemtype="http://schema.org/Offer">
<span umi:element-id="{page/@id}" umi:field-name="price" itemprop="price">
<xsl:apply-templates select="document(concat('udata://emarket/price/', page/@id))/udata/price" mode="discounted-price"/>
</span>
<link itemprop="itemCondition" href="http://schema.org/NewCondition" />
</div>
То есть, мы применяем к вызову udata://emarket/price/ мод "discounted-price" и суживаем необходимую информацию до /udata/price.