Файл: adultscript-2.0.3-pro/files/mobile/components/photo.php
Строк: 99
<?php
class VComponent_mobile_photo extends VMobile
{
public function __construct()
{
parent::__construct();
}
public function render()
{
if (!VModule::enabled('photo')) {
$this->notfound();
}
$segment = VUri::request(1);
$components = array('tag' => 1, 'rss' => 1, 'search' => 1, 'upload' => 1, 'edit' => 1, 'add' => 1);
$orders = array('recent' => 1, 'popular' => 1, 'rated' => 1, 'discussed' => 1, 'favorited' => 1);
if (!$segment) {
$component = 'browse';
} elseif (isset($components[$segment])) {
$component = $segment;
} else {
if (ctype_digit($segment)) {
if (VUri::request(2) != '') {
if (VUri::request(3) != '' && VUri::request(3) == 'slideshow') {
$component = 'slideshow';
} else {
$component = 'album';
}
} else {
$component = 'view';
}
} else {
$component = (isset($orders[$segment])) ? 'browse' : 'category';
}
}
$component_class = 'VComponent_mobile_photo_'.$component;
try {
require BASE_DIR.'/mobile/components/photo_'.$component.'.php';
$obj = new $component_class();
$obj->render();
} catch (Exception $e) {
throw new VException($e);
}
}
protected function get_query($slug=FALSE, $start=0)
{
$options = array(
'slug' => '',
'order' => 'recent',
'timeline' => NULL,
'page' => 1
);
$orders = array('recent' => 1, 'popular' => 1, 'rated' => 1, 'discussed' => 1, 'favorited' => 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 {
$this->notfound();
}
}
$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 {
$this->notfound();
}
}
}
}
if (isset($query['0']) && is_numeric($query['0'])) {
$options['page'] = (int) $query['0'];
}
if ($options['page'] === 0) {
$this->notfound();
}
return $options;
}
}
function build_url($order='', $timeline='', $slug='', $page=1, $pagination=false)
{
$url = MOBILE_REL.'/photo/';
if ($slug != '') {
$url .= $slug.'/';
}
if ($order != '') {
$url .= $order.'/';
}
if ($timeline != '') {
$url .= $timeline.'/';
}
if ($page === true) {
$url .= '#PAGE#/';
} elseif ($page !== 1) {
$url .= $page.'/';
}
return $url;
}
function build_rss_url($order='', $timeline='', $slug='')
{
$url = MOBILE_REL.'/photo/rss/';
if ($slug != '') {
$url .= $slug.'/';
}
if ($order != '') {
$url .= $order.'/';
}
if ($timeline != '') {
$url .= $timeline.'/';
}
return $url;
}