Отображение цены товара на сайте в другой валюте — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Стоит задача: в административной части сайта добавлять товары с ценой в долларах (USD) или е…»)
 
Строка 22: Строка 22:
 
}
 
}
 
</source>
 
</source>
Вызов макроса необходимо прописать в шаблонах страниц, допустим в любом месте тэга <body>. Для tpl шаблонов вызов следующий:
+
Вызов макроса необходимо прописать в шаблонах страниц, допустим в любом месте тэга <body>.  
 +
Для tpl шаблонов вызов следующий:
 +
<pre>
 
%custom setcurrency()%
 
%custom setcurrency()%
 +
</pre>
 +
 +
В результате, при использовании макроса:
 +
<pre>
 +
%emarket price(%id%, 'short')%
 +
</pre>
 +
 +
цена будет указана в валюте, выбор которой был сделан в кастомном методе setcurrency(), 'short' - два шаблона, в папках:
 +
* \tpls\emarket\
 +
* \tpls\emarket\currency\

Версия 13:57, 11 апреля 2011

Стоит задача: в административной части сайта добавлять товары с ценой в долларах (USD) или евро (EUR), а на сайте отображать цены в рублях. Для этого, в конфигурационном файле (config.ini) установим валюту по умолчанию, допустим: default-currency = "USD", а для автоматического переключения валюты на сайте, воспользуемся кастомным макросом, который пропишем в файле ~classes/modules/custom.php, после слов: //TODO: Write your own macroses here

public function setcurrency(){
$inst = cmsController::getInstance()->getModule("emarket");
$currencyCode = "RUR";
$selectedCurrency = $inst->getCurrency($currencyCode);
if($selectedCurrency) {
$defaultCurrency = $inst->getDefaultCurrency();
$customer = customer::get();
if($customer->preffered_currency != $selectedCurrency->id) {
if($selectedCurrency->id == $defaultCurrency->id) {
$customer->preffered_currency = null;
} else {
$customer->preffered_currency = $selectedCurrency->id;
}
$customer->commit();
}
}
}

Вызов макроса необходимо прописать в шаблонах страниц, допустим в любом месте тэга <body>. Для tpl шаблонов вызов следующий:

%custom setcurrency()%

В результате, при использовании макроса:

%emarket price(%id%, 'short')%

цена будет указана в валюте, выбор которой был сделан в кастомном методе setcurrency(), 'short' - два шаблона, в папках:

  • \tpls\emarket\
  • \tpls\emarket\currency\