Вход Регистрация
Файл: 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_videosVCfg::get('video.browse_per_page'));
        
$sql            $sql.' LIMIT '.$pagination['limit'];
        
$videos            = array();
        if (!
$videos $this->cache->get($sql3600)) {
              
$this->db->query($sql);
              if (
$this->db->affected_rows()) {
                  
$videos $this->db->fetch_rows();
                  
$this->cache->store($sql$videos3600);
              }
        }

        
// 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 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();
    }
}
Онлайн: 1
Реклама