UMI-CMS: Хранение в базе данных цен в долларах, а на сайте вывод в рублях
В файле config.ini пишется директива default-currency = «USD», данная директива указывает в какой валюте хранить данные.
Далее пишется кастомный макрос (для версии 2.8.4):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | public function setcurrency() { $cmsController = cmsController::getInstance(); $emarket = $cmsController->getModule('emarket'); $currencyCode = 'RUR'; $selectedCurrency = $emarket->getCurrency($currencyCode); if($currencyCode && $selectedCurrency) { $defaultCurrency = $emarket->getDefaultCurrency(); if(permissionsCollection::getInstance()->isAuth()){ $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(); } } else { setcookie('customer_currency', $selectedCurrency->id, (time() + customer::$defaultExpiration), '/'); } } } |
Для версии ниже 2.8.4:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | public function setcurrency() { $cmsController = cmsController::getInstance(); $emarket = $cmsController->getModule('emarket'); $currencyCode = 'RUR'; $selectedCurrency = $emarket->getCurrency($currencyCode); if($currencyCode && $selectedCurrency) { $defaultCurrency = $emarket->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(); } } } |
И в tpl шаблоне вставляется %custom setcurrency()%
И в tpl шаблоне вставляется %custom setcurrency()%
— где именно?
Вставляется во все используемые шаблоны в папке /tpls/content/ . Но, на данный момент в UMI-CMS уже реализован данный функционал по умолчанию. Просто выставите пользователю гость валюту по умолчанию и все.