Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Делался в прошлом году скриптик (кастомный макрос), который по умолчанию для пользователя гость отображал валюту в рублях, хотя в базе все цены хранились в 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.

Можно как то на этом форуме сделать вывод кода в сообщении чуть большим шрифтом, чем сейчас есть, а то глаза сломать можно :)
« Последнее редактирование: 18 Мая 2011, 21:01:38 от albion »

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вывод цен на сайте в другой валюте.
« Ответ #1 : 19 Мая 2011, 05:16:34 »
Рад что форум полезен)

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

насчет функции не знаю, надо тестировать, в частности проверить просто все этапы скрипта (хотя бы выводом exit(нужный_параметр) ) чтобы стало понятно где значение не проходит, или может поменялась структура внутреннего представления данных и результат просто не туда пишется, но это всего лишь предположения

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Re:Вывод цен на сайте в другой валюте.
« Ответ #2 : 19 Мая 2011, 06:21:41 »
Выводил параметры через return, вроде правильно работает и ID рублей выводит. У меня подозрение, что у них что то сломалось, связанное с инет магазином, если %total-amount% перестал корректно работать при пустой корзине. Да, и вроде сейчас еще перестала работать функция, когда за место гостя ставишь любого другого пользователя, т.е. изменяешь пользователя по умолчанию.
« Последнее редактирование: 19 Мая 2011, 06:27:50 от albion »

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вывод цен на сайте в другой валюте.
« Ответ #3 : 19 Мая 2011, 06:45:45 »
для этого мне надо оттестить их новую 2.8.4 боюсь что оперативней вам ответит СЗ, хотя судя по переписке http://blog.umi-cms.ru/dobryakov/release_284/ вы им уже отписали, но СПИК... и все такое)

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Re:Вывод цен на сайте в другой валюте.
« Ответ #4 : 19 Мая 2011, 07:20:11 »
Уже писал им, вы правы. Толку 0

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вывод цен на сайте в другой валюте.
« Ответ #5 : 19 Мая 2011, 07:26:51 »
поставлю систему и посмотрю, когда не знаю, так что как будут результаты отпишу. Больше ничего пообещать не могу(

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Re:Вывод цен на сайте в другой валюте.
« Ответ #6 : 19 Мая 2011, 07:36:43 »
Да и не надо ничего обещать, вы же не служба заботы :) umi-cms

Меня вот поражает факт такой работы системы, когда существует пользователь по умолчанию, и его настройки просто не действуют, как у любого другого пользователя. Такое ощущение, что они решали чем пожертвовать для уменьшения количества запросов к базе, и решили, что пользователь гость не достоин настроек :)

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вывод цен на сайте в другой валюте.
« Ответ #7 : 19 Мая 2011, 07:54:25 »
навряд ли они пожертвовали настройками гостя)  скорее просто что-то поменялось и настройки не применяются или что-то в таком духе изменений то они внесли дай бог сколько))

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Re:Вывод цен на сайте в другой валюте.
« Ответ #8 : 19 Мая 2011, 07:59:27 »
С июня прошлого года бьюсь с ними по поводу этого вопроса, так что это не баг.

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

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

P.S. Еще бы в цитатах шрифт изменить :)

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Re:Вывод цен на сайте в другой валюте.
« Ответ #9 : 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 той валюты, которая должна отображаться на сайте. И вроде все работает, но меня смущает то, что я не являюсь программистом - и не испртил ли я чего :)


*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вывод цен на сайте в другой валюте.
« Ответ #10 : 03 Августа 2011, 14:12:49 »
ну критичного ты ничего не испортил, только теперь не будут подхватываться валюты из куков гостя, + при обновлении системы это строчка перезатрется, + если у валюты поменяется  id, то надо будет всегда помнить где и что исправить