Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Форум Общие вопросы Дополнения addons.diafan.ru Автоматический конвертор валют


Иван (ivando) 17 июля 2016 г.

Всем привет. Существует ли у диафан конвертер валют? Мне нужно забивать в каталог цену в йенах и чтобы автоматически выводилось на сайте в рублях по курсу ЦБ. Не нашел подобного.
Спасибо сказали: Иван (ivando)
Спасибо сказали: Иван (ivando)

Виталий (vitalsmall) 11 октября

Указанная ссылка -
http://addons.diafan.ru/modules/modules-and-services/obnovlenie-kursov-valyut-po-tsb/
не работает.
Скажите есть ли решение (модуль) для автоматического ввода курса валют, чтобы вручную не вбивать каждый день?

Степан (idxdoc) 11611 октября

На cron повесьте

Код

<?php


define('DIAFAN', 1);
define('ABSOLUTE_PATH', $_SERVER['DOCUMENT_ROOT'].'/');
include ABSOLUTE_PATH.'config.php';
include_once ABSOLUTE_PATH.'includes/custom.php';
Custom::init();
Custom::inc('includes/developer.php');

Показать весь код
Dev::init();
Custom::inc('includes/core.php');
define('IS_ADMIN', 0);
Custom::inc('includes/init.php');
Custom::inc('includes/database.php');
$diafan = new Init();


class CBRAgent
{
protected $list = array();

public function load()
{
$xml = new DOMDocument();
$url = 'http://www.cbr.ru/scripts/XML_daily.asp?date_req=' . date('d.m.Y');

if (@$xml->load($url))
{
$this->list = array();

$root = $xml->documentElement;
$items = $root->getElementsByTagName('Valute');

foreach ($items as $item)
{
$code = $item->getElementsByTagName('CharCode')->item(0)->nodeValue;
$curs = $item->getElementsByTagName('Value')->item(0)->nodeValue;
$this->list[$code] = floatval(str_replace(',', '.', $curs));
}

return true;
}
else
return false;
}

public function get($cur)
{
return isset($this->list[$cur]) ? $this->list[$cur] : 0;
}
}

$conver = 3;

$cbr = new CBRAgent();
if($cbr->load()){
$usd_curs = $cbr->get('USD') / 100 * $conver + $cbr->get('USD');
$eur_curs = $cbr->get('EUR') / 100 * $conver + $cbr->get('EUR');
DB::query("UPDATE {shop_currency} SET exchange_rate=%f WHERE name='USD'", $usd_curs);
DB::query("UPDATE {shop_currency} SET exchange_rate=%f WHERE name='Euro'", $eur_curs);
}

$diafan->_shop->price_calc(0, 0, 1);
$diafan->_shop->price_calc(0, 0, 2);
$diafan->_cache->delete("", array());

echo '<div style="background: silver; font-weight:bold; text-align:center; height: 100px; line-height: 100px; font-size: 20px;">Валюта обновлена</div>';

Dmitry (weissfl) 12211 октября

Готового нету.