Вход Регистрация
Файл: system/modules/search.php
Строк: 507
<?php
/* 
    Appointment: Поиск
    File: search.php 
 
*/
if(!defined('MOZG')){
    die(
'Hacking attempt!');
}
if(
$ajax == 'yes')
    
NoAjaxQuery();

if(
$logged){
    
$metatags['title'] = $lang['search'];
    
$_SERVER['QUERY_STRING'] = strip_tags($_SERVER['QUERY_STRING']);
    
$query_string preg_replace("/&page=[0-9]+/i"''$_SERVER['QUERY_STRING']);
    
$user_id $user_info['user_id'];

    if(
$_GET['page'] > 0$page intval($_GET['page']); else $page 1;
    
$gcount 20;
    
$limit_page =($page-1)*$gcount;

    
$query $db->safesql(ajax_utf8(strip_data(urldecode($_GET['query']))));
    if(
$_GET['n']) $query $db->safesql(strip_data(urldecode($_GET['query'])));
    
$query strtr($query, array(' ' => '%')); //Замеянем пробелы на проценты чтоб тоиск был точнее
    
    
$type intval($_GET['type']) ? intval($_GET['type']) : 1;
    
$sex intval($_GET['sex']);
    
$day intval($_GET['day']);
    
$month intval($_GET['month']);
    
$year intval($_GET['year']);
    
$country intval($_GET['country']);
    
$city intval($_GET['city']);
    
$online intval($_GET['online']);
    
$user_photo intval($_GET['user_photo']);
    
$sp intval($_GET['sp']);
    
    
//Задаём параметры сортировки
    
if($sex$sql_sort .= "AND user_sex = '{$sex}'";
    if(
$day$sql_sort .= "AND user_day = '{$day}'";
    if(
$month$sql_sort .= "AND user_month = '{$month}'";
    if(
$year$sql_sort .= "AND user_year = '{$year}'";
    if(
$country$sql_sort .= "AND user_country = '{$country}'";
    if(
$city$sql_sort .= "AND user_city = '{$city}'";
    if(
$online$sql_sort .= "AND user_last_visit >= '{$online_time}'";
    if(
$user_photo$sql_sort .= "AND user_photo != ''";
    if(
$sp$sql_sort .= "AND SUBSTRING(user_sp, 1, 1) regexp '[[:<:]]({$sp})[[:>:]]'";

    
//Делаем SQL Запрос в БД на вывод данных
    
if($type == 1){ //Если критерий поиск "по людям"
        
$sql_query "SELECT SQL_CALC_FOUND_ROWS user_id, user_search_pref, user_photo, user_birthday, user_country_city_name, user_last_visit FROM `".PREFIX."_users` WHERE user_search_pref LIKE '%{$query}%' {$sql_sort} ORDER by `user_reg_date` DESC LIMIT {$limit_page}{$gcount}";
        
$sql_count "SELECT COUNT(*) AS cnt FROM `".PREFIX."_users` WHERE user_search_pref LIKE '%{$query}%' {$sql_sort}";
    } elseif(
$type == AND $config['video_mod'] == 'yes' AND $config['video_mod_search'] == 'yes'){ //Если критерий поиск "по видеозаписям"
        
$sql_query "SELECT SQL_CALC_FOUND_ROWS id, photo, title, add_date, comm_num, owner_user_id FROM `".PREFIX."_videos` WHERE title LIKE '%{$query}%' AND privacy = 1 ORDER by `add_date` DESC LIMIT {$limit_page}{$gcount}";
        
$sql_count "SELECT COUNT(*) AS cnt FROM `".PREFIX."_videos` WHERE title LIKE '%{$query}%' AND privacy = 1";
    } elseif(
$type == 3){ //Если критерий поиск "по заметкам"
        
$sql_query "SELECT SQL_CALC_FOUND_ROWS ".PREFIX."_notes.id, title, full_text, owner_user_id, date, comm_num, ".PREFIX."_users.user_photo, user_search_pref FROM ".PREFIX."_notes LEFT JOIN ".PREFIX."_users ON ".PREFIX."_notes.owner_user_id = ".PREFIX."_users.user_id WHERE title LIKE '%{$query}%' OR full_text LIKE '%{$query}%' ORDER by `date` DESC LIMIT {$limit_page}{$gcount}";
        
$sql_count "SELECT COUNT(*) AS cnt FROM `".PREFIX."_notes` WHERE title LIKE '%{$query}%' OR full_text LIKE '%{$query}%'";
    } elseif(
$type == 4){ //Если критерий поиск "по сообщества"
        
$sql_query "SELECT SQL_CALC_FOUND_ROWS id, title, photo, traf, adres FROM `".PREFIX."_communities` WHERE title LIKE '%{$query}%' ORDER by `traf` DESC, `photo` DESC LIMIT {$limit_page}{$gcount}";
        
$sql_count "SELECT COUNT(*) AS cnt FROM `".PREFIX."_communities` WHERE title LIKE '%{$query}%'";
    } elseif(
$type == AND $config['audio_mod'] == 'yes' AND $config['audio_mod_search'] == 'yes'){ //Если критерий поиск "по аудиозаписи"
        
$sql_query "SELECT SQL_CALC_FOUND_ROWS ".PREFIX."_audio.aid, url, artist, name, auser_id, ".PREFIX."_users.user_search_pref FROM ".PREFIX."_audio LEFT JOIN ".PREFIX."_users ON ".PREFIX."_audio.auser_id = ".PREFIX."_users.user_id WHERE MATCH (name, artist) AGAINST ('%{$query}%') OR artist LIKE '%{$query}%' OR name LIKE '%{$query}%' ORDER by `adate` DESC LIMIT {$limit_page}{$gcount}";
        
$sql_count "SELECT COUNT(*) AS cnt FROM `".PREFIX."_audio` WHERE MATCH (name, artist) AGAINST ('%{$query}%') OR artist LIKE '%{$query}%' OR name LIKE '%{$query}%'";
    } else {
        
$sql_query false;
        
$sql_count false;
    }
    
    if(
$sql_query)
        
$sql_ $db->super_query($sql_query1);
    
    
//Считаем кол-во ответов из БД
    
if($sql_count AND $sql_)
        
$count $db->super_query($sql_count);

    
//Head поиска
    
$tpl->load_template('search/head.tpl');
    if(
$query)
        
$tpl->set('{query}'stripslashes(stripslashes(strtr($query, array('%' => ' ')))));
    else
        
$tpl->set('{query}''Начните вводить любое слово или имя');
    
$_GET['query'] = $db->safesql(ajax_utf8(strip_data(urldecode($_GET['query']))));
    if(
$_GET['n']) $_GET['query'] = $db->safesql(strip_data(urldecode($_GET['query'])));
    
$tpl->set('{query-people}'str_replace(array('&type=2''&type=3''&type=4''&type=5'), '&type=1'$_SERVER['QUERY_STRING']));
    
$tpl->set('{query-videos}''&type=2&query='.$_GET['query']);
    
$tpl->set('{query-notes}''&type=3&query='.$_GET['query']);
    
$tpl->set('{query-groups}''&type=4&query='.$_GET['query']);
    
$tpl->set('{query-audios}''&type=5&query='.$_GET['query']);
    
    if(
$online$tpl->set('{checked-online}''online');
    else 
$tpl->set('{checked-online}''0');
        
    if(
$user_photo$tpl->set('{checked-user-photo}''user_photo');
    else 
$tpl->set('{checked-user-photo}''0');
    
    
$tpl->set("{activetab-{$type}}"'buttonsprofileSec');
    
$tpl->set("{type}"$type);
    
    
$tpl->set('{sex}'installationSelected($sex'<option value="1">Мужской</option><option value="2">Женский</option>'));
    
$tpl->set('{day}'installationSelected($day'<option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option>'));
    
$tpl->set('{month}'installationSelected($month'<option value="1">Января</option><option value="2">Февраля</option><option value="3">Марта</option><option value="4">Апреля</option><option value="5">Мая</option><option value="6">Июня</option><option value="7">Июля</option><option value="8">Августа</option><option value="9">Сентября</option><option value="10">Октября</option><option value="11">Ноября</option><option value="12">Декабря</option>'));
    
$tpl->set('{year}'installationSelected($year'<option value="1930">1930</option><option value="1931">1931</option><option value="1932">1932</option><option value="1933">1933</option><option value="1934">1934</option><option value="1935">1935</option><option value="1936">1936</option><option value="1937">1937</option><option value="1938">1938</option><option value="1939">1939</option><option value="1940">1940</option><option value="1941">1941</option><option value="1942">1942</option><option value="1943">1943</option><option value="1944">1944</option><option value="1945">1945</option><option value="1946">1946</option><option value="1947">1947</option><option value="1948">1948</option><option value="1949">1949</option><option value="1950">1950</option><option value="1951">1951</option><option value="1952">1952</option><option value="1953">1953</option><option value="1954">1954</option><option value="1955">1955</option><option value="1956">1956</option><option value="1957">1957</option><option value="1958">1958</option><option value="1959">1959</option><option value="1960">1960</option><option value="1961">1961</option><option value="1962">1962</option><option value="1963">1963</option><option value="1964">1964</option><option value="1965">1965</option><option value="1966">1966</option><option value="1967">1967</option><option value="1968">1968</option><option value="1969">1969</option><option value="1970">1970</option><option value="1971">1971</option><option value="1972">1972</option><option value="1973">1973</option><option value="1974">1974</option><option value="1975">1975</option><option value="1976">1976</option><option value="1977">1977</option><option value="1978">1978</option><option value="1979">1979</option><option value="1980">1980</option><option value="1981">1981</option><option value="1982">1982</option><option value="1983">1983</option><option value="1984">1984</option><option value="1985">1985</option><option value="1986">1986</option><option value="1987">1987</option><option value="1988">1988</option><option value="1989">1989</option><option value="1990">1990</option><option value="1991">1991</option><option value="1992">1992</option><option value="1993">1993</option><option value="1994">1994</option><option value="1995">1995</option><option value="1996">1996</option><option value="1997">1997</option><option value="1998">1998</option><option value="1999">1999</option><option value="2000">2000</option><option value="2001">2001</option><option value="2002">2002</option><option value="2003">2003</option><option value="2004">2004</option><option value="2005">2005</option><option value="2006">2006</option><option value="2007">2007</option>'));
            
    if(
$count['cnt']){
        
$tpl->set('[yes]''');
        
$tpl->set('[/yes]''');
        
        if(
$type == 1//Если критерий поиск "по людям"
            
$tpl->set('{count}'$count['cnt'].' '.gram_record($count['cnt'], 'fave'));
        elseif(
$type == AND $config['video_mod'] == 'yes'//Если критерий поиск "по видеозаписям"
            
$tpl->set('{count}'$count['cnt'].' '.gram_record($count['cnt'], 'videos'));
        elseif(
$type == 3//Если критерий поиск "по заметкам"
            
$tpl->set('{count}'$count['cnt'].' '.gram_record($count['cnt'], 'notes'));
        elseif(
$type == 4//Если критерий поиск "по сообществам"
            
$tpl->set('{count}'$count['cnt'].' '.gram_record($count['cnt'], 'se_groups'));
        elseif(
$type == 5//Если критерий поиск "по аудиозаписям"
            
$tpl->set('{count}'$count['cnt'].' '.gram_record($count['cnt'], 'audio'));
    } else 
        
$tpl->set_block("'\[yes\](.*?)\[/yes\]'si","");

    if(
$type == 1){
        
$tpl->set('[search-tab]''');
        
$tpl->set('[/search-tab]''');
    } else
        
$tpl->set_block("'\[search-tab\](.*?)\[/search-tab\]'si","");
    
    
//################## Загружаем Страны ##################//
    
$sql_country $db->super_query("SELECT SQL_CALC_FOUND_ROWS * FROM `".PREFIX."_country` ORDER by `name` ASC"true"country"true);
    foreach(
$sql_country as $row_country)
        
$all_country .= '<option value="'.$row_country['id'].'">'.stripslashes($row_country['name']).'</option>';
            
    
$tpl->set('{country}'installationSelected($country$all_country));
    
    
//################## Загружаем Города ##################//
    
if($type == 1){
        
$sql_city $db->super_query("SELECT SQL_CALC_FOUND_ROWS id, name FROM `".PREFIX."_city` WHERE id_country = '{$country}' ORDER by `name` ASC"true"country_city_".$countrytrue);
        foreach(
$sql_city as $row2
            
$all_city .= '<option value="'.$row2['id'].'">'.stripslashes($row2['name']).'</option>';

        
$tpl->set('{city}'installationSelected($city$all_city));
    }
    
    
$tpl->compile('info');
    
    
//Загружаем шаблон на вывод если он есть одного юзера и выводим
    
if($sql_){
    
        
//Если критерий поиск "по людям"
        
if($type == 1){
            
$tpl->load_template('search/result_people.tpl');
            foreach(
$sql_ as $row){
                
$tpl->set('{user-id}'$row['user_id']);
                
$tpl->set('{name}'$row['user_search_pref']);
                if(
$row['user_photo']) 
                    
$tpl->set('{ava}'$config['home_url'].'uploads/users/'.$row['user_id'].'/100_'.$row['user_photo']);
                else 
                    
$tpl->set('{ava}''{theme}/images/100_no_ava.png');
         
$tpl->set('{big-ava}'$row['user_photo']); 
                
//Возраст юзера
                
$user_birthday explode('-'$row['user_birthday']);
                
$tpl->set('{age}'user_age($user_birthday[0], $user_birthday[1], $user_birthday[2]));
                
                
$user_country_city_name explode('|'$row['user_country_city_name']);
                
$tpl->set('{country}'$user_country_city_name[0]);
                if(
$user_country_city_name[1])
                    
$tpl->set('{city}'', '.$user_country_city_name[1]);
                else
                    
$tpl->set('{city}''');
                    
                if(
$row['user_id'] != $user_id){
                    
$tpl->set('[owner]''');
                    
$tpl->set('[/owner]''');
                } else
                    
$tpl->set_block("'\[owner\](.*?)\[/owner\]'si","");
                
                if(
$row['user_last_visit'] >= $online_time)
                    
$tpl->set('{online}'$lang['online']);
                else
                    
$tpl->set('{online}''');
                
                
//Проверка естьли запрашиваемый юзер в друзьях у юзера который смотрит стр
                
$check_friend $db->super_query("SELECT user_id FROM `".PREFIX."_friends` WHERE user_id = '{$user_info['user_id']}' AND friend_id = '{$row['user_id']}'");
                if(
$check_friend)
                    
$tpl->set_block("'\[no-friends\](.*?)\[/no-friends\]'si","");
                else {
                    
$tpl->set('[no-friends]''');
                    
$tpl->set('[/no-friends]''');
                }
                
$tpl->compile('content');
            }

        
//Если критерий поиск "по видеозаписям"
        
} elseif($type == 2){
            
$tpl->load_template('search/result_video.tpl');
            foreach(
$sql_ as $row){
                
$tpl->set('{photo}'$row['photo']);
                
$tpl->set('{title}'stripslashes($row['title']));
                
$tpl->set('{user-id}'$row['owner_user_id']);
                
$tpl->set('{id}'$row['id']);
                
$tpl->set('{close-link}''/index.php?'.$query_string.'&page='.$page);
                
$tpl->set('{comm}'$row['comm_num'].' '.gram_record($row['comm_num'], 'comments'));
                
megaDate(strtotime($row['add_date']), 11);
                
$tpl->compile('content');
            }
            
        
//Если критерий поиск "по заметкам"
        
} elseif($type == 3){
            
$tpl->load_template('search/result_note.tpl');
            foreach(
$sql_ as $row){
                if(
$row['user_photo'])
                    
$tpl->set('{ava}'$config['home_url'].'uploads/users/'.$row['owner_user_id'].'/50_'.$row['user_photo']);
                else
                    
$tpl->set('{ava}''{theme}/images/no_ava_50.png');
                
                
$tpl->set('{user-id}'$row['owner_user_id']);
                
$tpl->set('{short-text}'stripslashes(strip_tags(substr($row['full_text'], 0200))).'...');
                
$tpl->set('{title}'stripslashes($row['title']));
                
$tpl->set('{name}'$row['user_search_pref']);
                
$tpl->set('{note-id}'$row['id']);
                
megaDate(strtotime($row['date']), 11);
                if(
$row['comm_num'])
                    
$tpl->set('{comm-num}'$row['comm_num'].' '.gram_record($row['comm_num'], 'comments'));
                else
                    
$tpl->set('{comm-num}'$lang['note_no_comments']);
                
$tpl->compile('content');
            }

        
//Если критерий поиск "по сообещствам"
        
} elseif($type == 4){
            
$tpl->load_template('search/result_groups.tpl');
            foreach(
$sql_ as $row){
                if(
$row['photo'])
                    
$tpl->set('{ava}''/uploads/groups/'.$row['id'].'/100_'.$row['photo']);
                else
                    
$tpl->set('{ava}''{theme}/images/no_ava_groups_100.gif');
                
                
$tpl->set('{public-id}'$row['id']);
                
$tpl->set('{name}'stripslashes($row['title']));
                
$tpl->set('{note-id}'$row['id']);
                
$tpl->set('{traf}'$row['traf'].' '.gram_record($row['traf'], 'groups_users'));
                if(
$row['adres']) $tpl->set('{adres}'$row['adres']);
                else 
$tpl->set('{adres}''public'.$row['id']);
                
$tpl->compile('content');
            }

        
//Если критерий поиск "по аудизаписям"
        
} elseif($type == 5){
            
$tpl->load_template('search/result_audio.tpl');
            
$jid 0;
            foreach(
$sql_ as $row){
                
$jid++;
                
$tpl->set('{jid}'$jid);
                
$tpl->set('{aid}'$row['aid']);
                
$tpl->set('{url}'$row['url']);
                
$tpl->set('{artist}'stripslashes($row['artist']));
                
$tpl->set('{name}'stripslashes($row['name']));
                
$tpl->set('{author-n}'substr($row['user_search_pref'], 01));
                
$expName explode(' '$row['user_search_pref']);
                
$tpl->set('{author-f}'$expName[1]);
                
$tpl->set('{author-id}'$row['auser_id']);
                
$tpl->compile('content');
            }
        } else
            
msgbox(''$lang['search_none'], 'info_2');

        
navigation($gcount$count['cnt'], '/index.php?'.$query_string.'&page=');
    } else
        
msgbox('''''info_search');
    
    
$tpl->clear();
    
$db->free();
} else {
    
$user_speedbar $lang['no_infooo'];
    
msgbox(''$lang['not_logged'], 'info');
}
?>
Онлайн: 0
Реклама