Вход Регистрация
Файл: adultscript-2.0.3-pro/files/modules/video/components/category.php
Строк: 138
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VComponent_video_category extends VModule_video
{
    public function 
__construct()
    {
        
parent::__construct();
    }
    
    public function 
render()
    {
        
$args        = $this->get_query(true);
        
$slug        = $args['slug'];
        
$order        = $args['order'];
        
$timeline    = $args['timeline'];
        
$page        = $args['page'];
        
        
$url        = $slug.'/';
        if (
$order != 'recent' or $timeline or $page > 1) {
            
$url     .= $order.'/';
        }
        
        if (
$timeline) {
            
$url    .= $timeline.'/';
        }
        
        if (
$page > 1) {
            
$url    .= $page.'/';
        }
        
        if (!
VUri::match($url)) {
            
VModule::load('404', TRUE);
        }
        
        
$categories    = $this->get_video_categories();
        foreach (
$categories as $category) {
            if (
$slug == $category['slug']) {
                
$cat_id     = (int) $category['cat_id'];
                
$name        = ' '.$category['name'];
                
$desc       = $category['description'];
                
$title        = $category['name'];
                
$meta_title    = $category['meta_title'];
                
$meta_desc    = $category['meta_desc'];
                
$meta_keys    = $category['meta_keys'];
                break;
            }
            
            if (isset(
$category['subcategories'])) {
                foreach (
$category['subcategories'] as $subcategory) {
                    if (
$slug == $subcategory['slug']) {
                        
$cat_id        = (int) $subcategory['cat_id'];
                        
$name        = ' '.$subcategory['name'];
                        
$desc        = $subcategory['description'];
                        
$title        = $category['name'];
                        
$meta_title    = $category['meta_title'];
                        
$meta_desc    = $category['meta_desc'];
                        
$meta_keys    = $category['meta_keys'];
                        break;
                    }
                }
            }
        }
        
        if (!isset(
$cat_id)) {
            
VModule::load('404', true);
        }
        
        
VLanguage::load('frontend.video');
        
        
$sql_count        = 'SELECT COUNT(*) AS total_videos 
                           FROM #__video_category AS c
                           INNER JOIN #__video AS v ON (v.video_id = c.video_id AND v.status = 1)
                           WHERE c.cat_id = '
.$cat_id;
        
$sql            = 'SELECT v.video_id, v.title, v.slug, v.rating, v.rated_by, v.duration, v.thumb,
                                  v.thumbs, v.total_views, v.add_time, v.ext, v.hd, v.premium, v.likes,
                                  u.username
                           FROM #__video_category AS vc
                           INNER JOIN #__video AS v ON (v.video_id = vc.video_id AND v.status = 1)
                           INNER JOIN #__user AS u ON (u.user_id = v.user_id)
                           WHERE vc.cat_id = '
.$cat_id;
        
        
$time_name        = '';
        if (
$timeline) {
              switch (
$timeline) {
                case 
'today':
                    
$start_time  = strtotime('today');
                    
$end_time    = $start_time+86400;
                    
$sql        .= " AND v.add_time > ".$start_time." AND v.add_time < ".$end_time;
                    
$sql_count  .= " AND v.add_time > ".$start_time." AND v.add_time < ".$end_time;
                    
$time_name   = __('todays').' ';
                    break;
                case 
'yesterday':
                    
$start_time  = strtotime('yesterday');
                    
$end_time    = $start_time+86400;
                    
$sql        .= " AND v.add_time > ".$start_time." AND v.add_time < ".$end_time;
                    
$sql_count  .= " AND v.add_time > ".$start_time." AND v.add_time < ".$end_time;
                    
$time_name   = __('yesterdays').' ';
                    break;
                case 
'week':
                    
$now         = time();
                    
$start_time = (date('w', $now) === 1) ? strtotime('today', $now) : strtotime('last Monday', $now);
                    
$sql        .= " AND v.add_time > ".$start_time;
                    
$sql_count  .= " AND v.add_time > ".$start_time;
                    
$time_name   = __('this-weeks').' ';
                    break;
                case 
'month':
                    
$start_time = strtotime('first day of '.date('F Y'));
                    
$sql        .= " AND v.add_time > ".$start_time;
                    
$sql_count  .= " AND v.add_time > ".$start_time;
                    
$time_name   = __('this-months').' ';
                    break;
                case 
'year':
                    
$start_time = strtotime('first day of '.date('Y'));
                    
$sql        .= " AND v.add_time > ".$start_time;
                    
$sql_count  .= " AND v.add_time > ".$start_time;
                    
$time_name   = __('this-years').' ';
                    break;
              }
        }
        
        if (
VModule::enabled('premium') && VF::cfg_item('module.premium.browse_premium') == '0') {
              
$sql        .= " AND v.premium = '0'";
            
$sql_count  .= " AND v.premium = '0'";
        }

        switch (
$order) {
            case 
'recent':
                
$sql       .= ' ORDER BY v.add_time DESC';
                
$order_name = __('most-recent');
                break;
            case 
'popular':
                
$sql       .= ' ORDER BY v.total_views DESC';
                
$order_name = __('popular');
                break;
            case 
'discussed':
                
$sql       .= ' ORDER BY v.total_comments DESC';
                
$order_name = __('most-discussed');
                break;
            case 
'rated':
                
$sql       .= ' ORDER BY (v.rating+v.rated_by) DESC';
                
$order_name = __('top-rated');
                break;
            case 
'downloaded':
                
$sql       .= ' ORDER BY v.total_downloads DESC';
                
$order_name = __('most-downloaded');
                break;
            case 
'longest':
                
$sql       .= ' ORDER BY v.duration DESC';
                
$order_name = __('longest');
                break;
            case 
'watched':
                  
$sql       .= ' ORDER BY v.view_time DESC';
                  
$order_name = __('being-watched');
                  break;
        }
        
        
$total_videos    = $this->db->get_field($sql_count, 'total_videos');
        
$pagination     = VPagination::get($page, $total_videos, VCfg::get('video.browse_per_page'));
        
$sql            = $sql.' LIMIT '.$pagination['limit'];
        
$videos            = array();
        if (!
$videos = $this->cache->get($sql, 3600)) {
              
$this->db->query($sql);
              if (
$this->db->affected_rows()) {
                  
$videos = $this->db->fetch_rows();
                  
$this->cache->store($sql, $videos, 3600);
              }
        }

        
// lets do some SEO here
        
$time_name            = ($time_name != '') ? $time_name.' ' : '';
        
$page_name            = ($page > 1) ? ' - '.__('page').' '.$page : '';
        
$site_name            = VF::cfg_item('site_name');
                
        
$this->tpl->title        = __('browse-title', array($time_name.$order_name.$name, ''));
        
$this->tpl->meta_title    = ($meta_title != '')
            ? 
vsprintf($meta_title, array($time_name.$order_name, $page_name, $site_name))
            : 
__('browse-meta-title', array($time_name.$order_name.$name, $page_name, $site_name));
        
$this->tpl->meta_desc    = ($meta_desc != '')
            ? 
vsprintf($meta_desc, array($time_name.$order_name, $site_name))
            : 
__('browse-meta-title', array($time_name.$order_name.$name, $page, $site_name)).' '.VF::cfg_item('meta_desc');
        
$this->tpl->meta_keys    = ($meta_keys != '') ? $meta_keys : utf8_strtolower($name).', '.VF::cfg_item('meta_keys');
    
        
$this->tpl->canonical    = BASE_URL.'/'.$url;
        
$this->tpl->canonicalm    = MOBILE_URL.'/'.$url;

        if (
$page > 1) {
              
$sort    = '';
              if (
$order != 'recent' or $page > 2 or $timeline) {
                  
$sort    = $order;
              }
        
            
$this->tpl->prev_url    = build_url($sort, $timeline, $slug, $page-1);
        }

        if (
$page < $pagination['total_pages']) {
            
$this->tpl->next_url    = build_url($order, $timeline, $slug, $page+1);
        }
    
        
$this->tpl->menu        = 'video';

        
$this->tpl->slug        = $slug;
        
$this->tpl->cat_id        = $cat_id;
        
$this->tpl->order        = $order;
        
$this->tpl->timeline    = $timeline;
        
$this->tpl->tag            = null;
        
        
$this->tpl->name        = $name;
        
$this->tpl->desc        = $desc;
        
$this->tpl->page        = $page;
        
$this->tpl->categories    = $categories;
        
$this->tpl->videos        = $videos;
        
$this->tpl->pagination    = $pagination;
        
        
$this->tpl->load(array('header', 'video_browse', 'footer'));
        
$this->tpl->display();
    }
}
Онлайн: 2
Реклама