UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: albion от 18 Мая 2011, 20:59:04

Название: Вывод цен на сайте в другой валюте.
Отправлено: albion от 18 Мая 2011, 20:59:04
Делался в прошлом году скриптик (кастомный макрос), который по умолчанию для пользователя гость отображал валюту в рублях, хотя в базе все цены хранились в USD, чуть позже на WIKI от UMI появился на 99% похожий скрипт :), но это не суть вопроса. Сейчас после выхода версии 2.8.4 данный скриптик перестал работать. Может кто подскажет в чем проблема?

Скрипт:

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();
}
}
}

P.S. Спасибо за форум. Он как то поудобней, чем на сайте UMI.

Можно как то на этом форуме сделать вывод кода в сообщении чуть большим шрифтом, чем сейчас есть, а то глаза сломать можно :)
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: admin от 19 Мая 2011, 05:16:34
Рад что форум полезен)

Шрифт увеличил, давно это надо было сделать сам сколько раз глаза ломал читая код

насчет функции не знаю, надо тестировать, в частности проверить просто все этапы скрипта (хотя бы выводом exit(нужный_параметр) ) чтобы стало понятно где значение не проходит, или может поменялась структура внутреннего представления данных и результат просто не туда пишется, но это всего лишь предположения
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: albion от 19 Мая 2011, 06:21:41
Выводил параметры через return, вроде правильно работает и ID рублей выводит. У меня подозрение, что у них что то сломалось, связанное с инет магазином, если %total-amount% перестал корректно работать при пустой корзине. Да, и вроде сейчас еще перестала работать функция, когда за место гостя ставишь любого другого пользователя, т.е. изменяешь пользователя по умолчанию.
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: admin от 19 Мая 2011, 06:45:45
для этого мне надо оттестить их новую 2.8.4 боюсь что оперативней вам ответит СЗ, хотя судя по переписке http://blog.umi-cms.ru/dobryakov/release_284/ вы им уже отписали, но СПИК... и все такое)
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: albion от 19 Мая 2011, 07:20:11
Уже писал им, вы правы. Толку 0
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: admin от 19 Мая 2011, 07:26:51
поставлю систему и посмотрю, когда не знаю, так что как будут результаты отпишу. Больше ничего пообещать не могу(
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: albion от 19 Мая 2011, 07:36:43
Да и не надо ничего обещать, вы же не служба заботы :) umi-cms

Меня вот поражает факт такой работы системы, когда существует пользователь по умолчанию, и его настройки просто не действуют, как у любого другого пользователя. Такое ощущение, что они решали чем пожертвовать для уменьшения количества запросов к базе, и решили, что пользователь гость не достоин настроек :)
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: admin от 19 Мая 2011, 07:54:25
навряд ли они пожертвовали настройками гостя)  скорее просто что-то поменялось и настройки не применяются или что-то в таком духе изменений то они внесли дай бог сколько))
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: albion от 19 Мая 2011, 07:59:27
С июня прошлого года бьюсь с ними по поводу этого вопроса, так что это не баг.

Ответ в июне от службы заботы:
Цитировать
"На данный момент, стандартного функционала для решения вашей задачи нет. Мы занесем вашу задачу в WishList (список пожеланий пользователей). Вероятнее всего, данный функционал появится в ближайших версиях системы."

Ответ в ноябре от технического директора:
Цитировать
Верно, там ещё есть недостатки.
Это в наших планах, и действительно пока не реализовано.
К сожалению, наши желания не всегда соответствуют нашим возможностям

P.S. Еще бы в цитатах шрифт изменить :)
Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: albion от 03 Августа 2011, 13:51:32
Функцию они мне исправили http://www.liveinternet.ru/users/albion2/post168202380/ , но была одна большая проблема с этой функцией - при первой загрузки страницы под гостем цены все равно отображались в той валюте, которая в config.ini. А уже при переходе на следующую страницу или при перезагрузке текущей все начинало работать нормально.

И только сегодня решил эту проблему, достаточно кривым способом, а именно в файле __currency.php изменил строчку if($v = (int) getCookie('customer_currency')) return $currency = selector::get('object')->id($v); на if($v = (int) 27226) return $currency = selector::get('object')->id($v);, где 27226 это ID той валюты, которая должна отображаться на сайте. И вроде все работает, но меня смущает то, что я не являюсь программистом - и не испртил ли я чего :)

Название: Re:Вывод цен на сайте в другой валюте.
Отправлено: admin от 03 Августа 2011, 14:12:49
ну критичного ты ничего не испортил, только теперь не будут подхватываться валюты из куков гостя, + при обновлении системы это строчка перезатрется, + если у валюты поменяется  id, то надо будет всегда помнить где и что исправить