Вход Регистрация
Файл: adultscript-2.0.3-pro/files/modules/photo/components/rss.php
Строк: 149
<?php
defined
('_VALID') or die('Restricted Acess!');
class 
VComponent_photo_rss extends VModule_photo
{
    public function 
__construct()
    {
        
parent::__construct();
    }
    
    public function 
render()
    {
        
$cfg        VF::cfg('core.config');
        
$pcfg        VF::cfg('module.photo');
        
$args       $this->get_query(TRUE2);
        
$slug       $args['slug'];
        
$order      $args['order'];
        
$timeline   $args['timeline'];
        
        if (
$slug != '') {
            
$categories $this->get_photo_categories();
            foreach (
$categories as $category) {
                if (
$slug == $category['slug']) {
                    
$cat_id $category['cat_id'];
                    
$name    $category['name'];
                    break;
                }
            }
            
            if (!isset(
$cat_id)) {
                
VModule::load('404'true);
            }
            
            
$sql            'SELECT a.album_id, a.title, a.slug, a.rating, a.rated_by, a.description,
                                      a.total_photos, a.total_views, a.add_date, u.username,
                                      GROUP_CONCAT(DISTINCT c.slug) AS cslug,
                                      GROUP_CONCAT(DISTINCT c.name) AS name,
                                      GROUP_CONCAT(DISTINCT t.name) AS tags
                               FROM #__photo_category AS pc
                               LEFT JOIN #__photo_albums AS a ON (a.album_id = pc.album_id AND a.type = '
public' AND a.status = '1')
                               LEFT JOIN #__photo_categories AS c ON (c.cat_id = pc.cat_id)
                               LEFT JOIN #__photo_tags AS t ON (t.album_id = a.album_id)
                               LEFT JOIN #__user AS u ON (u.user_id = a.user_id)
                               WHERE pc.cat_id = '
.$cat_id;
            
$sql_delim        ' AND';
        } else {
            
$sql            'SELECT a.album_id, a.title, a.slug, a.rating, a.rated_by, a.description,
                                      a.total_photos, a.total_views, a.add_date, u.username,
                                      GROUP_CONCAT(DISTINCT c.slug) AS cslug,
                                      GROUP_CONCAT(DISTINCT c.name) AS name,
                                      GROUP_CONCAT(DISTINCT t.name) AS tags
                               FROM #__photo_albums AS a
                               LEFT JOIN #__photo_category AS pc ON (pc.album_id = a.album_id)
                               LEFT JOIN #__photo_categories AS c ON (c.cat_id = pc.cat_id)
                               LEFT JOIN #__photo_tags AS t ON (t.album_id = a.album_id)
                               LEFT JOIN #__user AS u ON (u.user_id = a.user_id)'
;
            
$sql_delim        ' WHERE';
        }
        
        switch (
$timeline) {
              case 
'today':
                  
$sql .= $sql_delim." DATE_FORMAT(a.add_date, '%y-%m-%d') = DATE_FORMAT(NOW(), '%y-%m-%d')";
                  break;
              case 
'yesterday':
                  
$sql .= $sql_delim." DATE_FORMAT(a.add_date, '%y-%m-%d') = DATE_ADD(CURDATE(), INTERVAL -1 DAY)";
                  break;
              case 
'week':
                  break;
              case 
'month':
                  
$sql .= $sql_delim." DATE_FORMAT(a.add_date, '%y-%m') = DATE_FORMAT(NOW(), '%y-%m')";
                  break;
              case 
'year':
                  
$sql .= $sql_delim." DATE_FORMAT(a.add_date, '%y') = DATE_FORMAT(NOW(), '%y')";
                  break;
        }
        
        
$sql .= ' GROUP BY a.album_id';
        
        switch (
$order) {
              case 
'recent':
                  
$sql .= ' ORDER BY a.album_id DESC';
                  break;
              case 
'popular':
                  
$sql .= ' ORDER BY a.total_views DESC';
                  break;
              case 
'rated':
                  
$sql .= ' ORDER BY a.rating DESC';
                  break;
              case 
'discussed':
                  
$sql .= ' ORDER BY a.total_comments';
                  break;
              case 
'photos':
                  
$sql .= ' ORDER BY a.total_photos';
                  break;
              case 
'favorited':
                  
$sql .= ' ORDER BY a.total_favorites';
                  break;
        }
        
        
$sql .= ' LIMIT '.$pcfg['rss_per_page'];
        
        
$db     VF::factory('database');
        
$cache     VF::factory('cache');
        if (!
$albums $cache->get($sql3600)) {
              
$albums $db->get_rows($sql);
              if (
$db->affected_rows()) {
                  
$cache->store($sql$albums3600);
              }
        }

        
header('Content-Type: text/xml');
        
ob_start();
print 
"<?xml version="1.0" encoding="utf-8" ?>n";
print 
"<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">n";
print "<channel>n";
print 
"<title>".htmlspecialchars($cfg['site_name'])."</title>n";
print 
"<link>".BASE_URL."/</link>n";
print 
"<description>".htmlspecialchars($cfg['meta_desc'])."</description>n";
print 
"<copyright>Copyright (c) 2010 by ".htmlspecialchars($cfg['site_name'])." - All rights reserved.</copyright>n";
print 
"<pubDate>".date('r')."</pubDate>n";
print 
"<lastBuildDate>".date('r')."</lastBuildDate>n";
print 
"<language>en-us</language>n";
print 
"<image>n";
print 
"<url>".BASE_URL."/templates/".$cfg['template']."/images/logo.png</url>n";
print 
"<title>".htmlspecialchars($cfg['site_name'])."</title>n";
print 
"<link>".BASE_URL."/</link>n";
print 
"</image>n";
foreach (
$albums as $album) {
    
$link           BASE_URL.'/photo/'.$album['album_id'].'/'.$album['slug'].'/';
    
$tags           explode(','$album['tags']);
    
$count            count($tags)-1;
    
$tag_string     '';
    foreach (
$tags as $index => $tag) {
          
$tag          trim($tag);
        
$tag_string .= "<a href="".BASE_URL."/photo/tag/".str_replace(' ', '-', $tag)."/">".$tag."</a> ";
        if (
$index !== $count) {
            
$tag_string .= ', ';
        }
    }
    
    
$categories        explode(','$album['name']);
    
$slugs             explode(','$album['cslug']);
    
$count             count($categories)-1;
    
$cat_string        '';
    foreach (
$categories as $index => $name) {
            
$cat_string .= "<a href="".BASE_URL."/photo/".$slugs[$index]."">".htmlspecialchars($name)."</a>";
            if (
$index !== $count) {
                
$cat_string .= ', ';
            }
    }
    
print 
"<item>n";
print 
"  <title>".htmlspecialchars($album['title'], ENT_QUOTES'UTF-8')."</title>n";
print 
"  <link>".$link."</link>n";
print 
"  <guid>".$link."</guid>n";
print 
"  <description>n";
print 
"    <![CDATA[";
print 
"<img src="".MEDIA_URL."/photos/covers/".$album['album_id'].".jpg" align="left" border="0" width="".$pcfg['cover_width']."" height="".$pcfg['cover_height']."" vspace="4" hspace="4" />
<br />
      &nbsp; Description: "
.htmlspecialchars($album['description'], ENT_QUOTES'UTF-8')."<br />
           &nbsp; Category: "
.$cat_string."<br />
       &nbsp; Tags: "
.$tag_string."<br />
           &nbsp; Date: "
.$album['add_date']."<br /></p>";
print 
"    ]]>n";
print 
"  </description>n";
print 
"  <pubDate>".date('r'strtotime($album['add_date']))."</pubDate>n";
print 
"</item>n";    
}
print 
"</channel>n";
print 
"</rss>";
ob_end_flush();
    }
}
Онлайн: 0
Реклама