Файл: adultscript-2.0.3-pro/files/modules/pornstar/components/search.php
Строк: 65
<?php
defined('_VALID') or die('Restricted Access!');
defined('_SEARCH') or die('Restricted Access!');
define('SEARCH_TYPE', 'simple');
class VComponent_pornstar_search extends VModule_pornstar
{
public function __construct()
{
parent::__construct();
}
public function render()
{
$request = VUri::query();
if (isset($request['2']) && $request['2']) {
VF::redirect(BASE_URL.'/search/pornstar/?s='.str_replace('-', '+', $request['2']), 301);
}
$filter = VF::factory('filter');
$query = (isset($_GET['s'])) ? $filter->clean(trim($_GET['s'])) : null;
$page = (isset($_GET['page'])) ? (int) trim($_GET['page']) : 1;
$orders = array(
'recent' => __('recent'),
'popular' => __('popular'),
'rated' => __('rated'),
'subscribed' => __('subscribed'),
'videos' => __('videos')
);
$order = (isset($_GET['o']) && isset($orders[trim($_GET['o'])])) ? trim($_GET['o']) : 'recent';
if ($order == 'recent') {
$sort = 'model_id';
} elseif ($order == 'popular') {
$sort = 'total_views';
} elseif ($order == 'rated') {
$sort = 'likes';
} elseif ($order == 'subscribed') {
$sort = 'total_subscribers';
} elseif ($order == 'videos') {
$sort = 'total_videos';
}
VLanguage::load('frontend.pornstar');
$search = $this->db->escape(str_replace('-', ' ', $query));
if (SEARCH_TYPE == 'simple') {
$sql_count = "SELECT COUNT(*) AS total_models
FROM #__model
WHERE name LIKE '%".$search."%'
AND status = '1'";
$sql = "SELECT model_id, name, slug, ext, likes, rated_by, total_videos, total_albums, total_views
FROM #__model
WHERE name LIKE '%".$search."%'
AND status = '1'
ORDER BY ".$sort." DESC";
} else {
$sql_count = "SELECT COUNT(MATCH(name) AGAINST ('".$search."')) AS total_models
FROM #__model
WHERE MATCH(name) AGAINST ('".$search."')
AND status = '1'";
$sql = "SELECT model_id, name, slug, ext, likes, rated_by, total_videos, total_albums, total_views
FROM #__model
WHERE MATCH(name) AGAINST ('".$search."')
AND status = '1'
ORDER BY ".$sort." DESC";
}
$total_models = $this->db->get_field($sql_count, 'total_models');
$pagination = VPagination::get($page, $total_models, VCfg::get('pornstar.models_per_page'));
$sql = $sql.' LIMIT '.$pagination['limit'];
if (!$models = $this->cache->get($sql, 3600)) {
$models = $this->db->get_rows($sql);
if ($models) {
$this->cache->store($sql, $models, 3600);
}
}
$order_name = $orders[$order].' ';
$page_add = ($page > 1) ? ' - '.__('page').' '.$page : '';
$this->tpl->menu = 'pornstar';
$this->tpl->title = ($query) ? $order_name.__('model-results').': "'.$query.'"' : null;
$this->tpl->meta_title = __('search-meta-title', array($order_name, $query.$page_add, VF::cfg_item('site_name')));
$this->tpl->css = array(TPL_REL.'/css/style_model.css');
$url = '/search/pornstar/?s='.$query;
if ($order !== 'recent' or ($order == 'recent' && $page > 1)) {
$url .= '&o='.$order;
}
if ($page > 1) {
$url .= '&page='.$page;
}
$this->tpl->canonical = BASE_URL.'/'.$url;
$this->tpl->canonicalm = MOBILE_URL.'/'.$url;
$this->tpl->page = $page;
$this->tpl->query = $query;
$this->tpl->order = $order;
$this->tpl->models = $models;
$this->tpl->pagination = $pagination;
VHelper::load('module.video.category');
$this->tpl->categories = VHelper_video_category::categories();
$this->tpl->load(array('header', 'pornstar_search', 'footer'));
$this->tpl->display();
}
}