Ромка!eu

  • Отдых
  • Работа
Главная — Блоги — Ромка's blog

Это старая (Drupal 6) версия сайта romka.eu. Она больше не обновляется, комментирование материалов отключено. Обновленная версия сайта доступна по адресу http://romka.eu.

Модуль "Курсы валют" для Drupal 6

Ромка — Ср, 12/24/2008 - 17:31

В одном из последних проектов необходимо было вывести в блоке курсы валют. Кроме страшных информеров от РБК никакого полезного контента на эту тему я найти не сумел, по этому разработал модуль для шестого Друпала, который тянет курсы рубля по отношению к другим валютам из xml-файла с сайта ЦБРФ и выводит их в виде блока.

Полученные данные кешируются, настройки кеша, а также частота обновлений и список валют, которые необходимо выводить в блоке задаются через специальный интерфейс в админке. Внешний вид блока может быть переопределен через функцию темизации. Выводиться могут курсы следующих валют: Австралийский доллар, Фунт стерлингов Соединенного королевства, Белорусский рубль, Датская крона, Доллар США, Евро, Исландская крона, Казахское тенге, Канадский доллар, Китайский юань Жэньминьби, Норвежская крона, СДР (специальные права заимствования), Сингапурский доллар, Новая турецкая лира, Украинская гривна, Шведская крона, Швейцарский франк, Японская иена.

Демонстрацию работы модуля можно увидеть на этой странице в правом нижнем углу.

Внимание. С 11.01.2009 доступна новая версия модуля.

  • Drupal
  • курсы валют
  • Работа
  • Ромка's blog

Выкладываю новую версию модуля "Курсы валют"

Ромка → Вс, 01/11/2009 - 19:27

Выкладываю новую версию модуля. Теперь он не просто выводит текущий курс, а также показывает изменения относительно предыдущего дня. Кроме того на по адресу exchange-rate на основе Google Chart строится график изменения курсов.

Для корректной работы модуля файл cron.php должен запускаться не реже раза в сутки. Картинку с графиками модуль пытается закешировать (при помощи CURL), если сделать этого не удается, то при каждом показе графика будет отсылаться запрос к Google Chart, таких запросов должно быть не более 50 000 в сутки.

Ромка, включаю модуль

Anonymous (не проверено) → Втр, 01/27/2009 - 12:07

Ромка, включаю модуль возникает ошибка при включении блока сайт не доступен, ошибка Fatal error: Call to undefined function curl_init() in Z:\home\final\WWW\sites\all\modules\currencies\currencies.module on line 73

PHP должен поддерживать работу с CURL

Ромка → Ср, 01/28/2009 - 00:50

PHP должен поддерживать работу с CURL. Если в качестве веб-сервера используется Апач + винда, то в php.ini надо раскомментировать строчку "extension=php_curl.dll", если веб-сервер работает на *никс-системе, то пхп надо пересобрать с поддержкой CURL, подробности тут: http://ru.php.net/manual/ru/curl.installation.php.

Спасибо, большое за ответ!!!

Anonymous (не проверено) → Ср, 01/28/2009 - 20:03

Спасибо, большое за ответ!!!

Тонна благодарности )

Bahiya (не проверено) → Сб, 03/21/2009 - 21:24

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

Похожий модуль

Рамиль (не проверено) → Ср, 03/25/2009 - 19:44

На текущем проекте нужна была подобная функциональность, плюс возможность сделать перевод валюты.

Поискал, нашёл - Currency

Забирает данные с Yahoo! Finance, даёт api для обмена валют.

Думаю лучше было бы объединить два модуля, обогатив его тем, чего нет у другого :)

Отличный модуль

Вячеслав (не проверено) → Сб, 03/28/2009 - 11:06

Все работает и замечательно работает.

А есть такой же модуль но для Drupal 5.x ???

А можно сделать такое-же с погодой ?

AGir (не проверено) → Пт, 04/17/2009 - 06:49

Модуль ОТЛИЧНЫЙ !!! блин !!!, яркий пример КАК НАДО писать модули, хотлось-бы еще что-то подобное чтоб выдергивал из XML погоду например http://informer.gismeteo.ru/xml/30823_1.xml
если возможно отпишись, можно на аську 92_ноль_ноль_68

Модуль

Anonymous (не проверено) → Втр, 02/23/2010 - 15:45

Модуль погоды
http://vitalynoskov.spaces.live.com/blog/cns!59323A5F2F6F65CC!1534.entry

проблемы

S_F (не проверено) → Втр, 06/09/2009 - 13:07

Добрый день.
Очень интересны модуль, но опять таки возникли проблемы.
Тестирую на не рабочем сайте (под денвером апач+винда)
после установки вылезла уазаная проблема, разкоментил строчку, все хорошо. Включил блок и опять та же ошибка. Подскажите как решить?
И если не сложно, то решился ли вопрос с модулем погоды?
Большая просьба ответить, по возможности продублировать на почту..

после установки вылезла

Ромка → Втр, 06/09/2009 - 14:02

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

Указанная где проблема?

Пишет: Fatal error: Call to

S_F (не проверено) → Втр, 06/09/2009 - 22:41

Пишет:

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 в файлах вирутального сервера, проблама ушла.
Как только в "блоках" включаю блок и жму сохранить вылетает выше описаная ошибка.

Значит, все таки, расширение

Ромка → Ср, 06/10/2009 - 10:52

Значит, все таки, расширение cURL не установлено. Проверьте phpinfo(); там должен быть блок с названием curl и параметром cURL support — enabled.

Все еще глухо

S_F (не проверено) → Ср, 06/10/2009 - 16:02

Если имеется ввиду файл 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();
}
?>
******************************************************************

Возможно я совсем ничего не понимаю.
Объясните пожалуйста пошагово, как для полного идиота, так как я действительно в этих вопросах очень туго соображаю.

Разместите в корне вашего

Ромка → Ср, 06/10/2009 - 23:45

Разместите в корне вашего сайта файл с именем phpinfo.php и таким содержимым:

<?php
phpinfo();
?>

затем перейдите на страницу вашсайт.ру/phpinfo.php, там будет выведена страница с настройками PHP, среди них должен быть блок с настройками curl. Если его нет, то значит расширение не включено. Включите его и модуль заработает.

посыпаю голову пеплом

S_F (не проверено) → Чт, 06/11/2009 - 01:08

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

Сделал, как было описано, но:

Блок с настройками не появился, а как включить расширение я не понял.
Возможно и в первый раз разкоментировал не правильно.

Объясните пожалуйста где чего включать и как надо правильно в php.ini разкоментировать строчку

В phpinfo посмотрите где

Ромка → Пт, 06/12/2009 - 21:47
  1. В phpinfo посмотрите где лежит используемый php.ini (часто в системе может лежать несколько этих файлов).
  2. В php.ini должна быть переменная extension_dir, в ней прописан путь, по которому PHP ищет расширения.
  3. Раскомментируйте строчку extension=php_curl.dll (надо удалить точку с запятой перед этой строкой)
  4. Убедитесь что в папке extension_dir лежит файл php_curl.dll
  5. Перезапустите Апач
  6. Еще документация тут

вопрос

slider (не проверено) → Пнд, 08/17/2009 - 16:56

Привет. Во-первых, спасибо за модуль. Полезный.

Теперь бы разобраться, как оно работает? ) Т.е. я его установил, оставил в настройках "USD,EUR" (без кавычек), поставил дефолтный адрес адрес xml-файла... ошибки на странице с png пропали после рефреша, как и было обещано. А вот блок так и не появился. Т.е. ни ошибок, ничего.

Ему нужно время, чтобы данные появились? Или может быть у меня cron не отрабатывает? (хотя для верности, запустил его пару раз вручную).

Буду благодарен за комментарий.

P.S. phpinfo()

slider (не проверено) → Пнд, 08/17/2009 - 17:01

P.S.
phpinfo() показывает:
curlCURL support enabled
CURL Information libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5

сорри, немного внимания мне

slider (не проверено) → Пнд, 08/17/2009 - 18:12

сорри, немного внимания мне бы не помешало. видимо параметр "Частота обновления данных (в секундах):" отвечает за это? спустя час появились валюты. работает.
т.е. я так понимаю, ему нужно сделать два запроса, чтобы данные о различии появились?

еще раз спасибо за прекрасный модуль.

Прошу прощения, но есть еще

slider (не проверено) → Пнд, 08/17/2009 - 23:03

Прошу прощения, но есть еще один вопрос: я плохо разбираюсь в модульной структуре друпала... есть ли какая-то возможность темизации? Т.е. можно ли например сделать name - заголовком для span, а саму валюту именовать так же, как в модуле - сокращениями?

Нет, ждать не нужно

Ромка → Ср, 08/19/2009 - 13:18

slider wrote:
А вот блок так и не появился. Т.е. ни ошибок, ничего.

Ему нужно время, чтобы данные появились? Или может быть у меня cron не отрабатывает? (хотя для верности, запустил его пару раз вручную).


Вообще нет, не нужно ждать. Модуль сначала ищет данные в кеше и если не находит их, то отправляет запрос к серверу ЦБ. Вы включили блок на странице администрирования блоков?

slider wrote:
Прошу прощения, но есть еще один вопрос: я плохо разбираюсь в модульной структуре друпала... есть ли какая-то возможность темизации? Т.е. можно ли например сделать name - заголовком для span, а саму валюту именовать так же, как в модуле - сокращениями?

Есть, там есть функция темизации, начинающаяся с theme_, надо ее скопировать в файл template.php, который находится в папке с используемой в данный момент если файла нет, то его надо создать), заменть theme на имя_темы_оформления и сбросить theme registry cache, для этого нужно зайти на страницу со списком тем.

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

Выложил обновленную версию

Ромка → Сб, 08/22/2009 - 01:29

Выложил обновленную версию модуля. В ней изменение внешнего вида блока вынесено в отдельный файл-шаблон cur-block.tpl.php, теперь не нужно вносить изменения в template.php, а достаточно изменить этот шаблон, предварительно скопировав из папки с модулем в папку с текущей темой.

Спасибо! Буду пробовать. С

slider (не проверено) → Пнд, 08/24/2009 - 16:48

Спасибо! Буду пробовать. С остальным вроде разобрался.
Есть один... недосмотр, я так думаю. Если отношение валюты к рублю больше полтинника, кривая в exchange-rate становится "прямой" )

нашел еще баг

slider (не проверено) → Вс, 09/06/2009 - 12:29

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

Подскажите, если я установлю

Anderlecht (не проверено) → Чт, 11/12/2009 - 13:49

Подскажите, если я установлю себе "currencies.zip" то такой график у меня также будет строится? Или для этого нужно чтото дополнительно устанавливать?

Fatal error

Евгений (не проверено) → Чт, 11/26/2009 - 17:24

при активации модуля (при установке). выдает ошибку

<?php
Fatal error
: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home/vhosts/komandor.md/public_html/_sub/test/sites/all/modules/currencies/currencies.module:84 Stack trace: #0 /home/vhosts/komandor.md/public_html/_sub/test/sites/all/modules/currencies/currencies.module(84): SimpleXMLElement->__construct('') #1 /home/vhosts/komandor.md/public_html/_sub/test/sites/all/modules/currencies/currencies.module(115): getDataFromCbrf() #2 /home/vhosts/komandor.md/public_html/_sub/test/sites/all/modules/currencies/currencies.install(18): currencies_contents('26', '11', '2009') #3 /home/vhosts/komandor.md/public_html/_sub/test/includes/module.inc(450): currencies_enable(true) #4 /home/vhosts/komandor.md/public_html/_sub/test/includes/module.inc(306): module_invoke() #5 /home/vhosts/komandor.md/public_html/_sub/test/modules/system/system.admin.inc(917): module_enable() #6 /home/vhosts/komandor.md/public_html/_sub/test/includes/form.inc(769): system_modules_submit('currencies_enab...', Array) #7 /home/v in /home/vhosts/komandor.md/public_html/_sub/test/sites/all/modules/currencies/currencies.module on line 84
?>

Темизация

Евгений (не проверено) → Сб, 11/28/2009 - 00:54

копирую файл cur-block.tpl.php в свою тему, а друпал его не видит, все делает по шаблону который находится в директории модуля каренси. И к тому же после копирования в модуле Девел возникает куча ошибок... хоть убей...

Fatal error

Евгений (не проверено) → Пнд, 11/30/2009 - 12:17

С еррором разобрался, сори вина моя. Вся проблема была в хостинг провайдере. Я им написал, они попросили IP, я им дал IP центрабанка и они дали доступ к нему.

Большое спасибо за модуль!

Владимир (не проверено) → Пнд, 12/07/2009 - 23:21

Большое спасибо за модуль! Все отлично работает.

Модуль отличный,

Anonymous (не проверено) → Чт, 04/08/2010 - 15:41

Модуль отличный, спасибо!!!
Но, мне показалось, что разница в курсе как-то странно считается.
Где-то вроде ошибка, если смотреть по таблица, но где понять не могу.
Или это только у меня так?

Вот это действительно вещь!!!

Евгений (не проверено) → Втр, 05/11/2010 - 19:57

Вот это действительно вещь!!! Весь интернет обошел чтобы курсы валют себе установить и вот наконецто...да еще и все толково расписано. Спасибо за модуль, Буду ставить

Раскоментировал строку

Anonymous (не проверено) → Пнд, 10/04/2010 - 10:29

Раскоментировал строку 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

В чем дело?

Большое спасибо, очень

sonnety (не проверено) → Вс, 02/13/2011 - 17:03

Большое спасибо, очень пригодился модуль.

Глюк, уж не знаю модуля или меня

Neverbalnost (не проверено) → Пт, 08/19/2011 - 11:06

После того как включила модуль при попытке зайти на страничку настройки блоков показывает ошибку "Class 'SimpleXMLElement' not found". Это почему так?

Курс валют в копейках

Сергей.S (не проверено) → Втр, 10/18/2011 - 18:29

Здравствуйте, Роман
Возможно ли подкорректировать код модуля, чтобы данные о стоимости валюты выглядели не
1 Доллар США — 30,7370
а
1 Доллар США — 30,73

то есть убрать тысячные и десятитысячные доли рубля оставив только копейки?

Есть еще одно пожелание, на сколько я помню по случаю, если сервер cbr.ru лежит и модуль не сможет получить данные, то страницы на которых выводятся курсы валют будут недоступны

Не подскажите, каким образом

Anonymous (не проверено) → Ср, 03/28/2012 - 09:55

Не подскажите, каким образом можно взять текущее значение курса, например, для usd из блока/модуля, чтобы использовать в дальнейшем это значение как переменную в своих модулях/файлах темизации итд?

Обо мне

Всем привет!
Меня зовут
Роман Архаров, я профессиональный веб-разработчик, программирую на языках PHP, Python и Action-Script, в работе использую фреймворки Drupal и Django. В этом блоге я размещаю заметки и статьи, связанные с моей работой, отдыхом и другими интересными мне темами.

Похожие заметки

  • Пример разработки плагина для модуля CCK
  • Swftools и модуль Pdf2SWfField для Друпала
  • Тестирование модуля "Inner poll"
  • Несколько статей о Друпале
  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте

Популярные заметки

  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте
  • Перетаскивание строк таблицы. Table drag and drop — плагин для jQuery
  • Темизация Drupal. Часть 3. Основы Drupal Forms API и темизация форм
  • Темизация Drupal. Часть 4. Темизация Views
  • AJAX. Обмен данными между клиентом и сервером, закачка на сервер файлов без перезагрузки страницы при помощи библиотеки jQuery.
  • Кеширование на Drupal-сайте. Сравнение встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Varnish
  • Тестирование модуля "Inner poll"
  • Несколько панорам из путешествия по Перу и Боливии
  • Arduino + bluetooth, небольшая проблема
  • Пример разработки плагина для модуля CCK

Подписка


Последние комментарии

  • drupal-admin → Кеширование на Drupal-сайте. Сравнение эффективности встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Var → Отличная статья
  • Меховщиков Руслана → Проверка имени пользователя на наличие букв из разных алфавитов → Re: Читал про это уже на
  • Вероника → Куба. Лето 2008. Часть 3 → По поводу "приветливых жителей" Тринидада
  • Sfero → Статья в PC Magazine/RE. Drupal: разработка модуля → Немного о контенте
  • RemaGe → Статья в PC Magazine/RE. Drupal: разработка модуля → -)
  • Ромка → Статья в PC Magazine/RE. Drupal: разработка модуля → Да, будет сборка, та которую
  • RemaGe → Статья в PC Magazine/RE. Drupal: разработка модуля → -)
  • anatinge → Поездка в Киев → спасибо :)
  • Ромка → Поездка в Киев → Да, в общем-то, ничего
  • GogA → Поездка в Киев → Заинтриговал, что там за

Новые заметки

  • Кеширование на Drupal-сайте. Сравнение встроенного в Drupal кеша, статического файлового кеша (модуль Boost) и Varnish
  • Любопытное поведение модуля syslog в шестом Друпале (баг?)
  • Arduino + bluetooth, небольшая проблема
  • Гугл 1 марта прекратил поддержку сервиса Google Friend Connect
  • Проба пера в HTML5 + canvas. Эффект ластика
  • Шесть рукопожатий
  • Доклад на DrupalConfMoscow 2011
  • Статусы разных сущностей в Друпале 6
  • Футер, прибитый к низу страницы
  • Путешествие по Перу и Боливии. Часть 2

Тэги

Drupal jquery Куба Лето 2007 Лето 2008 Отдых Работа Штуки-дрюки лето модуль статья цитата
еще тэги

Навигация

  • Exchange rate
  • Переход по внешней ссылке
  • Последние сообщения
  • Фотогалереи

Курсы валют

  • 100 Казахстанских тенге — 21,3687 (-0.43)
  • 10 Украинских гривен — 27,2852 (-13.04)
  • 1 Китайский юань — 10,2706 (-40.98)
  • 100 Японских иен — 53,5332 (+12.67)
  • 1 Доллар США — 65,6210 (+33)
  • 1 Евро — 69,8076 (+29.42)
  • 10000 Белорусских рублей — 36,3310 (-2.51)
  • 1 Турецкая лира — 22,9540 (+4.99)

10 случайных заметок

  • Невероятный битбокс от Dub FX и Woodnote
  • Куба. Лето 2008. Часть 2
  • Лето 2007. Путешествие в Камбоджу – Таиланд – Малайзию. Часть 2. Камбоджа, Сиануквилль.
  • Запустил на сайте новый небольшой сервис "тИЦ и PR одной кнопкой"
  • Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 1 — Пхукет и Джакарта
  • Куба. Лето 2008. Часть 1
  • Статья в журнале PC Magazine
  • Футер, прибитый к низу страницы
  • Лето 2007. Путешествие в Камбоджу – Таиланд – Малайзию. Часть 1.
  • Эксперименты с вКонтакте API

Случайные фото

Тринидадские спортсменчики
Друпликон и моя тень
Недалеко от Красной поляны
Эль Ничо. На фоне я.
А это уже полуостров Крым, на пути в Керчь.
Я на
Парашютист в Варадеро
Я и моя тень
Эль перро
Осло, Карл Юхан Гате
Норвегия, Нордсетер
Желтый арбуз! Ммм, юмми!
Копенгаген, Кристиания, Граффити 5
Дерево в Прамбанане
Копенгаген, Кристиания, Граффити 4
Замок Акерхус вечером
  • Отдых
  • Работа

При использовании материалов с сайта, пожалуйста, ставьте ссылку на источник. E-mail для связи: mne@romka.eu.