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

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
Модуль показывает:
  • Курс валют от НБУ
  • Курс валют от ЦБР
  • Курс драгметаллов от НБУ
  • Курс драгметаллов от ЦБР

Настройки модуля из админки:
  • Вид:
    • краткий - показывает основные валюты: UAH, RUB, USD, EUR.
    • полный - все остальные валюты.
  • Язык выводимого модулем текста:
    • русский
    • украинский
  • Выводить или нет описание(TITLE) курса.
  • Показывать или нет картинки.
  • Показывать или нет флаги государств.
  • Показывать или нет эмблемы драгметаллов.
  • Вид эмблем драгметаллов:
    • темные
    • светлые
  • Отображать или нет курс валют НБУ
  • Отображать или нет курс валют ЦБР
  • Отображать или нет курс драгметаллов НБУ
  • Отображать или нет курс драгметаллов ЦБР

  • Кэша нету, берёт информацию прямо из XML файлов которые предоставляют банки на своих сайтах.
  • Если курса драгметаллов от ЦБР нету на сегодня, он выводит курс двухдневной давности (такое часто бывает, так как ЦБР на выходных не обновляет XML файлы.

Версия: 1.0.1
Совместимость с Joomla 1.5.x

Скачать модуль.


P.S. Искал работающий модуль курса валют и драгметаллов пару дней, они оказывались либо не рабочими, а заставлять их работать было не охота, либо не тем чем нужно, в общем чтобы всё в одном было, я так и не нашёл (кто-то скажет что плохо искал). Как бы там не было, я решил сделать собственный который бы подходил мне, но есть несколько НО. PHP я знал на уровне арифметических операций и условий, больше ничего. Как создавать модули для Joomla я тоже не знал, так же я не знал как работать с XML данными, да я вообще мало чего знал. Вооружившись Гуглом, твёрдым решением и несколькими днями (точнее 5), я смог сделать то что сделал, точнее написать с нуля используя знания полученные путём изучения кода в похожих модулях.

Буду рад любым замечаниям, предложениям, да и просто комментариям.
Надеюсь кому-то пригодится :)
« Последнее редактирование: 01.03.2011, 18:21:11 от Chifu »
*

palexa

  • Завсегдатай
  • 1087
  • 87 / 0
  • В следующей жизни, я буду кошкой
Ну вставлю я свой пятак и напишу парочку замечаний

1. На http://www.bank.gov.ua/ нет файла XML - данные берутся с сайта http://bank-ua.com/ - поэтому пишите ссылку в модуле на реальный источник XML
2. Добавьте столбец в таблице - Количество единиц - потому что например курс белорусского рубля по отношению к гривне НБУ идёт к 10 а не 100 как Вы написали, то есть
 
Цитировать
10 BYR білоруських рублів  -  0.0263
а у Вас получаеться что
100 BYR    0.03    

или

10 RUB російських рублів -  2.7143
а у Вас получаеться что
100 RUB    2.71    

или

1000 HUF угорських форинтів -  40.0746
а у Вас получаеться что
100 HUF    40.07  

3. допишите столбец - Название валюты, потому что код это хорошо, но название ещё лучше

По драгметалам я не в курсе что к чему, НБУ вроде в унциях считает (1 Тройська унція = 31,1034763826794 грамам) - я так понял Вы пересчёт сделали в коде

Ну а так вроде очень даже хорошо

P.S. Вчера выкладывал здесь рабочий модуль, жаль раньше Вашего не видел, но если бы видел, то необратил бы внимания на своё замечание №2 :)
« Последнее редактирование: 19.02.2011, 03:38:01 от palexa »
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
Спасибо за комментарий palexa :)

Да, недочёты есть и в больших количествах, по крайней мере сейчас я их вижу отчётливо. Я тоже делал "для себя" впрочем я так и говорил, при этом знаний практически нету, всё на тяп-ляп, потому что заказчик захотел курс у себя на сайте вывести )

Я сделал пересчёт всех единиц валют, поэтому и пишется что цена за 100 единиц, как белорусских рублей так и всяких японских тугриков. Так же я сделал пересчёт унций в граммы, потому что многим именно в граммах нужно.
По поводу ссылки на сайт, да, тут я просмотрел как-то, но это не столь важно.

Когда найду время, переделаю модуль этот правильно и расширю функционал. В планах:
- вывод цены металлов за 1 грамм или за 1 унцию
- добавления курса валют и металлов от Белорусских банков
- добавление названий валют
- полная локализация в том числе названий валют
- несколько вариантов отображений данных в том числе разные стили картинок

- исправление работы курса металлов от ЦБР

Где-то так, сейчас вот коплю знания, чтобы сделать кеширование как-то. Кто может помочь мне в этом и соответственно преподать урок программирования всех пользователям форума, велкам :)
*

palexa

  • Завсегдатай
  • 1087
  • 87 / 0
  • В следующей жизни, я буду кошкой
Я сделал пересчёт всех единиц валют, поэтому и пишется что цена за 100 единиц, как белорусских рублей
Может Вы не поняли, или я не понял, что Вы поняли, смотрите внимательно:
у Вас: 100 RUB    2.71
НБУ: 10 RUB    2.71

Разницу улавили ?
Смотрите свой курс, и курс НБУ
Где-то так, сейчас вот коплю знания, чтобы сделать кеширование как-то. Кто может помочь мне в этом и соответственно преподать урок программирования всех пользователям форума, велкам :)
Добавте в конце своего XML файла
Цитировать
<params group="advanced">
      <param name="cache" type="list" default="1" label="Caching" description="Select whether to cache the content of this module">
         <option value="1">Use global</option>
         <option value="0">No caching</option>
      </param>
      <param name="cache_time" type="text" default="900" label="Cache Time" description="The time before the module is recached" />
   </params>
, пример можете посмотреть в файле любого стандартного модуля, где задаётся кеширование, по идее должно работать
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
palexa, спасибо ещё раз.

С курсами в модуле всё нормально, как я и говорил, цена в гривнах за 100 единиц валюты. С рублями всё в порядке, за 100 рублей дают столько-то гривен по курсу, не понимаю от куда у вас взялась цифра "2.71", когда у меня явно показывает правильно, четырёхзначная цифра.

На счёт кэша, я не такой имел ввиду, хочется чтобы он инфу хранил в XML файле на сайте, и обновлял его раз в день, и если бы данных не было пару дней, как это бывает на выходных, то разницу сравнивал бы с последними данными из кэшированного файла. Это для ЦБР, так как украниские курсы это пустяк, всего то надо отобразить данные которые подсчитаны уже, а не так как с сайта ЦБР.
*

palexa

  • Завсегдатай
  • 1087
  • 87 / 0
  • В следующей жизни, я буду кошкой
С курсами в модуле всё нормально, как я и говорил, цена в гривнах за 100 единиц валюты. С рублями всё в порядке, за 100 рублей дают столько-то гривен по курсу, не понимаю от куда у вас взялась цифра "2.71", когда у меня явно показывает правильно, четырёхзначная цифра.
Щас поставлю куда нить, посмотрю, может это я туплю
На счёт кэша, я не такой имел ввиду, хочется чтобы он инфу хранил в XML файле на сайте
Могу подсказать один метод, я так делаю, но я имею прямой доступ к серверу, и Инет на серваке через прокси, (сайт в локалке)
Может этот пример поможет тебе.

Суть такова, в крон пишу задание, выполнять указанный файл в определённое время (например 1 раз в сутки после смены курса),  даю этому файлу права на исполнение файла как программа.
Код
#!/usr/bin/php
<?php
 
$start = microtime(true);
//Отображать все ошибки, кроме notice и strict
error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT);

set_time_limit(60);
$si = $GLOBALS["_SERVER"]["SERVER_NAME"];
$te = $GLOBALS["_SERVER"]["SCRIPT_NAME"];
$host = 'ip-proxy';
 
$fp = fsockopen("$host", port-proxy, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET http://bank-ua.com/export/currrate.xml HTTP/1.0\r\n";
    $out .= "Host: bank-ua.com\r\n";
    $out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3)\r\n";
    $out .= "Accept: text/javascript, text/html, application/xml, text/xml, */*\r\n";
    $out .= "Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
    $out .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
    $out .= "X-Requested-With: XMLHttpRequest\r\n";
    $out .= "X-Prototype-Version: 1.5.0\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);  // отправляем заголовки
    $res = "";
    while (!feof($fp)) {
        $res .= fread($fp, 1024);
    }
    fclose($fp);
    $res = explode("\r\n\r\n",$res,2);
}
print_r($res); //выводим результат
 
$fl = "/var/www/html/my-site.ru/nbu.xml";
$fp = fopen($fl, w);
fwrite($fp, $res[1]); //записываем тело в файл
?>

Ну вот, теперь нужный нам .xml лежит в корне сайта, с него и берём данные, что бы не брать их постоянно с bank-ua.com
*

StasBanki

  • Новичок
  • 2
  • 0 / 0
День добрый господа! Может кто нибудь подсказать, существует ли модуль который показывает курсы сразу от не скольких банков? Поясню! Есть куча модулей показывающих курсы украинских монгольских и прочих иностранных банков, но мне это не нужно, я нашел только модуль берущий инфу с ЦБР, а хочу сделать так чтоб выглядело как таблица где были бы указаны банки к примеру омские и курсы евро и доллара каждого из них! Поможите люди добрые)
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
StasBanki, наверное нету, но интересная идея для реализации. Спасибо, включу это в будущие фишки модуля :)
*

chemerzaev

  • Давно я тут
  • 622
  • 83 / 3
  • Надо мыслить. Меня, например, кормят идеи.
1. Не хватает вывода цены покупка/продажа
2. при включении данного модуля на фронте встала белая страница на котором был только данный модуль с курсом
Я несчастный человек, который, как долбаный экстрасенс, должен понимать заказчика, даже если он сам не знает, чего хочет
*

palexa

  • Завсегдатай
  • 1087
  • 87 / 0
  • В следующей жизни, я буду кошкой
С курсами в модуле всё нормально, как я и говорил, цена в гривнах за 100 единиц валюты. С рублями всё в порядке, за 100 рублей дают столько-то гривен по курсу, не понимаю от куда у вас взялась цифра "2.71", когда у меня явно показывает правильно, четырёхзначная цифра.

Может я плохо пишу, что Вы не понимаете, вот Вам склеенный скрин от Вашего модуля и с оф. страницы НБУ



Посмотрите разницу едениц валюты, и его курс к гривне
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
palexa, прошу прощения, я не залил новую версию 14-го февраля когда мелкие баги вылавливал :( В принципе, это можно легко исправить в коде.

chemerzaev, к сожалению я так и не смог до конца сделать модуль драгметаллов от ЦБР, он на выходных не обновляет данные, а в понедельник данные только на один день, короче происходит сбой с парсером, так как он не получил данные которые должен был. Будет исправлено в будущем.
*

palexa

  • Завсегдатай
  • 1087
  • 87 / 0
  • В следующей жизни, я буду кошкой
1. Обычно исправляют баги если их явно видно, но этот незаметно, так как никто же не будет сверять каждую валюту на правильность, предлагаю Вам это исправить, и написать в первом посте что исправлено, что бы знали те, кто скачал

2. Я не в курсе как в ЦБР (но думаю так же), но в НБУ точно, в пятницу после 17 часов, курс даётся уже на понедельник, в суботу и воскресение курс не меняется нацбанком
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
palexa, с ЦБР немного сложнее, по крайней мере для меня, увы. Если НБУ или кто там даёт сформированный XML документ который осталось только вывести, в том числе и разницу, то с ЦБР нужно скриптить разницу и выводить её отдельно с помощью скрипта, а так как по выходным курс не обновляется, а просто становиться чистым документом что не приемлемо для парсера.

Короче говоря, исправлю, и спасибо вам за помощь ;)
*

palexa

  • Завсегдатай
  • 1087
  • 87 / 0
  • В следующей жизни, я буду кошкой
Да, жаль, ну может я просто не в курсе. Этот файл что низзя так же само вывести, как этот xml ?

Никакого же пересчёта не надо, просто вывести как я вывел НБУ

Посмотрю его на выходных, неужели там данных нет
« Последнее редактирование: 28.02.2011, 23:33:14 от palexa »
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
palexa, неа, там данные на один день, соответственно нужно сравнивать данные за вчера, считать, и выводить разницу курса сегодняшнего и вчерашнего. Благо с курсами валют ЦБР нет такого геморроя как с курсом драгметаллов от ЦБР :)
*

palexa

  • Завсегдатай
  • 1087
  • 87 / 0
  • В следующей жизни, я буду кошкой
ага, точно. Я как то сразу не заметил. Это действительно проблема, если надо выводить разницу курса

Кстате, Вы обновили скрипт в шапке или нет ?
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
Да вроде как обновил. Сейчас просто банально нету времени заняться этим модулем вплотную, но обещаю в ближайшую неделю перековеркать его, хотя бы частично :)
*

Chifu

  • Захожу иногда
  • 64
  • 5 / 0
Виталик, я попробовал, всё скачивается с Депозитфайла - http://depositfiles.com/files/936swfbhl
*

IvanGres

  • Новичок
  • 7
  • 0 / 0
Кажись сегодня сайт банк-уа банально помер))  и работоспособность модуля вместе с ним...
*

palexa

  • Завсегдатай
  • 1087
  • 87 / 0
  • В следующей жизни, я буду кошкой
да не поднимай панику :) такие сайты не умирают. Уже работает
*

nookie_l

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Привет всем! Модуль очень понравился но есть такая проблемка:

На другой версии Joomla на этом же локальном сервере всё отлично. Как быть?
*

nookie_l

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Просто не могу понять - удаляя эту строку №18 всё норм. Может потом как-то боком вылезти, что я её удалил.закоментировал?
Цитировать
include_once( $mosConfig_absolute_path .'includes/domit/xml_domit_include.php' );
*

nookie_l

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Решено - строчка "закомментирована".
*

nookie_l

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
После переезда на хостинг пострадал модуль..

Подскажите как исправить исчезнувший курс?
« Последнее редактирование: 07.07.2011, 13:45:38 от nookie_l »
*

crocus

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
подскажите, как добавить в модуль данные о недрагоценном металле ? необходимо чтобы было как на этом сайте   -      http://www.zincoxide.ru/
*

stef21

  • Захожу иногда
  • 156
  • 8 / 0
Пипец сайт чуть не угробил этим модулем. После удаления модуля сайт заработал, но перекосило позиции модулей, те что были в низу стали в правой колонке, копаю ищу причину
« Последнее редактирование: 17.08.2011, 15:18:30 от stef21 »
*

vitaliy.balatskiy

  • Захожу иногда
  • 92
  • 5 / 0
После переезда на хостинг пострадал модуль..

Подскажите как исправить исчезнувший курс?
Та же фигня. Но только  я еого сразу же устанавливал на хостинг.
All-Mebli.com.ua Інтернет-магазин меблів для дому та офісу.
*

Diman

  • Новичок
  • 12
  • 0 / 0
Подскажите пожалуйста, а как сделать чтобы было на за 100 единиц, а за 1 ?  :dry:
Не хватайтесь мокрыми руками за оголённые провода - они могут заржаветь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль вывода курса валют JextCurrency(1.5)

Автор darang

Ответов: 8
Просмотров: 5885
Последний ответ 28.01.2016, 10:19:06
от Sulpher
Красивый модуль для опросов Nice AJAX Poll

Автор ageent

Ответов: 192
Просмотров: 53750
Последний ответ 21.01.2016, 19:01:21
от int-sam
Модуль Гороскоп AU Joomla 1.5

Автор oppo

Ответов: 130
Просмотров: 34130
Последний ответ 07.12.2014, 16:08:41
от greenj
Модуль слайд-шоу для Joomla 1.5

Автор denverkurt

Ответов: 9
Просмотров: 12703
Последний ответ 26.08.2014, 22:21:46
от denverkurt
Модуль турнирной таблицы по футболу

Автор VikKaschuk

Ответов: 22
Просмотров: 12523
Последний ответ 13.10.2013, 14:07:53
от Alesandro_777