Вход Регистрация
Файл: adultscript-2.0.3-pro/files/mobile/components/news_browse.php
Строк: 90
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VComponent_mobile_news_browse extends VComponent_mobile_news
{
    public function 
__construct()
    {
        
parent::__construct();
    }
    
    public function 
render()
    {
        
VLanguage::load('frontend.news');
    
        
$args    $this->get_args(array_slice(VUri::query(), 1));
        
$page    = (isset($args['page']) && $args['page'] >= 2) ? $args['page'] : 1;
        
        
$url    'news/';
        if (isset(
$args['year']) && isset($args['month'])) {
            
$url    .= $args['year'].'/'.$args['month'].'/';
        }
        
        if (
$page 1) {
            
$url    .= $page.'/';
        }

        if (!
VUri::match($url)) {
            
VModule::load('404'true);
        }        
        
        
        
$sql_add    NULL;
        
$sql_delim    ' WHERE';
        
$date_name    '';
        if (isset(
$args['year']) && isset($args['month'])) {
            
$timestamp    strtotime($args['year'].'-'.$args['month'].'-01 00:00:00');
            
$sql_add    " WHERE DATE_FORMAT(n.add_date, '%y-%m') = DATE_FORMAT(FROM_UNIXTIME(".$timestamp."), '%y-%m')";
            
$sql_delim    ' AND';
            
$date_name  $args['year'].'-'.$args['month'].' ';
        }
        
        
$sql_count            "SELECT COUNT(*) AS total_articles
                               FROM #__news AS n"
.$sql_add.$sql_delim." n.status = '1'";
        
$total_articles        $this->db->get_field($sql_count'total_articles');
        
$this->db->debug();
        
$pagination            VPagination::get($page$total_articles3);
        
$sql                "SELECT n.news_id, n.user_id, n.title, n.slug, n.content,
                                      n.add_date, n.total_views, u.username
                               FROM #__news AS n
                               INNER JOIN #__user AS u ON (u.user_id = n.user_id)
                               "
.$sql_add.$sql_delim." n.status = '1'
                               ORDER BY n.add_date DESC
                               LIMIT "
.$pagination['limit'];
        
$articles            $this->db->get_rows($sql);
        
        
$page_name          = ($page 1)? ' - '.__('page').' '.$page '';

        
$this->tpl->menu        'news';

        
$this->tpl->meta_title   $date_name.__('news').$page_name.' - '.$this->mcfg['site_name'];
        
$this->tpl->meta_desc    $date_name.__('news').$page_name.'. '.$this->mcfg['meta_desc'];

        
$this->tpl->year           = (isset($args['year'])) ? $args['year'].'/' '';
        
$this->tpl->month         = (isset($args['month'])) ? $args['month'].'/' '';
        
$this->tpl->dates          $this->get_archive();

        
$this->tpl->canonical   BASE_URL.'/'.$url;

        
$this->tpl->articles    $articles;
        
$this->tpl->pagination  $pagination;

        
$this->tpl->load(array('header''news_browse''footer'));
        
$this->tpl->display();
    }
    
    private function 
get_args($query)
    {
        
$year    NULL;
        
$month    NULL;
        
$page    NULL;
        
        
$arg    = (isset($query['0'])) ? (int) $query['0'] : NULL;
        if (isset(
$arg)) {
            if (
strlen($arg) === 4) {
                
$year    $arg;
            } else {
                
$page    $arg;
            }
            
            
array_shift($query);
            
            
$arg = (isset($query['0'])) ? (int) $query['0'] : NULL;
            if (isset(
$arg)) {
                if (
strlen($arg) === 2) {
                    
$month $arg;
                }
                
                
array_shift($query);
                
                
$arg     = (isset($query['0']) && is_numeric($query['0'])) ? (int) $query['0'] : NULL;
                
$page    $arg;
            }
        }
        
        return array(
            
'year'    => $year,
            
'month'    => $month,
            
'page'    => $page
        
);
    }
}
Онлайн: 1
Реклама