Файл: adultscript-2.0.3-pro/files/mobile/components/video_category.php
Строк: 93
<?php
defined('_VALID') or die('Restricted Access!');
class VComponent_mobile_video_category extends VComponent_mobile_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' && $page === 1 && !$timeline) {
if (MOBILE_CUR == BASE_URL.'/'.$slug) {
VF::redirect(MOBILE_URL.'/'.$slug.'/', '301');
} elseif (MOBILE_CUR == MOBILE_URL.'/'.$slug.'/recent') {
VF::redirect(MOBILE_URL.'/'.$slug.'/recent/', '301');
}
} else {
if ($order) {
$url .= $order.'/';
}
if ($timeline) {
$url .= $timeline.'/';
}
if ($page > 1) {
$url .= $page.'/';
}
if (!VUri::match($url)) {
$this->notfound();
}
}
$this->db->query("SELECT c.cat_id, c.name, c.slug, c.description,
c.meta_title, c.meta_desc, c.meta_keys
FROM #__video_categories AS c
WHERE c.slug = '".$this->db->escape($slug)."'
AND c.status = '1'
LIMIT 1");
if (!$this->db->affected_rows()) {
$this->notfound();
}
$category = $this->db->fetch_assoc();
$cat_id = (int) $category['cat_id'];
$sql = "SELECT v.video_id, v.title, v.slug, v.description, v.thumb, v.rating, v.rated_by, v.total_views, v.duration
FROM #__video_category AS c
INNER JOIN #__video AS v ON (v.video_id = c.video_id AND v.status = 1 AND v.mobile = '1')
WHERE c.cat_id = ".$cat_id;
$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 AND v.mobile = '1')
WHERE c.cat_id = ".$cat_id;
$time_name = null;
if ($timeline) {
switch ($timeline) {
case 'today':
$sql .= " AND DATE_FORMAT(v.add_date, '%y-%m-%d') = DATE_FORMAT(NOW(), '%y-%m-%d')";
$sql_count .= " AND DATE_FORMAT(v.add_date, '%y-%m-%d') = DATE_FORMAT(NOW(), '%y-%m-%d')";
$time_name = __('todays').' ';
break;
case 'yesterday':
$sql .= " AND DATE_FORMAT(v.add_date, '%y-%m-%d') = DATE_ADD(CURDATE(), INTERVAL -1 DAY)";
$sql_count .= " AND DATE_FORMAT(v.add_date, '%y-%m-%d') = DATE_ADD(CURDATE(), INTERVAL -1 DAY)";
$time_name = __('yesterdays').' ';
break;
case 'week':
$time_name = __('this-weeks').' ';
break;
case 'month':
$sql .= " AND DATE_FORMAT(v.add_date, '%y-%m') = DATE_FORMAT(NOW(), '%y-%m')";
$sql_count .= " AND DATE_FORMAT(v.add_date, '%y-%m') = DATE_FORMAT(NOW(), '%y-%m')";
$time_name = __('this-months').' ';
break;
case 'year':
$sql .= " AND DATE_FORMAT(v.add_date, '%y') = DATE_FORMAT(NOW(), '%y')";
$sql_count .= " AND DATE_FORMAT(v.add_date, '%y') = DATE_FORMAT(NOW(), '%y')";
$time_name = __('this-years').' ';
break;
}
}
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;
default:
$this->notfound();
}
$total_videos = $this->db->get_field($sql_count, 'total_videos');
$pagination = VPagination::get($page, $total_videos, $this->mcfg['videos_per_page']);
$videos = $this->db->get_rows($sql." LIMIT ".$pagination['limit']);
$page_add = ($page > 1) ? ' - '.__('page').' '.$page : '';
$this->tpl->menu = 'video';
$this->tpl->title = __('browse-title', array($order_name.' '.$category['name'], $page_add));
$this->tpl->meta_title = ($category['meta_title'])
? $category['meta_title']
: __('browse-meta-title', array($order_name.' '.$category['name'], $page_add, $this->mcfg['site_name']));
$this->tpl->meta_desc = ($category['meta_desc'])
? $category['meta_desc']
: __('browse-meta-desc', array($order_name.' '.$category['name'], $page_add, $this->mcfg['meta_desc']));
$this->tpl->meta_keys = ($category['meta_keys'])
? $category['meta_keys']
: strtolower($category['name']).', '.$this->mcfg['meta_keys'];
$this->tpl->canonical = BASE_URL.'/'.$url;
$this->tpl->slug = $slug;
$this->tpl->order = $order;
$this->tpl->timeline = $timeline;
$this->tpl->page = $page;
$this->tpl->category = $category;
$this->tpl->videos = $videos;
$this->tpl->pagination = $pagination;
$this->tpl->load(array('header', 'video_browse', 'footer'));
$this->tpl->display();
}
}