Файл: adultscript-2.0.3-pro/files/modules/pornstar/pornstar.php
Строк: 82
<?php
defined('_VALID') or die('Restricted Access!');
class VModule_pornstar
{
protected $db;
protected $tpl;
protected $cache;
public function __construct()
{
$this->db = VF::factory('database');
$this->tpl = VF::factory('template');
$this->cache = VF::factory('cache');
}
public function render()
{
$segment = VUri::request(1);
$components = array('rss' => 1, 'search' => 1, 'letter' => 1);
$orders = array('recent' => 1, 'popular' => 1, 'favorites' => 1, 'rated' => 1, 'name' => 1, 'discussed' => 1);
if (isset($components[$segment])) {
$component = $components[$segment];
} else {
if (isset($orders[$segment]) or strlen($segment) === 1 or $segment == '') {
$component = 'browse';
} else {
$component = 'view';
}
}
if ($component == 'view') {
$type = VUri::request(2);
if ($type == 'videos') {
VF::redirect(str_replace('/videos', '', CUR_URL), 301);
}
if ($type == 'comments' or $type == 'albums') {
$component = $type;
}
}
$component_class = 'VComponent_pornstar_'.$component;
try {
require MODULES_DIR.'/pornstar/components/'.$component.'.php';
$obj = new $component_class();
$obj->render();
} catch (Exception $e) {
throw new VException($e);
}
}
protected function get_query()
{
$options = array(
'order' => 'recent',
'letter' => 'all',
'page' => 1,
'clean' => false
);
$query = array_slice(VUri::query(), 1);
$orders = array('recent' => 1, 'popular' => 1, 'favorites' => 1, 'rated' => 1, 'name' => 1, 'discussed' => 1);
$letters = range('a', 'z');
$arg = (isset($query['0']) && $query['0'] != '') ? $query['0'] : null;
if (isset($arg) && strlen($arg) === 1 && ctype_alpha($arg)) {
$options['letter'] = $arg;
array_shift($query);
}
$arg = (isset($query['0']) && $query['0'] != '') ? $query['0'] : null;
if (isset($arg)) {
if (isset($orders[$arg])) {
$options['order'] = $arg;
array_shift($query);
} elseif (ctype_digit($arg)) {
$options['page'] = (int) $arg;
} else {
VModule::load('404', true);
}
}
$arg = (isset($query['0']) && $query['0'] != '') ? $query['0'] : null;
if (isset($arg)) {
if (ctype_digit($arg)) {
$options['page'] = (int) $arg;
} else {
VModule::load('404', true);
}
} else {
$options['clean'] = true;
}
if ($options['page'] === 0) {
VModule::load('404', true);
}
return $options;
}
}
function build_url($order = '', $letter = '', $page = 1)
{
$url = RELATIVE_URL.'/pornstar/';
if ($letter != '' && $letter != 'all') {
$url .= $letter.'/';
}
if ($order != '') {
if ($page > 1 or $order != 'recent') {
$url .= $order.'/';
}
}
if ($page === true) {
$url .= '#PAGE#/';
} elseif ($page !== 1) {
$url .= $page.'/';
}
return $url;
}