Перейти к публикации

Рекомендованные сообщения

Доброе время суток!

Выкладываю простенький, но очень полезный модуль экспорта курса с ЦБ РФ:

Открыть: 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 нужных элементов.

Изменено пользователем IT-Security
Ссылка на сообщение
Поделиться на других сайтах

Отлично, но было бы не плохо, в скобочках указывать на сколько повысился/понизился курс

Ссылка на сообщение
Поделиться на других сайтах

Нет, сам модуль куда ставить в 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

Ссылка на сообщение
Поделиться на других сайтах

Вставил код, первый день он цифры показал верные, а сегодня не обновил курсы (хотя здесь http://www.cbr.ru/scripts/XML_daily.asp?date_req уже другие цифры).

Ссылка на сообщение
Поделиться на других сайтах

День смотрится по времени сервера. Время жизни кэша - 1 час. Ссылку на сайт пожалуйста.

Ссылка на сообщение
Поделиться на других сайтах

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

Заранее благодарен!

Ссылка на сообщение
Поделиться на других сайтах

А что тут править то?

Дан же код:

		 $curs = "Доллар: ".$tmp['840']."<br>";

		 $curs.= "Евро: ".$tmp['978']."<br>";

Возьмите и замените надписи на картинки и всё :/

Ссылка на сообщение
Поделиться на других сайтах

А что тут править то?

Дан же код:

		 $curs = "Доллар: ".$tmp['840']."<br>";

		 $curs.= "Евро: ".$tmp['978']."<br>";

Возьмите и замените надписи на картинки и всё :/

Дайте пример хотя-бы (код), плиз!!? (как оно должно выглядеть)

Я в php к сожалению не рубаюсь =((

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Ребят,а этот модуль на много отличается от описанного тут - "Загрузка курса валют с сайта ЦентроБанка". Просто давно ставил, с тех пор не менял...

Ссылка на сообщение
Поделиться на других сайтах
  • 8 месяцев спустя...

Спасибо народ Давно хотел этот модуль переделать, а то кеширования не было и шаблон для поиска кривой непонятный. Кто сможет сделать модуль для металлов и еще разных показателей с центро банка, там их куча. Ссылки на страницы у них http://cbr.ru/map.aspx ссылка на металлы формируется из двух дат. http://www.cbr.ru/scripts/xml_metall.asp?date_req1=$daten&date_req2=$datek

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...