Курсы валют в VirtueMart и добавление гривны по ламерски, но просто

Тема в разделе "VirtueMart", создана пользователем varakuta, 29.10.2009.

  1. varakuta
    Offline

    varakuta Недавно здесь

    Регистрация:
    21.05.2009
    Сообщения:
    268
    Симпатии:
    2
    Пол:
    Мужской
    не судите строго )
    начитался всего про ручное установление курсов и добавление гривны в Virtuemart
    и решил все По-простому

    открываем пресловутый файл по фтп или как можете (на своем сайте, вместо autobase.com.ua ваш сайт )
    /www/autobase.com.ua/administrator/components/com_virtuemart/classes/currency/convertECB.php
    находим строчку
    var $document_address = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml';
    заменяем ее на
    var $document_address = 'http://www.autobase.com.ua/eurofxref-daily.xml';

    в примере мой сайт.. положил файл ХМЛ в корень сайта
    файл собственно скачал от сюда:
    http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml';

    далее удаляем
    /www/autobase.com.ua/cache/daily.xml



    а в файле eurofxref-daily.xml

    уже можно добавить и гривну UAH

    конечно гривну нужно добавить и в валютах Virtuemart с таким же сокращением UAH

    например (курс левый)
    ------------------------
    <Cube time='2009-10-28'>
    <Cube currency='USD' rate='1.48'/>
    <Cube currency='UAH' rate='11.84'/>
    <Cube currency='JPY' rate='134.76'/>
    <Cube currency='BGN' rate='1.9558'/>
    ------------------------


    единственное неудобство.. это то что
    курсы выставляются относительно евро ) 1.48 но думаю перевести не проблема )

    т.е. гривны сначала переводятся в евро, а потом в доллар
    нужно выставить соответствующие коэффициенты в фале eurofxref-daily.xml';

    есть один ахтунг
    после смены курсов в файле http://www.autobase.com.ua/eurofxref-daily.xml
    чистите кеш

    Так вот может кто знает как выставить валюты относительно доллара ????????????
    .. пишите
    или сюда 554-202-758 ася
    с вопросами туда же
    )))
     
    Последнее редактирование: 10.08.2010
    masp нравится это.
  2.  
  3. Offline

    masp Недавно здесь

    Регистрация:
    03.05.2009
    Сообщения:
    4
    Симпатии:
    1
    Пол:
    Мужской
    Обучим ecb понимать UAH )

    читал, читал, пока сам не написал, ничего не заработало,
    учтите что виртмарт, принимает курсы относительно евро,
    Вот что у меня получилось ... я думаю весьма оригинально

    в присловутом файле меняем так
    var $document_address = 'http://вашсайт/eurofxref-daily.php';
    а в корень сайта заливаем eurofxref-daily.php
    с текстом
    Код (PHP):
    1. <?
    2. $z = file_get_contents('http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml');
    3. #вместо http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
    4. #eurofxref-daily.php
    5.  
    6.       // Получаем XML-файл с источника
    7.       $contentuc = get_contentuc();
    8.       // Разбираем содержимое, при помощи регулярных выражений
    9.       $pattern = "#<item>[\s]*<date>(.+?)</date>[\s]*".
    10.                  "<code>(.+?)</code>[\s]*".
    11.                  "<char3>(.+?)</char3>[\s]*".
    12.                  "<size>(.+?)</size>[\s]*".
    13.                  "<name>(.+?)</name>[\s]*".
    14.                  "<rate>(.+?)</rate>[\s]*".
    15.                  "<change>(.+?)</change>[\s]*".
    16.                  "#i";
    17.       preg_match_all($pattern, $contentuc, $out);
    18.       unset($out[0]);
    19.       for($i = 0; $i < count($out[1]); $i++)
    20.       {
    21.         if($out[2][$i] == 840) $dollaruc = $out[6][$i];
    22.         if($out[2][$i] == 978) $eurouc = $out[6][$i];
    23.         if($out[2][$i] == 643) $rubuc = $out[6][$i];
    24.         if($out[2][$i] == 826) $steruc = $out[6][$i];
    25.         if($out[2][$i] == 860) $summuc = $out[6][$i];
    26.         if($out[2][$i] == 974) $belarusuc = $out[6][$i];
    27.         if($out[2][$i] == 981) $gruzijauc = $out[6][$i];
    28.         if($out[2][$i] == 124) $kanadauc = $out[6][$i];
    29.         if($out[2][$i] == 203) $chehijauc = $out[6][$i];
    30.         if($out[2][$i] == 208) $danijauc = $out[6][$i];
    31.         if($out[2][$i] == 233) $eestiuc = $out[6][$i];
    32.         if($out[2][$i] == 392) $japanuc = $out[6][$i];
    33.         if($out[2][$i] == 398) $kazahuc = $out[6][$i];
    34.         if($out[2][$i] == 428) $latvijauc = $out[6][$i];
    35.         if($out[2][$i] == 440) $litnauc = $out[6][$i];
    36.         if($out[2][$i] == 498) $moldovauc = $out[6][$i];
    37.       }
    38.  
    39.       //echo "100 USD - <B>$dollaruc</B> UAH<br>";
    40.       //echo "100 EUR - <B>$eurouc</B> UAH<br>";
    41.       //echo "10 RUR - <B>$rubuc</B> UAH<br>";
    42.       $eurouc = $eurouc/100;
    43. $y = strpos($z,"'>");
    44. $z  = substr($z, 0, $y + 2)."\r\n           <Cube currency='UAH' rate='$eurouc'/>".substr($z, $y + 2);
    45. echo $z;
    46.  
    47.  
    48.  
    49.  
    50.       function get_contentuc()
    51.       {
    52.         // Формируем ссылку к источнику валюты
    53.         $link = "http://www.bank-ua.com/export/currrate.xml";
    54.         // Загружаем HTML-страницу
    55.         $fd = fopen($link, "r");
    56.         $text="";
    57.         if (!$fd) echo "Курсы временно недоступны";
    58.         else
    59.         {
    60.           // Чтение содержимого файла в переменную $text
    61.           while (!feof ($fd)) $text .= fgets($fd, 4096);
    62.         }
    63.         // Закрыть открытый файловый дескриптор
    64.         fclose ($fd);
    65.         return $text;
    66.       }
    67. ?>



    а также для того чотб увидеть еффект, удалите
    (руками)
    /cache/daily.xml
     
    Последнее редактирование: 10.08.2010
    Cesah нравится это.
  4. Offline

    glaras Недавно здесь

    Регистрация:
    28.06.2011
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    какие-то кривые курсы выдаёт...Курс на 5% отличается от официального, с чем связано?
     

Поделиться этой страницей

Загрузка...