e107inc/e107

View on GitHub
e107_plugins/download/e_rss.php

Summary

Maintainability
A
0 mins
Test Coverage
F
1%
<?php
/*
 * e107 website system
 *
 * Copyright (C) 2008-2009 e107 Inc (e107.org)
 * Released under the terms and conditions of the
 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
 *
 */

if (!defined('e107_INIT')) { exit; }

// v2.x Standard 
class download_rss // plugin-folder + '_rss' 
{
    /**
     * Admin RSS Configuration 
     */        
    function config() 
    {
        $sql = e107::getDb();
        $config = array();

        // All download items
        $config[] = array(
            'name'            => LAN_PLUGIN_DOWNLOAD_NAME,
            'url'            => 'download',
            'topic_id'        => '',
            'description'    => RSS_PLUGIN_LAN_8, 
            'class'            => '0',
            'limit'            => '9'
        );

        // Specific categories         
        if($items = $sql->select("download_category", "*","download_category_id != '' ORDER BY download_category_order"))
        {
            while($row = $sql->fetch())
            {
                $config[] = array(
                    'name'        => LAN_PLUGIN_DOWNLOAD_NAME.' > '.$row['download_category_name'],
                    'url'         => 'download',
                    'topic_id'     => $row['download_category_id'],
                    'path'        => 'download',
                    'text'        => RSS_PLUGIN_LAN_11.' '.$row['download_category_name'],
                    'class'        => '0',
                    'limit'        => '9',
                );
            }
        }
        
        return $config;
    }
    
    /**
     * Compile RSS Data
     * @param $parms array    url, limit, id 
     * @return array
     */
    function data($parms='')
    {
        $sql         = e107::getDb();
        $limit         = $parms['limit'];
        $topic_id     = $parms['id'];
        
        $rss         = array();
        $i             = 0;

        // Individual download items for admin import
        if($topic_id && is_numeric($topic_id))
        {
            $topic = "d.download_category='" . intval($topic_id) . "' AND ";
        }
        else
        {
            $topic = "";
        }
        
        $query = "SELECT d.*, dc.* FROM #download AS d LEFT JOIN #download_category AS dc ON d.download_category = dc.download_category_id WHERE {$topic} d.download_active > 0 AND d.download_class IN (".USERCLASS_LIST.") ORDER BY d.download_datestamp DESC LIMIT 0,".$limit;

        $sql->gen($query);
         $tmp = $sql->db_getList();
                
        foreach($tmp as $value)
        {
            if($value['download_author'])
            {
                $nick = preg_replace("/[0-9]+\./", "", $value['download_author']);
                $rss[$i]['author'] = $nick;
            }

            $rss[$i]['author_email']     = $value['download_author_email'];
            $rss[$i]['title']             = $value['download_name'];
            $rss[$i]['link']             = $e107->base_path."download/download.php?view.".$value['download_id']; // TODO SEF URL
            $rss[$i]['description']     = $value['download_description'];
            $rss[$i]['category_name']     = $value['download_category_name'];
            $rss[$i]['category_link']     = $e107->base_path."download/download.php?list.".$value['download_category_id']; // TODO SEF URL
            $rss[$i]['enc_url']         = $e107->base_path."download/request.php?".$value['download_id']; // TODO SEF URL
            $rss[$i]['enc_leng']         = $value['download_filesize'];
            //$rss[$i]['enc_type']         = $this->getmime($value['download_url']);
            $rss[$i]['enc_type']         = '';
            $rss[$i]['datestamp']         = $value['download_datestamp'];

            $i++;
        }    
                    
        return $rss;
    }    
}