IT-Security 33 Опубликовано: 9 апреля 2009 Рассказать Опубликовано: 9 апреля 2009 (изменено) Доброе время суток! Выкладываю простенький, но очень полезный модуль экспорта курса с ЦБ РФ: Открыть: index.php Найти: $tpl->load_template ( 'main.tpl' ); Ниже вставить: // Получение курса доллара и евро by IT-Security if (!file_exists(ENGINE_DIR."/cache/curs.tmp") || filemtime(ENGINE_DIR."/cache/curs.tmp")<time()-3600) { $date = date("d/m/Y"); $url = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date"; $doc = DOMDocument::load($url); $currencies = $doc->getElementsByTagName("Valute"); $tmp = array(); foreach($currencies as $valute) { $i = $valute->getElementsByTagName('NumCode')->item(0)->nodeValue; if ($i=='840' || $i=='978') { $value = $valute->getElementsByTagName('Value')->item(0)->nodeValue; $tmp[$i] = $value; } } $curs = "Доллар: ".$tmp['840']."<br>"; $curs.= "Евро: ".$tmp['978']."<br>"; $fp = fopen( ENGINE_DIR . '/cache/curs.tmp', 'w+' ); fwrite( $fp, $curs ); fclose( $fp ); } else { $curs = file_get_contents(ENGINE_DIR . '/cache/curs.tmp'); } $tpl->set('{curs}', $curs); // END В нужное место поставить в шаблон {curs}. Модуль поддерживает кэширование и берёт 2 валюты, но при небольшой доработке может выводить ЛЮБЫЕ валюты. Hint для желающих: if ($i=='840' || $i=='978') { $value = $valute->getElementsByTagName('Value')->item(0)->nodeValue; $tmp[$i] = $value; } Заменяем на: $value = $valute->getElementsByTagName('Value')->item(0)->nodeValue; $tmp[$i] = $value; И получаем импорт ВСЕХ валют, которые на ЦБ РФ. Можно сделать echo "<pre>"; print_r($tmp); echo "</pre>"; чтобы посмотреть ID нужных элементов. Изменено 29 апреля 2009 пользователем IT-Security Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 625 Опубликовано: 12 апреля 2009 Рассказать Опубликовано: 12 апреля 2009 Спасибо, поставлю, попробую Цитата Ссылка на сообщение Поделиться на других сайтах
ev09 0 Опубликовано: 15 апреля 2009 Рассказать Опубликовано: 15 апреля 2009 (изменено) может импорт? а не экспорт? Поправил... IT-Security Изменено 15 апреля 2009 пользователем IT-Security Цитата Ссылка на сообщение Поделиться на других сайтах
blagoy_vip 7 Опубликовано: 21 апреля 2009 Рассказать Опубликовано: 21 апреля 2009 Отлично, но было бы не плохо, в скобочках указывать на сколько повысился/понизился курс Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 21 апреля 2009 Рассказать Опубликовано: 21 апреля 2009 Автор Храните в локальной базе и сравнивайте Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 625 Опубликовано: 23 апреля 2009 Рассказать Опубликовано: 23 апреля 2009 IT-Security, ниже какого кода вставить? Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 23 апреля 2009 Рассказать Опубликовано: 23 апреля 2009 Автор Вот это? echo "<pre>"; print_r($tmp); echo "</pre>"; Под всем кодом моего мини-модуля Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 625 Опубликовано: 23 апреля 2009 Рассказать Опубликовано: 23 апреля 2009 Нет, сам модуль куда ставить в index.php (в первом топике не написано), я имею ввиду этот код: // Получение курса доллара и евро by IT-Security if (!file_exists(ENGINE_DIR."/cache/curs.tmp") || filemtime(ENGINE_DIR."/cache/curs.tmp")<time()-3600) { $date = date("d/m/Y"); $url = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date"; $doc = DOMDocument::load($url); $currencies = $doc->getElementsByTagName("Valute"); $tmp = array(); foreach($currencies as $valute) { $i = $valute->getElementsByTagName('NumCode')->item(0)->nodeValue; if ($i=='840' || $i=='978') { $value = $valute->getElementsByTagName('Value')->item(0)->nodeValue; $tmp[$i] = $value; } } $curs = "Доллар: ".$tmp['840']."<br>"; $curs.= "Евро: ".$tmp['978']."<br>"; $fp = fopen( ENGINE_DIR . '/cache/curs.tmp', 'w+' ); fwrite( $fp, $curs ); fclose( $fp ); } else { $curs = file_get_contents(ENGINE_DIR . '/cache/curs.tmp'); } $tpl->set('{curs}', $curs); // END Цитата Ссылка на сообщение Поделиться на других сайтах
enod 0 Опубликовано: 27 апреля 2009 Рассказать Опубликовано: 27 апреля 2009 Вставил код, первый день он цифры показал верные, а сегодня не обновил курсы (хотя здесь http://www.cbr.ru/scripts/XML_daily.asp?date_req уже другие цифры). Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 27 апреля 2009 Рассказать Опубликовано: 27 апреля 2009 Автор День смотрится по времени сервера. Время жизни кэша - 1 час. Ссылку на сайт пожалуйста. Цитата Ссылка на сообщение Поделиться на других сайтах
Vredina 0 Опубликовано: 29 апреля 2009 Рассказать Опубликовано: 29 апреля 2009 IT-Security, Вы так и не написали куда же вставить код? Открыть: index.php Найти: что ????????? Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 29 апреля 2009 Рассказать Опубликовано: 29 апреля 2009 Автор Извиняюсь)поправил первый пост) Цитата Ссылка на сообщение Поделиться на других сайтах
maks1192 96 Опубликовано: 1 мая 2009 Рассказать Опубликовано: 1 мая 2009 Хотелось-бы добавить значки доллара и евро может сделаете? скриншот с mail.ru Цитата Ссылка на сообщение Поделиться на других сайтах
maks1192 96 Опубликовано: 2 мая 2009 Рассказать Опубликовано: 2 мая 2009 Цитата Ссылка на сообщение Поделиться на других сайтах
YugForum 0 Опубликовано: 5 мая 2009 Рассказать Опубликовано: 5 мая 2009 Плохо, что тема заглохла... Было бы очень полезно установить такой модуль на сайт! Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 5 мая 2009 Рассказать Опубликовано: 5 мая 2009 Автор Я дал получение данных. Оформлять дизайн под каждого я не буду Цитата Ссылка на сообщение Поделиться на других сайтах
YugForum 0 Опубликовано: 6 мая 2009 Рассказать Опубликовано: 6 мая 2009 Я понимаю, что оформление дизайна под каждого нового пользователя которому зажотелось бы установить Ваш хак с курсами валют - непозволительная роскош... Но всетаки хотелось бы попрасить Вас выложить хотя бы пример оформления, что бы большинство пользователей смогли поменять картинки и настроить его под себя! Заранее благодарен! Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 6 мая 2009 Рассказать Опубликовано: 6 мая 2009 Автор А что тут править то? Дан же код: $curs = "Доллар: ".$tmp['840']."<br>"; $curs.= "Евро: ".$tmp['978']."<br>"; Возьмите и замените надписи на картинки и всё :/ Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 625 Опубликовано: 7 мая 2009 Рассказать Опубликовано: 7 мая 2009 (изменено) Случайность, извините - мой пост удалите Изменено 7 мая 2009 пользователем Captain Цитата Ссылка на сообщение Поделиться на других сайтах
maks1192 96 Опубликовано: 9 мая 2009 Рассказать Опубликовано: 9 мая 2009 А что тут править то? Дан же код: $curs = "Доллар: ".$tmp['840']."<br>"; $curs.= "Евро: ".$tmp['978']."<br>"; Возьмите и замените надписи на картинки и всё :/ Дайте пример хотя-бы (код), плиз!!? (как оно должно выглядеть) Я в php к сожалению не рубаюсь =(( Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 9 мая 2009 Рассказать Опубликовано: 9 мая 2009 Автор PHP тут не при чём. htmlbook.ru в помощь Цитата Ссылка на сообщение Поделиться на других сайтах
maks1192 96 Опубликовано: 10 мая 2009 Рассказать Опубликовано: 10 мая 2009 Понятно В следующий раз буду внимателен! Цитата Ссылка на сообщение Поделиться на других сайтах
RedScorp 0 Опубликовано: 30 мая 2009 Рассказать Опубликовано: 30 мая 2009 Ребят,а этот модуль на много отличается от описанного тут - "Загрузка курса валют с сайта ЦентроБанка". Просто давно ставил, с тех пор не менял... Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 30 мая 2009 Рассказать Опубликовано: 30 мая 2009 Автор Принцип одинаковый, реализацию смотреть лень Цитата Ссылка на сообщение Поделиться на других сайтах
rusboss 0 Опубликовано: 4 февраля 2010 Рассказать Опубликовано: 4 февраля 2010 Спасибо народ Давно хотел этот модуль переделать, а то кеширования не было и шаблон для поиска кривой непонятный. Кто сможет сделать модуль для металлов и еще разных показателей с центро банка, там их куча. Ссылки на страницы у них http://cbr.ru/map.aspx ссылка на металлы формируется из двух дат. http://www.cbr.ru/scripts/xml_metall.asp?date_req1=$daten&date_req2=$datek Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.