Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по вёрстке » Как сделать подсветку запрашиваемых слов в результатах поиска?

Как сделать подсветку запрашиваемых слов в результатах поиска?


     24.07.2016    Общие вопросы по вёрстке, Ламерские вопросы    1809

вопрос
Здравствуйте! Первый раз пользуюсь DLE. На многих сайтах этой CMS при выводе результатов поиска подсвечиваются слова с запроса, а у меня в шаблоне нет такого (.
Собственно вопрос. Как включить эту функцию? Или может при вёрстке шаблона не добавлен какой то код, что отвечает за подсветку в результатах поиска? Подробней если можно ))). Спасибо!

Ответил: deadluk


Для быстрого поиска...

Самое страшное на нашем веку, что люди ленятся думать:

В engine/ajax/search.php - находим

$buffer .= "<span>".$description."</span></a>";



ниже вставляем

$buffer = str_replace ( $query, '<span style="color: green;">' . $query . '</span>',  $buffer );


Автор: https://dle-faq.ru/faq/phpquest/5643-podsvetka-teksta-v-poiske.html#comment-id-13651

Нежели сразу задавать вопрос, пользуйтесь поиском...

11 комментариев

Mr.Edyan
Юзер

Mr.Edyan - 24 июля 2016 20:12 -

А без правки движка никак? Неужели эта функция не предусмотрена разработчиками?

deadluk
Юзер

deadluk - 24 июля 2016 20:13 -

Ммм, если всё было бы предусмотрено, разве было бы так интересно?

Mr.Edyan
Юзер

Mr.Edyan - 24 июля 2016 20:15 -

))) тогда спасибо! Тема закрыта.

deadluk
Юзер

deadluk - 24 июля 2016 20:17 -

Правьте двиг. и записывайте все правки в текстовик (или куда Вам удобно). Удачи.

hakypuhbiu
Юзер

hakypuhbiu - 25 июля 2016 21:39 -

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

Mr.Edyan
Юзер

Mr.Edyan - 27 июля 2016 13:16 -

У меня кстати тоже так и не сработало, так что тема всё ещё актуальна. Может дело в версии? У меня 11.1.

deadluk
Юзер

deadluk - 16 августа 2016 20:42 -

нужен скрин...

Mr.Edyan
Юзер

Mr.Edyan - 16 августа 2016 20:44 -

Скрин чего?

deadluk
Юзер

deadluk - 16 августа 2016 20:45 -

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


этого

vitnet
PHP-developer

vitnet - 17 августа 2016 01:09 -

1.0 Открыть файл engine/modules/functions.php

Найти
?>

Добавить выше
function hilites($search, $txt) {
    $r = preg_split( '((>)|(<))', $txt, - 1, PREG_SPLIT_DELIM_CAPTURE );
                    
    for($i = 0; $i < count( $r ); $i ++) {
        if( $r[$i] == "<" ) {
            $i++;
            continue;
        }
        $r[$i] = preg_replace( "#($search)#i", "<span style='background-color:yellow;'><font color='red'>\\1</font></span>", $r[$i] );
    }
    return join( "", $r );
}

2.0 Открыть файл engine/modules/search.php

Найти
            }
        }
    }
    
    $tpl->clear();

Добавить выше
                // hilites
                if( $config['full_search'] ) $arr = explode( " ", $story );
                else $arr = explode( "%", $story );
                    
                foreach ( $arr as $word ) {
                        if( strlen( trim( $word ) ) >= $config['search_length_min'] ) {
                        $tpl->result['content'] = hilites( $word, $tpl->result['content'] );
                    }
                }
                // hilites

Mr.Edyan
Юзер

Mr.Edyan - 17 августа 2016 13:25 -

Вот это работает. Спасибо!

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

Похожие вопросы

наверх