Доска объявлений. Валюта цены.

#
Доска объявлений. Валюта цены.
Подскажите, пожалуйста.
Есть объявление - в нем указана цена 100 и валюта USD
При просмотре объявления указывается цена в рублях.
Как сделать (или где посмотреть/почитать) чтобы цена отображалась в той валюте в какой она указана в объявлении.
#
Re: Доска объявлений. Валюта цены.
Rainman писал(а):
При просмотре объявления указывается цена в рублях
- имеется ввиду, пересчитанная в рубли цена? Если да, то вам необходимо будет организовать пересчет цен в нужную валюту(например в ту, которая была указана для объявления при его добавлении, информация о ней будет в XML-е) из валюты, установленной для магазина по умолчанию, в коде XSL-шаблонов(для списка объявлений и для одного объявления). Пример кода пересчета цены во все валюты магазина см. в стандартном коде XSL-шаблона "МагазинКаталогТоваров":
<!-- Вывод цен в другой валюте -->
<xsl:variable name="price" select="price_discount"/>

<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')"/>&#xA0;<xsl:value-of disable-output-escaping="yes" select="shop_currency_name"/>
</xsl:if>
</xsl:for-each>
</p>
</xsl:if>

Сделайте по аналогии.
#
Re: Доска объявлений. Валюта цены.
Мысль понял. СЕйчас буду пробовать.
1-й этап прошел успешно. Появилось три цены.
Убрать пересчитанную цену в рублях - не проблема, а вот как теперь оставить только одну нужную
Как я понимаю данные находятся в таблице shop_items_catalog_table
Значение цены - shop_items_catalog_price
Валюта цены - shop_currency_id

При выводе цены - она "пересчитывается" в рубли и выводится в объявлении.
Тот код что указан в этой ветке - пересчитывает с помощью коэффициентов из рублей в другие валюты (в том числе и в родную - та что указана в shop_currency_id)
Как прописать условие чтобы пересчитывало только "родную валюту"?

#
Re: Доска объявлений. Валюта цены.
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')"/>&#xA0;<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')"/>&#xA0;<xsl:value-of disable-output-escaping="yes" select="item_currency"/>
#
Re: Доска объявлений. Валюта цены.
Спасибо. Получилось. То что нужно
#
Re: Доска объявлений. Валюта цены.
Пожалуйста.
Авторизация