Файл: 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
);
}
}