Вход Регистрация
Файл: 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_articles, 3);
        
$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
        
);
    }
}
Онлайн: 2
Реклама