Търсачка

niksdevil

Registered
Здравейте, идеята ми е ако може да комбинира различни символи а не на ключова дума да речем Металика, да я намира по следните начини:

meталиka metalika меtalika и т.н

Ето този код ползвам :

Код:
<?php
if (empty($_GET['keyword'])) {
	header("Location: " . PT_Link('login'));
    exit();
}
$keyword = PT_Secure($_GET['keyword']);

$list = '<div class="text-center no-content-found empty_state"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-video-off"><path d="M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>' . $lang->no_videos_found_for_now . '</div>';
$list2 = '<div class="text-center no-content-found empty_state"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-video-off"><path d="M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg></div>';
$final = '';
$final2 = '';
$category = '';
$date = '';
$category_id = '';
// pagination system 
$pt->page_number = isset($_GET['page_id']) && is_numeric($_GET['page_id']) && $_GET['page_id'] > 0 ? $_GET['page_id'] : 1;
$pt->limit_per_page = !empty($pt->config->videos_load_limit) && is_numeric($pt->config->videos_load_limit) && $pt->config->videos_load_limit > 0 ? (int) $pt->config->videos_load_limit : 20;
$db->pageLimit = $pt->limit_per_page;
// pagination system 
if (isset($_POST['category']) && !empty($_POST['category'])) {
    if (is_array($_POST['category']) && count($_POST['category']) > 1) {
        $cat_id = "'".implode("','", $_POST['category'])."'";
       // $cat_id = PT_Secure($cat_id);
        $category = " AND category_id IN (".$cat_id.") ";
    }
    else{
        $cat_id = PT_Secure($_POST['category'][0]);
        $category = " AND category_id = '".$cat_id."' ";
    }
    $category_id = $cat_id;
}
if (isset($_POST['date']) && !empty($_POST['date'])) {
    if ($_POST['date'] == 'last_hour') {
        $time = time()-(60*60);
        $date = " AND time >= ".$time." ";
    }
    elseif ($_POST['date'] == 'today') {
        $time = time()-(60*60*24);
        $date = " AND time >= ".$time." ";
    }
    elseif ($_POST['date'] == 'this_week') {
        $time = time()-(60*60*24*7);
        $date = " AND time >= ".$time." ";
    }
    elseif ($_POST['date'] == 'this_month') {
        $time = time()-(60*60*24*30);
        $date = " AND time >= ".$time." ";
    }
    elseif ($_POST['date'] == 'this_year') {
        $time = time()-(60*60*24*365);
        $date = " AND time >= ".$time." ";
    }
}

if ($pt->config->total_videos > 1000000) {

    // $get_videos = $db->rawQuery("SELECT * FROM " . T_VIDEOS . " WHERE MATCH (title) AGAINST ('$keyword') AND privacy = 0 ".$category.$date." ORDER BY id ASC LIMIT 20");

    // pagination system 
    // $get_videos = $db->where("title LIKE '%$keyword%' AND privacy = 0  ".$category.$date)->orderBy('id', 'ASC')->objectbuilder()->paginate(T_VIDEOS, $pt->page_number);
    $get_videos = $db->where("MATCH (title) AGAINST ('$keyword') AND privacy = 0  ".$category.$date)->orderBy('id', 'ASC')->objectbuilder()->paginate(T_VIDEOS, $pt->page_number);
    $pt->total_pages = $db->totalPages;
    // pagination system
} else {
    //$get_videos = $db->rawQuery("SELECT * FROM " . T_VIDEOS . " WHERE title LIKE '%$keyword%' AND privacy = 0 ".$category.$date." ORDER BY id ASC LIMIT 20");
    
    // pagination system 
    $get_videos = $db->where("(title LIKE '%$keyword%' OR tags LIKE '%$keyword%' OR description LIKE '%$keyword%') AND privacy = 0  ".$category.$date)->orderBy('id', 'ASC')->objectbuilder()->paginate(T_VIDEOS, $pt->page_number);
    $pt->total_pages = $db->totalPages;
    // pagination system
}
if (!empty($get_videos)) {
    $len = count($get_videos);
    foreach ($get_videos as $key => $video) {
        $video = PT_GetVideoByID($video, 0, 0, 0);
        $pt->last_video = false;
        if ($key == $len - 1) {
            $pt->last_video = true;
        }
        $final .= PT_LoadPage('search/list', array(
            'ID' => $video->id,
            'USER_DATA' => $video->owner,
            'THUMBNAIL' => $video->thumbnail,
            'URL' => $video->url,
            'TITLE' => $video->title,
            'DESC' => $video->markup_description,
            'VIEWS' => $video->views,
            'VIEWS_NUM' => number_format($video->views),
            'TIME' => $video->time_ago,
            'DURATION' => $video->duration,
            'VIDEO_ID_' => PT_Slug($video->title, $video->video_id),
            'GIF' => $video->gif
        ));
    }
}
if (empty($final)) {
	$final = $list;
}

$get_users = $db->rawQuery("SELECT * FROM " . T_USERS . " WHERE ((`username` LIKE '%$keyword%') OR CONCAT( `first_name`,  ' ', `last_name` ) LIKE  '%$keyword%') ORDER BY id ASC LIMIT 50");
if (!empty($get_users)) {
    $len = count($get_users);
    foreach ($get_users as $key => $user) {
        $user = PT_UserData($user, array('data' => true));
        $pt->last_user = false;
        if ($key == $len - 1) {
            $pt->last_user = true;
        }
        $final2 .= PT_LoadPage('search/user-list', array(
            'ID' => $user->id,
            'USER_DATA' => $user,
        ));
    }
}
// print_r($_POST);
// exit();
if (empty($final2)) {
    $final2 = $list2;
}


$pt->videos      = $get_videos;
$pt->users      = $get_users;
$pt->page        = 'search';
$pt->title       = $lang->search . ' | ' . $pt->config->title;
$pt->description = $pt->config->description;
$pt->keyword     = $pt->config->keyword;
$pt->content     = PT_LoadPage('search/content', array(
    'VIDEOS' => $final,
    'USERS' => $final2,
    'KEYWORD' => $keyword,
    'CAT' => $category_id
));
 
Извади ни само заявките, които ползваш! Виждам че си ги качил, но в случая са ти необходими две неща: Качествена заявка да търси в колоните на таблицата и транслитератор за преобразуване на кирилицата в латиница и обратното.

https://slovored.com/transliteration/rules.html
 

Горе