Ромка!eu

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

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

  • Просмотреть
  • Голоса

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

637
points

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

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

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

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

ВложениеРазмер
currencies.zip5.05 кб
  • Drupal
  • курсы валют
  • Работа
  • Ромка's blog
  • Quote

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

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

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

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

  • ответить
  • quote
  • -60 points

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

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

  • ответить
  • quote
  • -15 points

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.

  • ответить
  • quote
  • 10 points

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

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

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

  • ответить
  • quote
  • -10 points

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

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

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

  • ответить
  • quote
  • -14 points

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

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

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

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

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

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

  • ответить
  • quote
  • -8 points

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

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

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

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

  • ответить
  • quote
  • -21 points

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

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

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

  • ответить
  • quote
  • -7 points

Модуль

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

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

  • ответить
  • quote
  • 4 points

проблемы

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

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

  • ответить
  • quote
  • -21 points

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

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

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

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

  • ответить
  • quote
  • -9 points

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

  • ответить
  • quote
  • -25 points

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

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

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

  • ответить
  • quote
  • -7 points

Все еще глухо

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();
}
?>
******************************************************************

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

  • ответить
  • quote
  • -25 points

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

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

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

<?php
phpinfo();
?>

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

  • ответить
  • quote
  • 2 points

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

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

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

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

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

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

  • ответить
  • quote
  • 22 points

В 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. Еще документация тут
  • ответить
  • quote
  • 0 points

вопрос

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

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

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

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

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

  • ответить
  • quote
  • -31 points

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

  • ответить
  • quote
  • -5 points

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

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

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

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

  • ответить
  • quote
  • -8 points

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

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

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

  • ответить
  • quote
  • -36 points

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

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

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

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


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

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

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

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

  • ответить
  • quote
  • -3 points

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

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

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

  • ответить
  • quote
  • -16 points

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

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

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

  • ответить
  • quote
  • -22 points

нашел еще баг

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

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

  • ответить
  • quote
  • -18 points

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

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

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

  • ответить
  • quote
  • -19 points

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
?>

  • ответить
  • quote
  • -21 points

Темизация

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

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

  • ответить
  • quote
  • -24 points

Fatal error

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

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

  • ответить
  • quote
  • -5 points

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

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

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

  • ответить
  • quote
  • -19 points

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

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

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

  • ответить
  • quote
  • -16 points

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

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

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

  • ответить
  • quote
  • -1 points

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

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

В чем дело?

  • ответить
  • quote
  • 3 points

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

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

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

  • ответить
  • quote
  • -13 points

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

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

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

  • ответить
  • quote
  • -6 points

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

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

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

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

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

  • ответить
  • quote
  • -3 points

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Вы можете использовать тэг <code></code> для подсветки синтаксиса программного кода. The supported tag styles are: <foo>, [foo].
  • You may quote other posts using [quote] tags.

Подробнее о форматировании

CAPTCHA
Если вы человек, а не робот, то введите текст с картинки. Если вы робот, то велкам ту майкрософт.ком.

Обо мне

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

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

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

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

  • AJAX. Обмен данными между клиентом и сервером, закачка на сервер файлов без перезагрузки страницы при помощи библиотеки jQuery.
  • Пример разработки плагина для модуля CCK
  • Темизация Drupal. Часть 1
  • Темизация Drupal. Часть 2. Анатомия темы оформления Drupal
  • Темизация Drupal. Часть 4. Темизация Views
  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте
  • Темизация Drupal. Часть 3. Основы Drupal Forms API и темизация форм
  • Разработка сайта на Drupal. Часть 4. Пример разработки корпоративного интранет-сайта на Drupal
  • Вращение изображений при помощи Javascript
  • Динамическое добавление элементов к форме

Подписка


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

  • Oz → Швабрашвабр2 → слабовато для
  • loan → Вращение изображений при помощи Javascript → answer this topic
  • CopelandLacey33 → Доставка → reply this post
  • vitsss → Авторизация на Drupal-сайте с помощью аккаунта вКонтакте → hostinh nic.ru and vk api
  • dimasikov → Автоматическая "газетная" верстка (верстка в несколько колонок) → Я похожее делал для с этим
  • max2012 → Разработка сайта на Drupal. Часть 2. Архитектура Drupal. → Подвесные потолки Опосля
  • Антон → Темизация Drupal. Часть 4. Темизация Views → Отлично!
  • Itsmypersonal → Зима 2010. Поездка в Тайланд, Индонезию и Сингапур. Часть 2 — Пхукет → Пхукет - да!
  • Sheldon → Перетаскивание ячеек таблицы. Table drag and drop — плагин для jQuery → Здравствуйте! Подскажите
  • Sheldon → Home sheep home → Одна из тех игр в которые

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

  • Проба пера в HTML5 + canvas. Эффект ластика
  • Шесть рукопожатий
  • Доклад на DrupalConfMoscow 2011
  • Статусы разных сущностей в Друпале 6
  • Футер, прибитый к низу страницы
  • Путешествие по Перу и Боливии. Часть 2
  • Путешествие по Перу и Боливии. Часть 1
  • Несколько панорам из путешествия по Перу и Боливии
  • Авторизация на Drupal-сайте с помощью аккаунта ВКонтакте
  • Home sheep home

Тэги

dckyiev09 Drupal jquery Боливия Отдых Перу Работа Штуки-дрюки зима 2010 модуль статья темизация
еще тэги

Вход для пользователей

Что такое OpenID?
  • Войти по OpenID
  • Скрыть вход по OpenID
  • Зарегистрироваться
  • Запросить новый пароль

Навигация

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

Курсы валют

  • 100 Казахских тенге — 19,9970 (-0.24)
  • 10 Украинских гривен — 36,9677 (-0.49)
  • 10 Китайских юаней — 47,1500 (-0.56)
  • 100 Японских иен — 38,4449 (-0.79)
  • 1 Доллар США — 29,6795 (-0.41)
  • 1 Евро — 39,4767 (+0.02)
  • 10000 Белорусских рублей — 35,8016 (-0.14)
  • 1 Турецкая лира — 17,0200 (-0.13)

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

  • Май 2006. Сочи, Адлер, Геленджик, Анапа, Керчь, Судак, Ялта, Севастополь.
  • Включил раздел "Отдых".
  • Швабрашвабр.ру — пример коллективного блога с элементами соц сети, построенный на CMS Drupal
  • Киви не умеют летать?
  • Новый год 2008. Часть 3. Гётеборг.
  • Поездка в Киев
  • El Empleo
  • Drupal for Firebug
  • Лето 2007. Путешествие в Камбоджу – Таиланд – Малайзию. Часть 7. Бангкок.
  • Backup-manager — настройка резервного копирования Linux-сервера на Amazon S3 за 5 минут

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

Закат в Гаване
Я и кокос... Где то я это уже видел...
Эль Ничо. На фоне я.
А это уже полуостров Крым, на пути в Керчь.
Местный ходок
Копенгаген, Кристиания, Граффити 7
Судак, Генуэзская крепость
Пеликан
Дерево в Прамбанане
Еще горы
Замок Акерхус вечером
Я с каким-то дядькой читаю газету
Здание замка Акерхус
Тринидадские спортсменчики
И у люююбви у нааашеей сееела...
На подходе к Красной поляне...
  • Отдых
  • Работа

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