Rainman писал(а):
Тот код что указан в этой ветке — пересчитывает с помощью коэффициентов из рублей в другие валюты (в том числе и в родную — та что указана в shop_currency_id)
- нет, не так. Данный код пересчитывает цену товара не из рублей, а из валюты магазина(которая задается в поле "Валюта по умолчанию" при редактировании магазина, и она необязательно должна быть рублями) во все валюты. В том числе и в валюту товара(ее XML-тег - item_currency).
Rainman писал(а):
Как прописать условие чтобы пересчитывало только «родную валюту»?
- вместо:
<xsl:if test="count(/shop/all_currency/shop_currency) > 1 and $price > 0">
<p><b>Цена в других валютах:</b>
<!-- Выбираем валюты -->
<xsl:for-each select="/shop/all_currency/shop_currency">
<!-- Выводим валюты кроме текущей -->
<xsl:if test="@id != /shop/shop_currency/@id">
<br /><xsl:value-of select="format-number($price * shop_currency_coefficient, '### ##0,00', 'my')"/> <xsl:value-of disable-output-escaping="yes" select="shop_currency_name"/>
</xsl:if>
</xsl:for-each>
</p>
</xsl:if>
попробуйте использовать:
<xsl:variable name="item_cur" select="item_currency"/>
<xsl:value-of select="format-number($price * /shop/all_currency/shop_currency[shop_currency_name = $item_cur]/shop_currency_coefficient, '### ##0,00', 'my')"/> <xsl:value-of disable-output-escaping="yes" select="item_currency"/>