Файл: adultscript-2.0.3-pro/files/modules/video/video.php
Строк: 85
<?php
defined('_VALID') or die('Restricted Access!');
require 'functions/url.php';
class VModule_video
{
protected $db;
protected $cache;
protected $tpl;
public function __construct()
{
$this->db = VF::factory('database');
$this->cache = VF::factory('cache');
$this->tpl = VF::factory('template');
}
public function render()
{
$component = VUri::request(0);
//temporary fix for the /video/tag/bug/
if ($component == 'video') {
if (VUri::request(1) == 'tag') {
$tag = str_replace(' ', '-', htmlspecialchars(VUri::request(2)));
if ($tag != '') {
VF::redirect(BASE_URL.'/tag/'.$tag.'/', 301);
}
}
}
$components = array('tag' => 1, 'rss' => 1, 'search' => 1, 'upload' => 1, 'edit' => 1, 'download' => 1, 'related' => 1, 'playlist' => 1, 'playlists' => 1);
$orders = array('recent' => 1, 'popular' => 1, 'discussed' => 1, 'rated' => 1, 'downloaded' => 1, 'longest' => 1, 'watched' => 1);
if (!isset($components[$component])) {
if (is_numeric($component)) {
$component = 'view';
} else {
if (isset($orders[$component])) {
$component = 'browse';
} else {
$component = 'category';
}
}
}
$component_class = 'VComponent_video_'.$component;
try {
require MODULES_DIR.'/video/components/'.$component.'.php';
$obj = new $component_class();
$obj->render();
} catch (Exception $e) {
throw new VException($e);
}
}
protected function get_video_categories()
{
if (!$categories = $this->cache->get('categories', 86400)) {
$this->db->query("SELECT cat_id, parent_id, name, slug, description, total_videos,
title, meta_title, meta_desc, meta_keys
FROM #__video_categories
WHERE status = '1'
ORDER BY slug, parent_id ASC");
if ($this->db->affected_rows()) {
$categories = $this->db->fetch_rows();
if (VCfg::get('video.subcategories') == '1') {
$categories = VArray::tree($categories);
}
$this->cache->store('categories', $categories, 86400);
}
}
return $categories;
}
protected function get_query($slug=FALSE, $start=0)
{
$options = array(
'slug' => '',
'order' => 'recent',
'timeline' => NULL,
'page' => 1
);
$orders = array('recent' => 2, 'popular' => 1, 'rated' => 1, 'discussed' => 1, 'downloaded' => 1, 'longest' => 1, 'watched' => 1);
$timelines = array('today' => 1, 'yesterday' => 1, 'week' => 1, 'month' => 1, 'year' => 1);
$query = VUri::query();
if ($start !== 0) {
$query = array_slice($query, $start);
}
if ($slug !== FALSE) {
if (isset($query['0']) && $query['0'] != '') {
if (!isset($orders[$query['0']])) {
$options['slug'] = $query['0'];
array_shift($query);
}
}
}
$arg = (isset($query['0']) && $query['0'] != '') ? $query['0'] : NULL;
if (isset($arg)) {
if (isset($orders[$arg])) {
$options['order'] = $arg;
$type = $orders[$arg];
array_shift($query);
} else {
VModule::load('404', true);
}
}
$arg = (isset($query['0']) && $query['0'] != '') ? $query['0'] : NULL;
if (isset($arg)) {
if ($type === 2) {
$options['page'] = (int) $arg;
} else {
if (is_numeric($arg)) {
$options['page'] = (int) $arg;
} else {
if (isset($timelines[$arg])) {
$options['timeline'] = $arg;
array_shift($query);
} else {
VModule::load('404', true);
}
}
}
}
if (isset($query['0']) && is_numeric($query['0'])) {
$options['page'] = (int) $query['0'];
}
if ($options['page'] === 0) {
VModule::load('404', true);
}
return $options;
}
}