View file inc/widgets/my_super-widget/widget.php

File size: 2.41Kb
<?
defined('WBCAT') or die('Restricted access');				// Если кто то попытатся запустить файл напрямую получит отказ
$Widget= new Widget(SKRIPT_DIR);							// Инициализируем класс и передаем ему адрес где установлен скрипт 
$Wtest_set=$Widget->get_widget_settings('my_super-widget'); //Узнаем настройки виджета
//---------------------------------------------------------------------//

//Создадим функцию получения ленты с чужого ресурса
function get_rss_feed($url,$count_news=3){
$rss = simplexml_load_file($url);					//Интерпретирует XML-файл в объект
//цикл для обхода всей RSS ленты
$viewRSS="";
$i=1;
foreach ($rss->channel->item as $item) {
if($count_news>=$i){
$viewRSS .= '<div class="rssBlock">';
$viewRSS .= '<div class="rssTitle">'.$item->title.'</div>';			//читаем заголовок
$viewRSS .= '<div class="rssdescr">'.$item->description.'</div>';	//читаем описание 
$viewRSS .= '<a href="'.$item->link.'">Подробней...</a></div>';	//читаем ссылку
}
$i++; }
return $viewRSS;
}

// Приводим переменные в понятный вид
$url=$Wtest_set['url'];
$css_class=$Wtest_set['css_class'];
$count_news=$Wtest_set['count_news'];
$day=$Wtest_set['day'];
$site_chehe=$Wtest_set['time'];

//Узнаем сколько прошло дней с момента загрузки предыдущей ленты
$time=time();
$proshlo=$time-$site_chehe;
$proshlo_dney=round($proshlo/86400); 					//Прошло дней
if($proshlo>(86400*$day)){								//если время кеширования уже прошло то получаем свежую RSS ленту
$new_RSS=get_rss_feed($url,$count_news); 				// Используем написанную ранее функцию для получения свежей RSS ленты
$Widget->set_widget_data("my_super-widget",$new_RSS);	// Сохраняем новую ленту в базу данных
}
$Wdata=$Widget->get_widget_data('my_super-widget');		// Получаем ленту из базы данных 

if($css_class==""){ $css_class="rss";}
echo "<div class='{$css_class}'>{$Wdata}<div style=\"clear: both;\"></div></div>";  //выводим ленту на экран

?>