DevCraft - Разработка приложений

Приветствую!

Это новый и обновлённый сайт maxim-harder.de! Если вы были зарегистрированы на старом сайте, то восстановите свой пароль на сайте!

Создай свой аккаунт!

Хак Поиск и быстрый поиск по заголовку

Maxim

Интересующийся
Команда форума

Maxim

Интересующийся
Команда форума
Реакции
100% 0% 0%
Версия DLE
10.х
1499632802_1474268841_2016-09-19_08-59-011.png
Данный хак позволит в большей точности отыскать новость по ключу, тобишь по заголовку, а не по всей статье.

Полагаю, это снизит немного нагрузку на сервер (Базу Данных), так как мы будем делать поиск по одному полю таблицы, а не по всей. Допустим, у вас полно данных в доп. полях, то стандартный поиск будет и по ним тоже шурстать.

Удачи!

Открываем engine/ajax/search.php
Ищем:
PHP:
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
меняем на:
PHP:
//$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");

$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
тем самым, мы говорим быстрому поиску, что нужно искать в заголовках.
Итак, что я сделал? я из поискового запроса удалил
PHP:
short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR
он отвечал за поиск по краткой и полной новости и по доп. полям.

Теперь оптимизируем простой поиск.
Открываем engine/modules/search.php
ищем:
PHP:
if( isset( $_REQUEST['titleonly'] ) ) $titleonly = intval( $_REQUEST['titleonly'] ); else $titleonly = 0;
и меняем на:
PHP:
if( isset( $_REQUEST['titleonly'] ) ) $titleonly = intval( $_REQUEST['titleonly'] ); else $titleonly = 3;
то есть, теперь, когда мы в поисковой строке нажимаем на "искать", то искать будет по заголовку
вместо 3 можно прописать 1 или 2
Вот за что отвечают цифры:
0 => Искать только в статьях (учитываются и описания, и заголовки, и доп. поля)
1 => Искать только в комментариях
2 => Искать только в статических страницах
3 => Искать только в заголовках статей

Удачи!
 

Maxim

Интересующийся
Команда форума

Maxim

Интересующийся
Команда форума
Реакции
100% 0% 0%
Как сделать поиск быстрой новости по тайтлу и доп.полю?
открываем engine/ajax/search.php и ищем
PHP:
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
в исходном коде это строка 104.

и меняем на
PHP:
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
 

Верх