×
Ruby on Rails: постинг твитов через Twitter API (04 нояб 2017)

Практикуемся в Ruby on Rails.

Вопрос Курс валют Joomla - JL Currency

Больше
1 год 2 нед. назад #1 от beginner
beginner создал эту тему: Курс валют Joomla - JL Currency
Понадобился мне тут модуль курса валют для сайта, скачал Курс валют Joomla - JL Currency с joomline.ru и обнаружил неприятную особенность: время от времени, когда данные с ЦБР не приходят, модуль рушит странички на которых опубликован. Есть идеи, как избежать такого?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 год 2 нед. назад #2 от Aleksej
Aleksej ответил в теме Курс валют Joomla - JL Currency
Попробуйте наш модуль , и обязательно используйте кэширование в Advanced. Страничку точно не рушит, но, возможно, придумаем еще кое-какие улучшения с кэшированием.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 год 2 нед. назад #3 от serge
serge ответил в теме Курс валют Joomla - JL Currency

beginner пишет: время от времени, когда данные с ЦБР не приходят, модуль рушит странички на которых опубликован.


неужто кэширование модуля не помогает?

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 год 1 нед. назад - 1 год 1 нед. назад #4 от Aleksej
Aleksej ответил в теме Alternative caching Joomla module
Анонс статьи Alternative caching Joomla module в блоге, также превью кода для модуля jExchange rates CBR :


<?php
defined('_JEXEC') or die('Restricted access');

$curDate = date('d/m/Y', mktime(0,0,0,date("n"),date("j")+1,date("Y")));
$curDate2 = date('d/m/Y', mktime(0,0,0,date("n"),date("j")-($params->get('date2')),date("Y")));
$urls = new ArrayObject(
	array(
		'http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.$curDate2.'&date_req2='.$curDate.'&VAL_NM_RQ=R01235'
		,'http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.$curDate2.'&date_req2='.$curDate.'&VAL_NM_RQ=R01239'
	)
	,ArrayObject::ARRAY_AS_PROPS
);

// Caching
$cache = JFactory::getCache('mod_jexchange_rates_cbr', '');

$cache->setCaching(true); // Force cache enable
$cache->setLifeTime(1);

$cacheKey = (string)$urls->serialize();

if (!($data = $cache->get($cacheKey, ''))){
var_dump('DEBUG: Cache empty. Obtain data from service');
	foreach ($urls as $i => $url){
		$data[$i] = file_get_contents($url);
	}

	$cache->store($data, $cacheKey);
}
else{
	var_dump('DEBUG: Cache present');
}
// \Caching

# @TODO it is also good idea place it in array of object instead of 2 separate variables
$currencyXML = simplexml_load_string($data[0]);
$currencyXML1 = simplexml_load_string($data[1]);


if ($params->get('chart_select') == 0){
	require('charts/area');
}
elseif ($params->get('chart_select') == 1) {
	require('charts/stepped');
}
elseif ($params->get('chart_select') == 2) {
	require('charts/combo');
}
else {
	require('charts/line');
}
Последнее редактирование: 1 год 1 нед. назад от Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.