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

  • Автор темы Автор темы Maxim
  • Дата начала Дата начала

Maxim

Well-known member
Команда форума
Регистрация
17 Фев 2015
Сообщения
298
Реакции
46
Не в сети
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

Well-known member
Команда форума
Регистрация
17 Фев 2015
Сообщения
298
Реакции
46
Не в сети
Как сделать поиск быстрой новости по тайтлу и доп.полю?
открываем 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");
 

Ден

New member
Регистрация
24 Сен 2019
Сообщения
3
Реакции
0
Не в сети
Выровнял свой поиск по вашей рекомендации по заголовку, коротко ясно и понятно, что куда и почему :) Все работает на ура, спасибо большое за хак
 

Ден

New member
Регистрация
24 Сен 2019
Сообщения
3
Реакции
0
Не в сети
Есть ли возможность вывода в поиске по аналогу скрина?
397
 
АТ
АТ
Maxim

Maxim

Well-known member
Команда форума
Регистрация
17 Фев 2015
Сообщения
298
Реакции
46
Не в сети
Ден @Ден, просто оформить стили
В пхп оформить следующий код для обрамовки
[CODE lang="html" title="Results"]<div class="searchResults"></div>[/CODE]
а сами вложения, т.е. items выглядят так:
[CODE lang="html" title="Items"]<div class="search-quick-item" id="ID-Новости">
<a href="Ссылка на новость">
<span class="">
<img src="Ссылка на постер" class="poster">
</span>
<div class="right">
<div class="title">Название новости</div>
<div class="original-title">Название на английском</div>
<div>
<span class="year">Год</span>
<span class="category">Категория</span>
</div>
</div>
</a>
</div>[/CODE]

и сами стили
[CODE lang="css" title="Стили"].searchResults {
top: 60px;
left: 1px;
width: 480px;
height: auto;
z-index: 500;
font-size: 0;
display: none;
line-height: 0;
position: absolute;
box-shadow: 0 19px 29px rgba(0,0,0,0.2);
}

.searchResults.opened {
display: block;
}

.searchResults .search-quick-item {
height: auto;
font-size: 0;
cursor: default;
background: white;
position: relative;
display: inline-block;
padding: 20px 23px 17px 20px;
box-shadow: inset 0 -1px 0 0 #efefef;
}

.searchResults .showAllResults {
color: #f26739;
height: 40px;
display: block;
padding: 0 20px;
font-size: 14px;
background: #fff;
font-weight: 400;
line-height: 40px;
}

.searchResults .search-quick-item a {
display: inline-block;
}

.searchResults .search-quick-item .right {
float: left;
width: 377px;
margin-left: 20px;
line-height: 20px;
vertical-align: top;
}

.searchResults .search-quick-item .poster {
width: 40px;
float: left;
height: 60px;
}

.searchResults .search-quick-item .right .title {
top: -3px;
color: #292c33;
font-size: 20px;
font-weight: 700;
line-height: 20px;
position: relative;
}

.searchResults .search-quick-item .right .original-title {
color: #8f95a3;
font-size: 14px;
font-weight: 500;
}

.searchResults .search-quick-item .right .year,
.searchResults .search-quick-item .right .category {
margin-right: 5px;
}

[/CODE]

Встраивай
 

Ден

New member
Регистрация
24 Сен 2019
Сообщения
3
Реакции
0
Не в сети
В пхп оформить следующий код для обрамовки
Results:
и
Items:

можно ли подробнее куда данный код вставлять?
Со стилями все ясно, а вот первые 2 не пойму
 
АТ
АТ
Maxim

Maxim

Well-known member
Команда форума
Регистрация
17 Фев 2015
Сообщения
298
Реакции
46
Не в сети

lantis

New member
Регистрация
4 Окт 2019
Сообщения
2
Реакции
0
Не в сети
Добрый день. Не подскажите? DLE 12. (кино)На одном шаблоне поиск работает хорошо. Ставлю другой, в результатах выдает несколько страниц, и даже те, в которых нету поискового ключа. Файлы search.tpl, searchresult.tpl менял с рабочего шаблона, ни че не меняется. Куда копать дальше, фиг знает)
 
АТ
АТ
Maxim

Maxim

Well-known member
Команда форума
Регистрация
17 Фев 2015
Сообщения
298
Реакции
46
Не в сети
lantis @lantis, смотреть отличия шаблона. возможно в одном есть некий яваскрипт, который подгружает, а возможно в шаблоне прописаны параметры поиска
 

lantis

New member
Регистрация
4 Окт 2019
Сообщения
2
Реакции
0
Не в сети
Ок, спасибо. Буду ковыряться)
 
,
Все файлы и изображения загружаем на форум!
Сверху