Форум русской поддержки Joomla!® CMS
04.12.2016, 16:19:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Конвертация и автоконвертация обменного курса валют в JoomShopping в соответствии с текущим курсом Ц

 (Прочитано 9132 раз)
0 Пользователей и 1 Гость смотрят эту тему.
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« : 26.03.2013, 12:59:25 »

Может быть кому-то будет полезно.

Конвертация и автоконвертация обменного курса валют в JoomShopping в соответствии с текущим курсом ЦБ РФ
1.   Основная валюта (по умолчанию) – рубль. Курс устанавливается для 38 валют (USD, EURO, GBP,….).
2.   Данные о текущем курсе берутся с сайта ЦБРФ: http://www.cbr.ru/scripts/XML_daily.asp
3.   Сделаны (на основе addons JoomShopping-import-currency-1.0) два php-скрипта:
a.   JoomShopping-update-currency-1.0.zip
b.   Update.php
4.   JoomShopping-update-currency-1.0.zip – это addons и должен выполняться вручную администратором сайта из компоненты JoomShopping («Установка и Обновление») каждый раз, когда он хочет изменить обменный курс на своем сайте по текущему курсу ЦБ РФ.
5.   Update.php – это скрипт, который должен запускаться автоматически через cron. Он должен быть в корне сайта с аттрибутами 755. Не забудьте файл update.php (предварительно распаковав из архива update.zip) записать на сайт в формате UNIX. Для этого можно обработать файл утилитой dos2unix.  Каждый раз, когда он выполняется, на email администратора сайта посылается извещение об изменении курса и об установленных значениях валют. Пример:

Information for site administrator: currency exchange have been made according to CBRF data. Date and time: Tue, 26 Mar 2013 12:46:02 +0400
Показать текстовый блок





[вложение удалено Администратором]
« Последнее редактирование: 24.04.2013, 19:10:27 от nevigen » Записан
x1
Давно я тут
****

Репутация: +13/-0
Offline Offline

Сообщений: 363


« Ответ #1 : 02.04.2013, 15:22:40 »

Цитировать
JoomShopping-update-currency-1.0.zip – это addons и должен выполняться вручную администратором сайта из компоненты JoomShopping («Установка и Обновление») каждый раз, когда он хочет изменить обменный курс на своем сайте по текущему курсу ЦБ РФ.

Опробовал вашу разработку. После выполнения кроном файла Update.php курсы валют обновились и на сайте при смене валюты, цена отображается корректно, как и требовалось. Все чудесно работает, вам - плюсик. Только один вопрос, зачем нужен первый файлик, если  и так все работает?
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #2 : 02.04.2013, 15:31:31 »

Вы имеете ввиду файл JoomShopping-update-currency-1.0.zip ? Представьте себе ситуацию, когда на сайте принят фиксированный обменный курс ЦБ РФ на какой-то определенный день и он не меняется долгое время. Но в какой-то момент администратор решил  поменять его на новый фиксированный курс для определенного дня. Вот для такого сценария и нужен этот файл.   
Записан
mocart
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 113



« Ответ #3 : 05.04.2013, 14:36:40 »

Попробовал у себя update.php и столкнулся с проблемой - валюты не обновляются, а пересоздаются с новым currency_id, отсюда всем товарам после исполнения скрипта назначается одна валюта, та что по умолчанию

Дополню:
PHP    5.3.18
Joomla! 2.5.7
JoomShopping 3.11

И также получаемая ошибка
Код:
PHP Warning:  Invalid argument supplied for foreach() in .../public_html/libraries/joomla/string/string.php on line 970
« Последнее редактирование: 05.04.2013, 14:44:34 от mocart » Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #4 : 05.04.2013, 14:45:17 »

Вы совершенно правы. Для простоты я реализовал самый простой алгоритм: при запуске update.php сначала удаляются все валюты, а потом заново создаются с новым курсом. Ввиду того, что поле currency_id определено с автоинкрементом, то currency_id при таком алгоритме увеличивается, начиная с максимального значения перед удалением. Но у меня это нигде не вызвало содержательных нестыковок и я пользуюсь этим вариантом. Если вас не страивает этот алгоритм и возникают коллизии, то есть исходный текст - можете модифицировать.  При случае я тоже попробую доработать update.php.

А где у вас идет привязка к currency_id ?
« Последнее редактирование: 05.04.2013, 14:49:39 от FIORD_CMS » Записан
mocart
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 113



« Ответ #5 : 05.04.2013, 14:52:35 »

А где у вас идет привязка к currency_id ?
Дык, каждому товару задается currency_id.
Раньше рубль имел currency_id =1 (он по умолчанию), USD currency_id =2, EUR currency_id = 3
Соотвественно всем товарам задан свой currency_id, например 2 (USD), но так как теперь нет currency_id=2 то этот товар просто берет валюту по-умолчанию (рубль)
Вот и представьте - загружали майку по цене 5евро, после апдейта она стала стоить 5рублей Azn
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #6 : 05.04.2013, 15:45:42 »

Поправил. Сейчас протестирую и выложу.

[вложение удалено Администратором]
« Последнее редактирование: 05.04.2013, 16:06:07 от FIORD_CMS » Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #7 : 05.04.2013, 16:07:22 »

Вот новый вариант

[вложение удалено Администратором]
Записан
x1
Давно я тут
****

Репутация: +13/-0
Offline Offline

Сообщений: 363


« Ответ #8 : 07.04.2013, 13:44:12 »

Вот новый вариант
Не, так не пойдет... у меня рубль почему то не первый, а второй по id. Вот поля в настройках валюты магазина:
Код:
Название*
Код*
Код (ISO)*
Код (Числовой)

Какие значения должны быть для Русского например? У меня:
Код:
currence_name: Рубль
currence_code: RUB
currence_iso: 421
currence_num: 643

Это правильно?

Название, как вы пгонимаете, может быть произвольным. Вот вы обозвали рубль "RUB", а у меня на сайте "Рубль". Мне кажется удалять в базе все значения и потом переписывать заново - как то Неправильный подход.
Я бы при обновлении курса в вашем update.php в цикле задал бы поис "Код (ISO)*"  - это константа и менял только обменный курс currency_value, взятый вами с ЦентроБанка.    Остальное - название, публикацию - оставлял бы нетронутыми.

И наконец - Я бы убрал Вьетнам, Турцию... и оставил бы Россия-Казахстан-Украина... с кем реально торгуем.
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #9 : 08.04.2013, 14:51:36 »

Я поправил вариант для крона (чтобы не путаться - теперь называется update1.php). В этом варианте изменен алгоритм модификации (соответсвует вашему предложению): В списке валют на вашем сайте изменяется только текущий обменный курс в соответствии со значением ЦБ РФ. В качестве ключа беретеся код ISO - трехбуквенный код российского рубля в соответствии с ISO 4217 — RUB. Все остальные поля - без изменений.
По-прежнему, устанавливается валюта по-умолчанию - рубль (RUB).



[вложение удалено Администратором]
« Последнее редактирование: 08.04.2013, 15:02:55 от FIORD_CMS » Записан
buto
Завсегдатай
*****

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 470



« Ответ #10 : 20.04.2013, 15:19:27 »

Для РБ бы такой конвектор, чтобы +2% к курсу Национального Банка Республики Беларусь считал
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #11 : 21.04.2013, 19:11:30 »

Вот еще небольшая примочка (каа вы понимаете, имеет смысл использовать в связке с ранее описанным в этой теме аддоном или программой для CRON, тогда все будет идентично - значения в back end и во front end): модуль вывода во front end текущего курса ЦБ РФ. Модуль выводит текущий курс ЦБ РФ, взятый с сайта ЦБ РФ http://www.cbr.ru .
Выводится дата и время (на случай, если курс может меняться несколько раз в день) и обменные курсы для EURO и USD.
На некоторых сайтах принят курс ЦБ РФ плюс несколько процентов. Для это случая надо поправить одну строку в файле tmpl/default.php этого модуля (полный путь modules/mod_show_currency/tmpl/default.php ).
Например, Если у вас на сайте курс ЦБ РФ+2%, то вместо строки

$currency_el['currency_value']=((float)str_replace(',','.',$valute->Value)*1.00); //Plus 0%

надо сделать:

$currency_el['currency_value']=((float)str_replace(',','.',$valute->Value)*1.02); //Plus 2%


* mod_show_currency.zip (2.52 Кб - загружено 104 раз.)
« Последнее редактирование: 21.04.2013, 19:25:20 от FIORD_CMS » Записан
buto
Завсегдатай
*****

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 470



« Ответ #12 : 21.04.2013, 22:08:04 »

Вот еще небольшая примочка (каа вы понимаете, имеет смысл использовать в связке с ранее описанным в этой теме аддоном или программой для CRON, тогда все будет идентично - значения в back end и во front end): модуль вывода во front end текущего курса ЦБ РФ. Модуль выводит текущий курс ЦБ РФ, взятый с сайта ЦБ РФ http://www.cbr.ru .
Выводится дата и время (на случай, если курс может меняться несколько раз в день) и обменные курсы для EURO и USD.
На некоторых сайтах принят курс ЦБ РФ плюс несколько процентов. Для это случая надо поправить одну строку в файле tmpl/default.php этого модуля (полный путь modules/mod_show_currency/tmpl/default.php ).
Например, Если у вас на сайте курс ЦБ РФ+2%, то вместо строки

$currency_el['currency_value']=((float)str_replace(',','.',$valute->Value)*1.00); //Plus 0%

надо сделать:

$currency_el['currency_value']=((float)str_replace(',','.',$valute->Value)*1.02); //Plus 2%


О клево спасибо. Так оперативно. Но проблема в том что живу в Беларуси. Есть вероятность привязать это все дело к Национальному Банку Республики Беларусь?)
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #13 : 22.04.2013, 19:47:27 »

Вот еще немного доработал. Теперь процент, который добавляется к обменному курсу ЦБ РФ, задается в основных параметрах (настройках) модуля. По-умолчанию - 0. И кроме того при отображении добавлены пиктограммы валют (EUR, USD). При отображении для каждой валюты показывается курс магазина, а в скобках курс ЦБ РФ для каждой валюты.

Ну и наконец - плагин, который дает возможность вставить значения обменного курса EUR и USD в материал. Значение добавляемого процента сайта к курсуЦБРФ - также в настройках плагина.
Для добавления значений в контекст материала введены следующие теги:

{showcurrency-eur-my} - обменный курс евро в магазине
{showcurrency-eur-cbrf} - обменный курс евро ЦБРФ
{showcurrency-usd-my} - обменный курс доллара в магазине
{showcurrency-usd-cbrf} - обменный курс доллара ЦБРФ
{showcurrency-addvalue} - добавленный процент к курсу ЦБРФ

Ну и совсем последнее - даже написал для себя плагин кнопки для редактора, чтобы по нажатию вставлял нужный тэг в статью.

* mod_show_currency - with params.zip (7.47 Кб - загружено 163 раз.)
* showcurrencyPlugin.zip (1.69 Кб - загружено 160 раз.)
« Последнее редактирование: 24.04.2013, 16:38:52 от FIORD_CMS » Записан
x1
Давно я тут
****

Репутация: +13/-0
Offline Offline

Сообщений: 363


« Ответ #14 : 27.04.2013, 08:06:18 »

Я поправил вариант для крона (чтобы не путаться - теперь называется update1.php). В этом варианте изменен алгоритм модификации (соответсвует вашему предложению): В списке валют на вашем сайте изменяется только текущий обменный курс в соответствии со значением ЦБ РФ. В качестве ключа беретеся код ISO - трехбуквенный код российского рубля в соответствии с ISO 4217 — RUB. Все остальные поля - без изменений. По-прежнему, устанавливается валюта по-умолчанию - рубль (RUB).

Спасибо, но проверить смогу через пару дней и отпишу.
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #15 : 01.10.2013, 19:13:33 »

Вот еще "проба пера" - AJAX версия. Буду признателен за советы и замечания.

* mod_show_currency - with params - ajax.zip (8.44 Кб - загружено 105 раз.)
« Последнее редактирование: 01.10.2013, 21:11:38 от FIORD_CMS » Записан
dmitry_stas
Профи
********

Репутация: +795/-4
Offline Offline

Сообщений: 7740



« Ответ #16 : 01.10.2013, 19:35:44 »

есть посмотреть где стоит?
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #17 : 01.10.2013, 19:48:21 »

Я вам отправил ссылку на сайт
Записан
dmitry_stas
Профи
********

Репутация: +795/-4
Offline Offline

Сообщений: 7740



« Ответ #18 : 01.10.2013, 19:57:49 »

ну хорошо, раз в личку, то покажу тогда только картинку, что можно сделать Azn я не задавался целью, но можно я так думаю и что то другое написать  Wink понятно, что безобидные шутки... но кому они нужны?


* kurs.jpg (8.06 Кб, 184x99 - просмотрено 152 раз.)
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #19 : 01.10.2013, 20:03:58 »

Хотелось бы узнать, как это сделано и рекомендацию (если она есть), как исправить.
Этот ajax-вариант модуля - первая моя попытка освоить технологию, поэтому ваши замечания - это даже хорошо (позволяет глубже понять метод).
Записан
dmitry_stas
Профи
********

Репутация: +795/-4
Offline Offline

Сообщений: 7740



« Ответ #20 : 01.10.2013, 20:12:39 »

это - последствие не фильтрации $_GET. $add_val_text=$_GET["add_value_text"] - ну аж никак нельзя. почитайте про фильтрацию данных $_GET и $_POST. плюс про обязательное использование defined( '_JEXEC' ) or die. просто как я уже сказал в данном случае это безобидно, и по сути вреда принести не может. но такой подход может обернуться гораздо более плачевными последствиями...
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #21 : 01.10.2013, 21:15:12 »

Спасибо. Поправил (перезалил архив). Если у вас есть желание, то посмотрите, пожалуйста, новый вариант.
Записан
sergey44
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 10


« Ответ #22 : 21.10.2013, 14:11:17 »

Я поправил вариант для крона (чтобы не путаться - теперь называется update1.php). В этом варианте изменен алгоритм модификации (соответсвует вашему предложению): В списке валют на вашем сайте изменяется только текущий обменный курс в соответствии со значением ЦБ РФ. В качестве ключа беретеся код ISO - трехбуквенный код российского рубля в соответствии с ISO 4217 — RUB. Все остальные поля - без изменений.
По-прежнему, устанавливается валюта по-умолчанию - рубль (RUB).


Скажите,  как сделать чтобы к текущему курсу также автоматом прибавлялся заданный процент (2%). Я в php ноль, не знаю как. 
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #23 : 21.10.2013, 14:51:53 »

В модуле update1.php это уже сделано (например, для 2%) в строке
   
Код:
$currency_el['currency_value']=1.0/((float)str_replace(',','.',$valute->Value)*1.02); //Plus 2%
Если надо другой процент, то вместо 1.02 ставите нужное число.
Записан
sergey44
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 10


« Ответ #24 : 22.10.2013, 20:06:47 »

FIORD_CMS
Спасибо большое.
Записан
brood
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 47


« Ответ #25 : 20.01.2014, 17:04:00 »

А как мне сделать если к примеру сайт в рублях но перед тем как клиент подтвердит заказ валюта изменилась автомотически в евро!?
Записан
St@lker
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 78


« Ответ #26 : 10.02.2014, 12:39:40 »

А кто знает где можно брать для Украины курсы в таком же формате? Или может у кого-то есть уже готовый вариант для Украины?

Спасибо!
Записан
nevigen
Moderator
*****

Репутация: +734/-16
Online Online

Пол: Мужской
Сообщений: 8803


http://n*****n.com


« Ответ #27 : 10.02.2014, 12:46:16 »

Или может у кого-то есть уже готовый вариант для Украины?

глобальное решение включая Украину.
Записан
FIORD_CMS
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #28 : 20.02.2014, 15:41:30 »

Я не проверял, но предполагаю, что надо просто заменить в файле update1.php ссылку с курсом валют в xml-формате: вместо ссылки на ЦБ РФ
Код:
http://www.cbr.ru/scripts/XML_daily.asp
дать ссылку на Нац. банк Украины
Код:
http://bank-ua.com/export/currrate.xml

Для Белоруссии, видимо, надо взять курс отсюда:
Код:
http://www.nbrb.by/Services/XmlExRatesRef.aspx

« Последнее редактирование: 20.02.2014, 16:18:02 от FIORD_CMS » Записан
prizrakx
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 13



« Ответ #29 : 22.02.2014, 05:51:19 »

поставил update1.php на выполнение в крон, смотрю сейчас курс доллара к рублю 0.028, странно. Что не так сделал? разжуйте пжлста.
Записан
Страниц: [1] 2 3  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet