Вход Регистрация
Файл: boot/sub_classes/rss.class.php
Строк: 59
<?php

/**
* @name        JMY CMS
* @link        http://jmy.su/
* @copyright   Copyright (C) 2012-2014 JMY LTD
* @license     LICENSE.txt (see attached file)
* @version     VERSION.txt (see attached file)
* @author      Komarov Ivan
*/

class Rss
{
    var 
$Count=0;
    var 
$Template;
    var 
$Items=array();
    var 
$CashPath="";
    var 
$content "";
    var 
$CacheLoad false;


    function 
rss($url)
    {
        global 
$Items;
        if(!
$url) die("RSS: неверный url"); 
        
$urlx=parse_url($url);
        
        if(
$this->CacheLoad)
        {
            
$Filename=$this->CashPath.$urlx[host].".rss";
            
            
$modifed=time()-@filemtime($Filename);

            if(!
file_exists($Filename) || $modifed>CASHE_TIMEOUT)
            {
                if( !(
$this->content file_get_contents($url)) ) die("RSS: ошибка доступа");
                
$rss_tmp=fopen($Filename,"w");
                
fputs($rss_tmp$this->content);
                     
fclose($rss_tmp);     
            }
            else 
$this->content = @file_get_contents($Filename);
        }
        else
        {
            
$this->content = @file_get_contents($url);
        }

        
preg_match_all("/<item>(.+)</item>/Uis"$this->content$Items1PREG_SET_ORDER);

        foreach(
$Items1 as $indx=>$var)
        {
            
$this->Items[$indx]=$var[1];
        }
    }
    
    function 
getRssDescription()
    {
        
preg_match("#<description>(.+?)</description>#i"$this->content$ParsedItem);
        return 
$ParsedItem[1];
    }
    
    function 
parseItems($type 'tpl')
    {    
        if(isset(
$this->Items[$this->Count]))
        {
            
$Item $this->Items[$this->Count];
        }
        else
        {
            return 
false;
        }
    
        
$this->Count++;
        
preg_match_all("/<(title|link|guid|description)>(.+)</(\1)>/is"$Item$ParsedItemPREG_SET_ORDER);
        
$ParsedArray['title'] = htmlspecialchars($ParsedItem[0][2], ENT_QUOTES);
        
$ParsedArray['link'] = urldecode($ParsedItem[1][2]);
        if(
$ParsedItem[2][1] == 'description')
        {
            
$ParsedArray['description'] = htmlspecialchars($ParsedItem[2][2], ENT_QUOTES);
        }
        elseif(
$ParsedItem[3][1] == 'description')
        {
            
$ParsedArray['link'] = urldecode($ParsedItem[2][2]);
            
$ParsedArray['description'] = htmlspecialchars($ParsedItem[3][2], ENT_QUOTES);
        }
        
        if(
$type == 'tpl')
        {
            return 
__tpl($this->Template,$ParsedArray);
        }
        elseif(
$type == 'array')
        {
            return 
$ParsedArray;
        }
    }    
}
Онлайн: 1
Реклама