Jump to content


Photo
- - - - -

как настроить свой конвертер в файле jbcurrency.xml


  • This topic is locked This topic is locked
10 replies to this topic

#1 requit

requit
  • JBZoo User (rus)
  • User rate: 0
  • posts: 41
  • topics: 16

Posted 29 January 2013 - 08:23

В файле jbcurrency.xml прописана строка, откуда берет курс валют.  Поскольку я в Беларуси, у нашего нацбанка свои курсы. я решил поискать аналог - и таки  он вроде есть http://nbrb.by/stati...ratesDaily.asp  справа В формате ХМЛ

Получение официального курса белорусского рубля по отношению к иностранным валютам на определенную дату,
    устанавливаемого ежедневно:
    http://nbrb.by/Servi...date=01/31/2011

Ведь когда я задаю базовую валюту у себя, например блр - то он считает по росийским курсам, и выходит 0,70 или еще сколько. а мне нужно например базовую доллар и считать по нашим курсам.. Как это переписать?
  • 0

#2 RomanL

RomanL
  • JBZoo User (rus)
  • User rate: 0.6
  • posts: 1022
  • topics: 28

Posted 29 January 2013 - 11:55

1). Заменить service_url в jbcurrency.xml на ваш.
2). Переписать функцию _loadFromService() в media\zoo\applications\jbuniversal\framework\helpers\jbmoney.php
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]

#3 requit

requit
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 41
  • topics: 16

Posted 29 January 2013 - 22:14

пункт 1 понятен и так был.
а вот со вторым. как переписать?  по сути ХМЛ файлы почти одинаковые. у вас в россии в ЦБ
<Valute ID="R01010"><NumCode>036</NumCode><CharCode>AUD</CharCode><Nominal>1</Nominal><Name>Австралийский доллар</Name><Value>31,5141</Value></Valute>

у нас <Currency Id="170"><NumCode>036</NumCode><CharCode>AUD</CharCode><Scale>1</Scale><Name>Австралийский доллар</Name><Rate>9043.14</Rate></Currency>

отличаются наверное глобально только Nominal это у нас Scale. В файле jbmoney.php пробовал заменить одно на другое в стр 108 $nominal = (string)$row->Scale; но естесно не помогло. на сайте валюты не переключаются м-ду собой.
Как проверить работает ли вообще это все  - для начала  - берет ли курсы с моего файла и какие там ошибки, если они возникают

А еще - то как поменять на фронтенде где цена RUB USD EUR  -  мне нужно вместо рос руб свои блр поставить, но базовым оставить доллар.
  • 0

#4 RomanL

RomanL
  • JBZoo User (rus)
  • User rate: 0.6
  • posts: 1022
  • topics: 28

Posted 30 January 2013 - 06:49

Нужно $row->Nominal поменять на $row->Scale и  $row->Value на $row->Rate
Помните, что изменения в этом файле затрутся после обновления.

Валюты настраиваются в элементе JBPrice:
http://SSMaker.ru/ab511c9d/
http://SSMaker.ru/83294eaa/
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]

#5 requit

requit
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 41
  • topics: 16

Posted 30 January 2013 - 07:47

наверное все равно что-то не то, т.к. в настроеных 2х валютах не переключается м-ду собой.
может надо еще jbcurrency.xml как то править? может иксмл файл вообще не читается? как проверить?
  • 0

#6 RomanL

RomanL
  • JBZoo User (rus)
  • User rate: 0.6
  • posts: 1022
  • topics: 28

Posted 30 January 2013 - 08:24

в <load_from_service>0</load_from_service> поставьте 1
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]

#7 requit

requit
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 41
  • topics: 16

Posted 30 January 2013 - 08:57

скачал і распаковал на XAMPP копию демо сайта. в ней провел эксперимент с этими 2мя файлами.
в  jbcurrency.xml
   <config>
        <load_from_service>1</load_from_service>
        <service_url>http://nbrb.by/Services/XmlExRates.aspx</service_url>
    </config>

и заменил формат <byr value="36,9631" nominal="10000" prefix=""  postfix=" руб."  format="5">Белорусских рублей</byr>


в jbmoney.php поменял значения и вывел для проверки эхо
foreach ($xml as $row) {
                    $value   = $this->clearValue('' .$row->Rate);
                    $nominal = (string)$row->Scale;
                    $code    = (string)$row->CharCode;
			echo $value;
в настройках типа квартира задал базовую валюту - белорусские рубли. в тизере  в цене вместо рос руб задал бел руб и окромя  - еще евро и доллар.
Далее беру какую нибудь квартирку и назначаю ей цену по нашему курсу в 1 доллар - 8650 или  пробовал в 1 евро - 11670. По идее - кроме бел руб - должно сконвертировать в 1 долл или 1 евро, смотря какую цену поставить в бел руб

Что вышло  - echo $value  выдало мне над ценой строку цифр, как оказалось после проверки с файлом - это курсы как они идут в xml файле с банка. Все по порядочку - т.е. файл берется, всё считывается.  НО ПРИ ЦЕНЕ В 8650  при переключении в доллары - не $1 а $0.00 !!!!
Может у меня  format="5" не тот -или что?

  • 0

#8 requit

requit
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 41
  • topics: 16

Posted 30 January 2013 - 09:21

UPD
Вышло при <byr value="36,9631" nominal="1" prefix=""  postfix="бел. руб."  format="5">Белорусских рублей</byr>
и когда базовую валюту поставил доллар. то при цене в 1 доллар  показало правильную цену в белорусских.
Спаниковал что не считает так как положено а только наоборот, но переставил базовую валюту в белоруских, цену записал в 8650 - все  верно - 1 доллар.
но это на локалке.
А на сервере почему то при тех же настройках и тех же файлах - переход между ценами пропал. Не грузится какойто скрипт?Где копать, чтобы отследить? причем это во всех приложениях стало.. уже и сам элемент прайс поменял с локалки, и файлы эти переписал. все равно не переключается
  • 0

#9 RomanL

RomanL
  • JBZoo User (rus)
  • User rate: 0.6
  • posts: 1022
  • topics: 28

Posted 30 January 2013 - 09:42

Переход между ценами яваскриптом, наверное конфликт где-то. Дайте ссылку на сайт.
  • 0
[color=#aa0000]Не забывайте нажимать кнопку «Вопрос Решён» и «+1» под сообщением, которое Вам помогло[/color]

#10 requit

requit
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 41
  • topics: 16

Posted 31 January 2013 - 12:44

все настроил, и по ходу, работает. надо бы как то вынести в отдельную статью уже все готовое...
но трабл в том, что порой выдает это Warning: simplexml_load_file(http://nbrb.by/Servi...XmlExRates.aspx ) [function.simplexml-load-file]: failed to open stream: Connection timed out in /home/XXXXXXX/public_html/15/jupgrade/media/zoo/applications/jbuniversal/framework/helpers/jbmoney.php on line 104

Тоисть с сайта нацбанка иксмл не хочет грузиться. Как обойти проблему? моет если не грузится, то брать из кэша или еще что?


  • 0




Click to return to top of page in style!