Вход Регистрация
Файл: modules/search/videos.php
Строк: 231
<?php
defined
('_VALID') or die('Restricted Access!');

if ( 
$config['video_module'] == '0' ) {
    
VRedirect::go($config['BASE_URL']. '/notfound/page_invalid');
}

$slug get_request_arg($search_query'STRING');
if (
$slug != '') {
    
$sql            "SELECT CHID FROM channel WHERE slug = '".$slug."' LIMIT 1";
    
$rs             $conn->execute($sql);
    if (
$conn->Affected_Rows()) {
        
$cat_id         $rs->fields['CHID'];
    }
} else {
    
$cat_id NULL;
}

if (
$cat_id) {
    
$category  $cat_id;
} else {
    
$category       = ( isset($_GET['c']) ) ? intval($_GET['c']) : 0;
}

$orders         = array('bw''mr''mv''tr''md''tf''lg');
$order          = ( isset($_GET['o']) && in_array($_GET['o'], $orders) ) ? $_GET['o'] : 'mr';
$timeframes     = array('t''w''m''a');
$timeframe      = ( isset($_GET['t']) && in_array($_GET['t'], $timeframes) ) ? $_GET['t'] : 'a';
$rating         = ( isset($_GET['r']) ) ? floatval($_GET['r']) : NULL;
$min_length     = ( isset($_GET['min_length']) && is_numeric($_GET['min_length']) ) ? intval($_GET['min_length']) : NULL;
$max_length     = ( isset($_GET['max_length']) && is_numeric($_GET['max_length']) ) ? intval($_GET['max_length']) : NULL;
$type            = ( isset($_GET['type']) && ($_GET['type'] == 'private' or $_GET['type'] == 'public' or $_GET['type'] == 'featured') ) ? $_GET['type'] : $type;
$quality         = ( isset($_GET['q']) && ($_GET['q'] == 'all' or $_GET['q'] == 'hd' ) ) ? $_GET['q'] : $quality;
$sql_add        NULL;
$sql_add_count  NULL;

if ( 
$type == 'featured' ) {
    
$sql_add        .= " AND featured = 'yes'";
    
$sql_add_count  .= " AND featured = 'yes'";
} elseif ( 
$type ) {
    
$sql_add        .= " AND type = '" .$type"'";
    
$sql_add_count  .= " AND type = '" .$type"'";
}

if ( 
$quality == 'hd' ) {
    
$sql_add        " AND hd = '1'";
    
$sql_add_count  " AND hd = '1'";
}

if ( 
$category ) {
    
$sql_add        .= " AND channel = " .$category;
    
$sql_add_count  .= " AND channel = " .$category;
}

if ( 
$rating ) {
    
$sql_add        .= " AND rate >= " .$rating;
    
$sql_add_count  .= " AND rate >= " .$rating;
}

if ( 
$min_length ) {
    
$min_length_s       = ( $min_length == '1' ) ? 3600 $min_length*60;
    
$sql_add           .= " AND duration > " .$min_length_s;
    
$sql_add_count     .= " AND duration > " .$min_length_s;
}

if ( 
$max_length ) {
    
$max_length_s       = ( $max_length == '1' ) ? 3600 $max_length*60;
    
$sql_add           .= " AND duration < " .$max_length_s;
    
$sql_add_count     .= " AND duration < " .$max_length_s;
}

switch ( 
$timeframe ) {
    case 
't':
        
$sql_add        .= " AND DATE_FORMAT(adddate, '%y-%m-%d') = DATE_FORMAT(NOW(), '%y-%m-%d')";
        
$sql_add_count  .= " AND DATE_FORMAT(adddate, '%y-%m-%d') = DATE_FORMAT(NOW(), '%y-%m-%d')";
        break;
    case 
'w':
        
$sql_add        .= " AND DATE_FORMAT(adddate, '%y-%u') = DATE_FORMAT(NOW(), '%y-%u')";
        
$sql_add_count  .= " AND DATE_FORMAT(adddate, '%y-%u') = DATE_FORMAT(NOW(), '%y-%u')";
        break;
    case 
'm':
        
$sql_add        .= " AND DATE_FORMAT(adddate, '%y') = DATE_FORMAT(NOW(), '%y')";
        
$sql_add_count  .= " AND DATE_FORMAT(adddate, '%y') = DATE_FORMAT(NOW(), '%y')";
        break;
}

if ( 
$search_query ) {    
    
$sql_add        .= " AND ( title LIKE '%" .trim($conn->qStr($search_query_f), "'"). "%' OR keyword LIKE '%" .trim($conn->qStr($search_query_f), "'"). "%' )";
    
$sql_add_count  .= " AND ( title LIKE '%" .trim($conn->qStr($search_query_f), "'"). "%' OR keyword LIKE '%" .trim($conn->qStr($search_query_f), "'"). "%' )";
}

switch ( 
$order ) {
    case 
'br':
        
$sql_add .= " ORDER BY viewtime DESC";
        break;
    case 
'mr':
        
$sql_add .= " ORDER BY addtime DESC";
        break;
    case 
'mv':
        
$sql_add .= " ORDER BY viewnumber DESC";
        break;
    case 
'tr':
        
$sql_add .= " ORDER BY (ratedby*rate) DESC";
        break;
    case 
'md':
        
$sql_add .= " ORDER BY com_num DESC";
        break;
    case 
'tf':
        
$sql_add .= " ORDER BY fav_num DESC";
        break;        
    case 
'lg':
        
$sql_add .= " ORDER BY duration DESC";
        break;
}

$sql            "SELECT count(VID) AS total_videos FROM video WHERE active = '1'"$sql_add_count;
$rsc            $conn->execute($sql);
$total          $rsc->fields['total_videos'];
$pagination     = new Pagination($config['videos_per_page']);
$limit          $pagination->getLimit($total);
$sql            "SELECT * FROM video WHERE active = '1'"$sql_add" LIMIT " .$limit;
$rs             $conn->execute($sql);
$videos         $rs->getrows();

if (
$slug) {
    
$page_link      $pagination->getPagination('search/videos/'.$search_query.'/'.$slug);
    
$smarty->assign('base''search/videos/'.$search_query.'/'.$slug);    
} else {
    
$page_link      $pagination->getPagination('search/videos/'.$search_query);
    
$smarty->assign('base''search/videos/'.$search_query);        
}

$start_num      $pagination->getStartItem();
$end_num        $pagination->getEndItem();

//SS
if ($total && strlen($search_query_f) > 2) {
    
$aexpression sortstring($search_query_f);
    if (
suggestionValidate($aexpression)) {
        
$sql "SELECT `id` FROM `suggestion` WHERE `aexpression` = ".$conn->qStr($aexpression)." LIMIT 1";
        
$conn->execute($sql);
        if (
$conn->Affected_Rows()) {
            
$sql "UPDATE `suggestion` SET `total` = ".$conn->qStr($total)." WHERE `aexpression` = ".$conn->qStr($aexpression)." LIMIT 1";
            
$conn->execute($sql);
        } else {
            
$sql "INSERT INTO `suggestion` SET `expression` = ".$conn->qStr($search_query_f).", `aexpression` = ".$conn->qStr($aexpression).", `total` = ".$conn->qStr($total)."";
            
$conn->execute($sql);        
        }
    }
}

function 
sortstring($string,$unique false) {
  
$string str_replace('.'''$string);
  
$array explode(' ',strtolower($string)); 
  if (
$unique$array array_unique($array);
  
sort($array);
  return 
implode(' ',$array);  
}

function 
suggestionValidate ($string) {
  global 
$conn;
  
$string str_replace('.'''$string);
  
$array explode(' ',strtolower($string)); 
  if (
$unique$array array_unique($array);
  
sort($array);
  foreach (
$array as $v) {
      
$sql "SELECT id FROM tags WHERE LOWER( tag ) = " .$conn->qStr(strtolower($v))." LIMIT 1";
      
$conn->execute($sql);
      if (!
$conn->Affected_Rows()) {      
        return 
false;
      }      
  }
  return 
true;
}

$sql "SELECT `expression` FROM `suggestion` WHERE concat(' ', `expression`, ' ') LIKE '% " .trim($conn->qStr($search_query_f), "'"). " %' AND `expression` != ".$conn->qStr($search_query_f)." ORDER BY `total` DESC LIMIT 16";
$rs $conn->execute($sql);
$related_searches $rs->getrows();
foreach (
$related_searches as $k => $v) {
    
$v['expression'] = strtolower($v['expression']);
    
$related_searches[$k]['sq'] = str_replace(' ''-'$v['expression']);
    
$related_searches[$k]['sq_f'] = str_replace($search_query_f'<b>'.$search_query_f.'</b>'$v['expression']);
}
$smarty->assign('related_searches'$related_searches);
//SS

$smarty->assign('category'$category);
$smarty->assign('categories'get_categories());
$smarty->assign('timeframe'$timeframe);
$smarty->assign('type'$type);
$smarty->assign('quality'$quality);
$smarty->assign('order'$order);
$smarty->assign('min_length'$min_length);
$smarty->assign('max_length'$max_length);
$smarty->assign('rating'$rating);
$smarty->assign('videos'$videos);
$smarty->assign('videos_total'$total);
$smarty->assign('start_num'$start_num);
$smarty->assign('end_num'$end_num);
$smarty->assign('page_link'$page_link);
?>
Онлайн: 1
Реклама