Модуль "Курсы валют" для Drupal 6
Submitted by Ромка on Ср, 24/12/2008 - 17:31
В одном из последних проектов необходимо было вывести в блоке курсы валют. Кроме страшных информеров от РБК никакого полезного контента на эту тему я найти не сумел, по этому разработал модуль для шестого Друпала, который тянет курсы рубля по отношению к другим валютам из xml-файла с сайта ЦБРФ и выводит их в виде блока.
Полученные данные кешируются, настройки кеша, а также частота обновлений и список валют, которые необходимо выводить в блоке задаются через специальный интерфейс в админке. Внешний вид блока может быть переопределен через функцию темизации. Выводиться могут курсы следующих валют: Австралийский доллар, Фунт стерлингов Соединенного королевства, Белорусский рубль, Датская крона, Доллар США, Евро, Исландская крона, Казахское тенге, Канадский доллар, Китайский юань Жэньминьби, Норвежская крона, СДР (специальные права заимствования), Сингапурский доллар, Новая турецкая лира, Украинская гривна, Шведская крона, Швейцарский франк, Японская иена.
Демонстрацию работы модуля можно увидеть на этой странице в правом нижнем углу.
Внимание. С 11.01.2009 доступна новая версия модуля.
Вложение | Размер |
---|---|
currencies.zip | 5.05 KB |
37 Comments
Выкладываю новую версию модуля "Курсы валют"
Submitted by Ромка on
Выкладываю новую версию модуля. Теперь он не просто выводит текущий курс, а также показывает изменения относительно предыдущего дня. Кроме того на по адресу exchange-rate на основе Google Chart строится график изменения курсов.
Для корректной работы модуля файл cron.php должен запускаться не реже раза в сутки. Картинку с графиками модуль пытается закешировать (при помощи CURL), если сделать этого не удается, то при каждом показе графика будет отсылаться запрос к Google Chart, таких запросов должно быть не более 50 000 в сутки.
Ромка, включаю модуль
Submitted by Anonymous (не проверено) on
Ромка, включаю модуль возникает ошибка при включении блока сайт не доступен, ошибка Fatal error: Call to undefined function curl_init() in Z:\home\final\WWW\sites\all\modules\currencies\currencies.module on line 73
PHP должен поддерживать работу с CURL
Submitted by Ромка on
PHP должен поддерживать работу с CURL. Если в качестве веб-сервера используется Апач + винда, то в php.ini надо раскомментировать строчку "extension=php_curl.dll", если веб-сервер работает на *никс-системе, то пхп надо пересобрать с поддержкой CURL, подробности тут: http://ru.php.net/manual/ru/curl.installation.php.
Спасибо, большое за ответ!!!
Submitted by Anonymous (не проверено) on
Спасибо, большое за ответ!!!
Тонна благодарности )
Submitted by Bahiya (не проверено) on
Спасибо большое за модуль, уже отчаялся найти что-либо подходящее, а тут такой приятный сюрприз.
Вот что значит периодически почитывать коллег-друпальщиков :)
Похожий модуль
Submitted by Рамиль (не проверено) on
На текущем проекте нужна была подобная функциональность, плюс возможность сделать перевод валюты.
Поискал, нашёл - Currency
Забирает данные с Yahoo! Finance, даёт api для обмена валют.
Думаю лучше было бы объединить два модуля, обогатив его тем, чего нет у другого :)
Отличный модуль
Submitted by Вячеслав (не проверено) on
Все работает и замечательно работает.
А есть такой же модуль но для Drupal 5.x ???
А можно сделать такое-же с погодой ?
Submitted by AGir (не проверено) on
Модуль ОТЛИЧНЫЙ !!! блин !!!, яркий пример КАК НАДО писать модули, хотлось-бы еще что-то подобное чтоб выдергивал из XML погоду например http://informer.gismeteo.ru/xml/30823_1.xml
если возможно отпишись, можно на аську 92_ноль_ноль_68
Модуль
Submitted by Anonymous (не проверено) on
Модуль погоды
http://vitalynoskov.spaces.live.com/blog/cns!59323A5F2F6F65CC!1534.entry
проблемы
Submitted by S_F (не проверено) on
Добрый день.
Очень интересны модуль, но опять таки возникли проблемы.
Тестирую на не рабочем сайте (под денвером апач+винда)
после установки вылезла уазаная проблема, разкоментил строчку, все хорошо. Включил блок и опять та же ошибка. Подскажите как решить?
И если не сложно, то решился ли вопрос с модулем погоды?
Большая просьба ответить, по возможности продублировать на почту..
после установки вылезла
Submitted by Ромка on
после установки вылезла уазаная проблема, разкоментил строчку, все хорошо. Включил блок и опять та же ошибка. Подскажите как решить?
Указанная где проблема?
Пишет: Fatal error: Call to
Submitted by S_F (не проверено) on
Пишет:
Fatal error: Call to undefined function curl_init() in Z:\home\yogan.ru\www\modules\currencies\currencies.module on line 73
Тоесть при первой установке модуля выскочила такая же надпись, раскомментировал строчку "extension=php_curl.dll" в php.ini в файлах вирутального сервера, проблама ушла.
Как только в "блоках" включаю блок и жму сохранить вылетает выше описаная ошибка.
Значит, все таки, расширение
Submitted by Ромка on
Значит, все таки, расширение cURL не установлено. Проверьте phpinfo(); там должен быть блок с названием curl и параметром cURL support — enabled.
Все еще глухо
Submitted by S_F (не проверено) on
Если имеется ввиду файл phpinfo.php, то там ничего похожего нету:
**********************************************************
<?php
/* $Id$ */
// vim: expandtab sw=4 ts=4 sts=4:
/**
* Gets core libraries and defines some variables
*/
require_once('./libraries/grab_globals.lib.php');
require_once('./libraries/common.lib.php');
/**
* Displays PHP information
*/
$is_superuser = @PMA_DBI_try_query('USE mysql', $userlink);
if ($is_superuser || $cfg['ShowPhpInfo']) {
phpinfo();
}
?>
******************************************************************
Возможно я совсем ничего не понимаю.
Объясните пожалуйста пошагово, как для полного идиота, так как я действительно в этих вопросах очень туго соображаю.
Разместите в корне вашего
Submitted by Ромка on
Разместите в корне вашего сайта файл с именем phpinfo.php и таким содержимым:
<?php
phpinfo();
?>
затем перейдите на страницу вашсайт.ру/phpinfo.php, там будет выведена страница с настройками PHP, среди них должен быть блок с настройками curl. Если его нет, то значит расширение не включено. Включите его и модуль заработает.
посыпаю голову пеплом
Submitted by S_F (не проверено) on
Спасибо за развернуты ответ, но видимо я активно не могу ничего сообразить.
Сделал, как было описано, но:
Блок с настройками не появился, а как включить расширение я не понял.
Возможно и в первый раз разкоментировал не правильно.
Объясните пожалуйста где чего включать и как надо правильно в php.ini разкоментировать строчку
В phpinfo посмотрите где
Submitted by Ромка on
вопрос
Submitted by slider (не проверено) on
Привет. Во-первых, спасибо за модуль. Полезный.
Теперь бы разобраться, как оно работает? ) Т.е. я его установил, оставил в настройках "USD,EUR" (без кавычек), поставил дефолтный адрес адрес xml-файла... ошибки на странице с png пропали после рефреша, как и было обещано. А вот блок так и не появился. Т.е. ни ошибок, ничего.
Ему нужно время, чтобы данные появились? Или может быть у меня cron не отрабатывает? (хотя для верности, запустил его пару раз вручную).
Буду благодарен за комментарий.
P.S. phpinfo()
Submitted by slider (не проверено) on
P.S.
phpinfo() показывает:
curlCURL support enabled
CURL Information libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
сорри, немного внимания мне
Submitted by slider (не проверено) on
сорри, немного внимания мне бы не помешало. видимо параметр "Частота обновления данных (в секундах):" отвечает за это? спустя час появились валюты. работает.
т.е. я так понимаю, ему нужно сделать два запроса, чтобы данные о различии появились?
еще раз спасибо за прекрасный модуль.
Прошу прощения, но есть еще
Submitted by slider (не проверено) on
Прошу прощения, но есть еще один вопрос: я плохо разбираюсь в модульной структуре друпала... есть ли какая-то возможность темизации? Т.е. можно ли например сделать name - заголовком для span, а саму валюту именовать так же, как в модуле - сокращениями?
Нет, ждать не нужно
Submitted by Ромка on
[quote=slider]А вот блок так и не появился. Т.е. ни ошибок, ничего.
Ему нужно время, чтобы данные появились? Или может быть у меня cron не отрабатывает? (хотя для верности, запустил его пару раз вручную). [/quote]
Вообще нет, не нужно ждать. Модуль сначала ищет данные в кеше и если не находит их, то отправляет запрос к серверу ЦБ. Вы включили блок на странице администрирования блоков?
[quote=slider]Прошу прощения, но есть еще один вопрос: я плохо разбираюсь в модульной структуре друпала... есть ли какая-то возможность темизации? Т.е. можно ли например сделать name - заголовком для span, а саму валюту именовать так же, как в модуле - сокращениями?[/quote]
Есть, там есть функция темизации, начинающаяся с theme_, надо ее скопировать в файл template.php, который находится в папке с используемой в данный момент если файла нет, то его надо создать), заменть theme на имя_темы_оформления и сбросить theme registry cache, для этого нужно зайти на страницу со списком тем.
В ближайшее время выложу версию модуля, в которой шаблон вынесен в отдельный файл, так его удобнее править.
Выложил обновленную версию
Submitted by Ромка on
Выложил обновленную версию модуля. В ней изменение внешнего вида блока вынесено в отдельный файл-шаблон cur-block.tpl.php, теперь не нужно вносить изменения в template.php, а достаточно изменить этот шаблон, предварительно скопировав из папки с модулем в папку с текущей темой.
Спасибо! Буду пробовать. С
Submitted by slider (не проверено) on
Спасибо! Буду пробовать. С остальным вроде разобрался.
Есть один... недосмотр, я так думаю. Если отношение валюты к рублю больше полтинника, кривая в exchange-rate становится "прямой" )
нашел еще баг
Submitted by slider (не проверено) on
Если "вчера" не было обновления курсов, блок может оказаться пустым. Видно по выходным и праздникам, когда нет обновления курсов.
Подскажите, если я установлю
Submitted by Anderlecht (не проверено) on
Подскажите, если я установлю себе "currencies.zip" то такой график у меня также будет строится? Или для этого нужно чтото дополнительно устанавливать?
Fatal error
Submitted by Евгений (не проверено) on
при активации модуля (при установке). выдает ошибку
Темизация
Submitted by Евгений (не проверено) on
копирую файл cur-block.tpl.php в свою тему, а друпал его не видит, все делает по шаблону который находится в директории модуля каренси. И к тому же после копирования в модуле Девел возникает куча ошибок... хоть убей...
Fatal error
Submitted by Евгений (не проверено) on
С еррором разобрался, сори вина моя. Вся проблема была в хостинг провайдере. Я им написал, они попросили IP, я им дал IP центрабанка и они дали доступ к нему.
Большое спасибо за модуль!
Submitted by Владимир (не проверено) on
Большое спасибо за модуль! Все отлично работает.
Модуль отличный,
Submitted by Anonymous (не проверено) on
Модуль отличный, спасибо!!!
Но, мне показалось, что разница в курсе как-то странно считается.
Где-то вроде ошибка, если смотреть по таблица, но где понять не могу.
Или это только у меня так?
Вот это действительно вещь!!!
Submitted by Евгений (не проверено) on
Вот это действительно вещь!!! Весь интернет обошел чтобы курсы валют себе установить и вот наконецто...да еще и все толково расписано. Спасибо за модуль, Буду ставить
Раскоментировал строку
Submitted by Anonymous (не проверено) on
Раскоментировал строку extension=php_curl.dll" Все равно пишет ошибку
Fatal error: Call to undefined function curl_init() in W:\home\localhost\www\drupal\sites\all\modules\currencies\currencies.module on line 77
В чем дело?
Большое спасибо, очень
Submitted by sonnety (не проверено) on
Большое спасибо, очень пригодился модуль.
Глюк, уж не знаю модуля или меня
Submitted by Neverbalnost (не проверено) on
После того как включила модуль при попытке зайти на страничку настройки блоков показывает ошибку "Class 'SimpleXMLElement' not found". Это почему так?
Курс валют в копейках
Submitted by Сергей.S (не проверено) on
Здравствуйте, Роман
Возможно ли подкорректировать код модуля, чтобы данные о стоимости валюты выглядели не
1 Доллар США — 30,7370
а
1 Доллар США — 30,73
то есть убрать тысячные и десятитысячные доли рубля оставив только копейки?
Есть еще одно пожелание, на сколько я помню по случаю, если сервер cbr.ru лежит и модуль не сможет получить данные, то страницы на которых выводятся курсы валют будут недоступны
Не подскажите, каким образом
Submitted by Anonymous (не проверено) on
Не подскажите, каким образом можно взять текущее значение курса, например, для usd из блока/модуля, чтобы использовать в дальнейшем это значение как переменную в своих модулях/файлах темизации итд?