Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru Стол заказов Сделать чтобы поиск был строго по одному доп. полю для киносайта

Сделать чтобы поиск был строго по одному доп. полю для киносайта


 barabanas    12.08.2015    Стол заказов    1090    18

здравствуйте, надо сделать чтобы поиск был строго по одному доп. полю для киносайта
у меня есть такие поля

site.ru/country
site.ru/year
site.ru/genre
site.ru/director
site.ru/actor

если я нажимаю на site.ru/year/2015 то показывало 2015 а не 2015, 1990 и т.д
или если site.ru/country/USA то показывало не только где есть USA но и USA, Germany, Italy

или

site.ru/country/Germany то Germany, USA, Japan

site.ru/director/Norman Buckley показывало не только где он один но и Norman Buckley, Ron Lagomarsino

надеюсь понятно описал

Комментарии пользователей (18)

barabanas
36 | 1

barabanas - 12 августа 2015 16:00 - Юзер

забыл написать у меня DLE 10.5 UTF-8

Gameer
225

1121 | 395

Gameer - 12 августа 2015 16:24 - Эксперт

Чем этот вариант не подходит ? http://igameer.ru/port/50-fxfield.html

Истина в противоречии.​

barabanas
36 | 1

barabanas - 12 августа 2015 16:37 - Юзер

ну я не знаю не видел его но если он для етого более точного поиска может и подходет но ето уже у меня сделано

Ищем в файлах /engine/modules/show.short.php, /engine/modules/show.custom.php и два раза /engine/modules/show.full.php для того чтоб поменялос с xfsearch на другое слово так я и непонимаю что делать помоги я заплачю

Googledono
4

117 | 8

Googledono - 13 августа 2015 10:54 - Юзер

Цитата: barabanas
для того чтоб поменялос с xfsearch на другое слово так я и непонимаю что делать помоги я заплачю

а я вас не понял, что вы хотите. хотите xfsearch на своё слово заменить? или не знаете как искать в файлах?

barabanas
36 | 1

barabanas - 13 августа 2015 11:02 - Юзер

у меня уже xfsearch заменено на свое слово.

год-year
страна-country и т.д

но идет не точныи поиск особено по годам site.ru/year/2015 мне показывает 2015, 1990, 2012

хочю сделать боле менее точныи поиск по доп. полям

Googledono
4

117 | 8

Googledono - 13 августа 2015 12:34 - Юзер

так, этот хак и поможет... будет выводить xfsearch/year/2015
замените xfsearch на своё и радуйтесь

barabanas
36 | 1

barabanas - 13 августа 2015 13:34 - Юзер

Далее открываем файл /engine/engine.php находим :

"xfsearch/"

Меняем на :

"xfsearch/" . urlencode($xn) . "/"


немогу наити у себя "xfsearch/"

Googledono
4

117 | 8

Googledono - 13 августа 2015 14:06 - Юзер

// ################ Вывод профиля пользователя #################

и выше должны быть эти строки

barabanas
36 | 1

barabanas - 13 августа 2015 14:12 - Юзер

// ################ Поиск новостей по доп. полям #################            
            if ($cstart) {
                $cstart = $cstart - 1;
                $cstart = $cstart * $config['news_number'];
            }

            $xf = urldecode ( $_GET['xf'] );

            if ( $config['charset'] == "windows-1251" AND $config['charset'] != detect_encoding($xf) ) {

                if( function_exists( 'mb_convert_encoding' ) ) {
            
                    $xf = mb_convert_encoding( $xf, "windows-1251", "UTF-8" );
            
                } elseif( function_exists( 'iconv' ) ) {
                
                    $xf = iconv( "UTF-8", "windows-1251//IGNORE", $xf );
                
                }

            }

            $xf = @$db->safesql ( htmlspecialchars ( strip_tags ( stripslashes ( trim ( $xf ) ) ), ENT_QUOTES, $config['charset'] ) );
            $url_page = $config['http_home_url'] . urlencode($_GET['xn']) . "/" . urlencode ( str_replace("'", "'", $xf) );
            $user_query = "do=xfsearch&xf=" . urlencode ( str_replace("'", "'", $xf) );
        
            if (isset ( $_SESSION['dle_sort_xfsearch'] )) $news_sort_by = $_SESSION['dle_sort_xfsearch'];
            if (isset ( $_SESSION['dle_direction_xfsearch'] )) $news_direction_by = $_SESSION['dle_direction_xfsearch'];
            
            $sql_select = "SELECT SQL_CALC_FOUND_ROWS p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}xfields LIKE '%{$xf}%' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
            $sql_count = "SELECT FOUND_ROWS() as count";
            $allow_active_news = true;
        
        } elseif ($subaction == 'userinfo') {
            // ################ Вывод профиля пользователя #################



и где ето ? "xfsearch/"

Gameer
225

1121 | 395

Gameer - 13 августа 2015 14:14 - Эксперт

barabanas, это из-за ваших правок, откатитесь назад и сделайте по инструкции.

Истина в противоречии.​

barabanas
36 | 1

barabanas - 13 августа 2015 14:19 - Юзер

извиняюсь виноват посмотрел на старыи engine нашол. и где надо переименовать xfsearch на свое слово чтоб было так site.ru/find/year/2015 ?

Googledono
4

117 | 8

Googledono - 13 августа 2015 14:26 - Юзер

да, так. только и в последующих шагах заменяйте xfsearch на find (функции для ЧПУ)

barabanas
36 | 1

barabanas - 13 августа 2015 14:36 - Юзер

я ничего уже не понимаю какои еще чпу? ты лутче скажи мне какие тебе фаилы прислать ты мне сделаи я тебе переведу 5$ ок ?

Googledono
4

117 | 8

Googledono - 13 августа 2015 18:04 - Юзер

боже, вы когда устанавливали, было написано "Включить ЧПУ? (Человекопонятное УРЛ)"

всё, что пишется примерно так:
 $url_page = $config['http_home_url'] . "xfsearch/" . urlencode($xn) . "/" . urlencode ( str_replace("'", "'", $xf) );

Это функция вывода для ЧПУ
а что выводится примерно вот так:
do=xfsearch&xf=

это обычный вывод, без ЧПУ.
посему и говорю - когда будете заменять - не трогайте подобные строки

если вы всё ещё не понимаете, то пишите в скайп или асю
ICQ: 12309700
Skype: af_animefighter

barabanas
36 | 1

barabanas - 13 августа 2015 18:17 - Юзер

я все сделал по етому хаку http://igameer.ru/port/50-fxfield.html теперь все нормально. но незнаю как поменять xfsearch на свое слово где надо переписать ?

Googledono
4

117 | 8

Googledono - 13 августа 2015 18:41 - Юзер

лично для тебя
Ищем в файлах /engine/modules/show.short.php, /engine/modules/show.custom.php и два раза /engine/modules/show.full.php
$value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . $preg_safe_name . "/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";

меняем на
[code
$value3[] = "<a href=\"" . $config['http_home_url'] . "СВОЁСЛОВО/" . $preg_safe_name . "/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
][/code]
Далее открываем файл /engine/engine.php находим :
"xfsearch/" . urlencode($xn) . "/"

меняем на
"СВОЁСЛОВО/" . urlencode($xn) . "/"

Далее открыть .htaccess (там где index.php) найти :
RewriteRule ^xfsearch/([^/]*)/([^/]*)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2 [L]
RewriteRule ^xfsearch/([^/]*)/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2&cstart=$3 [L]

меняем на
RewriteRule ^СВОЁСЛОВО/([^/]*)/([^/]*)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2 [L]
RewriteRule ^СВОЁСЛОВО/([^/]*)/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2&cstart=$3 [L]

barabanas
36 | 1

barabanas - 13 августа 2015 20:58 - Юзер

переписал все хорошо большое тебе спасиба

Googledono
4

117 | 8

Googledono - 13 августа 2015 14:20 - Юзер

 $xf = @$db->safesql ( htmlspecialchars ( strip_tags ( stripslashes ( trim ( $xf ) ) ), ENT_QUOTES, $config['charset'] ) );
            $url_page = $config['http_home_url'] . urlencode($_GET['xn']) . "/" . urlencode ( str_replace("'", "'", $xf) );
            $user_query = "do=xfsearch&amp;xf=" . urlencode ( str_replace("&#039;", "'", $xf) );
на это заменить
$xn = @$db->safesql ( htmlspecialchars ( strip_tags ( stripslashes ( trim ( $_GET['xn'] ) ) ), ENT_QUOTES, $config['charset'] ) );
            $xf = @$db->safesql ( htmlspecialchars ( strip_tags ( stripslashes ( trim ( $xf ) ) ), ENT_QUOTES, $config['charset'] ) );
            $url_page = $config['http_home_url'] . "xfsearch/" . urlencode($xn) . "/" . urlencode ( str_replace("'", "'", $xf) );
            $user_query = "do=xfsearch&xf=" . urlencode ( str_replace("'", "'", $xf) );

Чтобы комментировать - войдите или зарегистрируйтесь на сайте