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

Не правильно работает xfsearch?


     18.12.2014    Все вопросы » Общие вопросы    4968

вопрос
Только сейчас заметил, что xfsearch не правильно работает как перекрестная ссылка по годам. Некоторые года отрабатывают нормально, а вот 2014 и и еще некоторые показывают полный бред. Вместо фильмов 2014 года выдает любые года как попало.
В чем может быть прикол????

Ответил: Sander


Вы используете еще одно доп. поле в котором указывается адрес на картинку.
Таким образом в БД в колонке xfields хранится примерно такое значение:
image|http://вашсайт.ru/uploads/posts/2014-12/2134654-images.jpg||year|2008

И когда человек будет искать фильмы 2014 года, он увидит и эту запись, хотя по факту у него прописано year|2008
Но он его найдет из-за года прописанного в адресе картинки
image|/uploads/posts/2014-12/2134654-images.jpg||year|2008


Чтобы попытаться решить эту проблему, нужно открыть файл engine/engine.php
Найти код:
%{$xf}%

И заменить на
%|{$xf}%


Теперь он будет искать только те записи, у которых в xfields записано
|2014

21 комментарий

skinny
Юзер

skinny - 18 декабря 2014 20:58 -

Просто показывает фильмы не по дате выхода, а берется из архива новостей по годам. Сам не могу с этим разобраться..

aluminoter
Юзер

aluminoter - 19 декабря 2014 06:30 -

Спасибо!!! Вот теперь работает все правильно!!!

aluminoter
Юзер

aluminoter - 19 декабря 2014 06:40 -

Но теперь другие поля, выдают херню. Так как ищет |xf то если есть поле категории и перечислены категории (драма, комедия) то он не правильно будет искать

vitnet
PHP-developer

vitnet - 19 декабря 2014 10:22 -

Тогда проделайте следующее
Найти
            if (isset ( $_SESSION['dle_direction_xfsearch'] )) $news_direction_by = $_SESSION['dle_direction_xfsearch'];

Добавить ниже
        $xfsearch = is_numeric($xf) ? "xfields LIKE '%|{$xf}%'" : "xfields LIKE '%{$xf}%'";

Затем заменить
xfields LIKE '%{$xf}%'

На
{$xfsearch}

aluminoter
Юзер

aluminoter - 19 декабря 2014 10:38 -

А вот теперь вроде бы все ОК!!! Спасибо за оперативный ответ.

morefilms
Юзер

morefilms - 19 декабря 2014 17:12 -

хм, а я заменил только
%|{$xf}%

и кажется нормально все работает, и по другим перекрестным ссылкам ищет правильно. Подскажите детальнее еще что вторая часть (сообщение #38732) исправляет, пожалуйста?

morefilms
Юзер

morefilms - 19 декабря 2014 17:30 -

***Комментарий удален***

aluminoter
Юзер

aluminoter - 19 декабря 2014 18:45 -

Хотя нашел еще один косяк. При перекрестной ссылке жанр фильма, при выводе фильмов "драма" выводятся заодно и "мелодрама".

vitnet
PHP-developer

vitnet - 19 декабря 2014 21:15 -

А так?
$xfsearch = is_numeric($xf) ? "xfields LIKE '%|{$xf}%'" : "xfields LIKE '%{$xf}'";

aluminoter
Юзер

aluminoter - 19 декабря 2014 21:48 -

Прикол в том что слово драма или мелодрама может быть как в начале так и в конце, причем жанров бывает от 1 до 6 разных.
Например:
драма, приключения, комедия

приключения, боевик, драма

мелодрама, приключения, комедия


И mysql запросу похер что драма, что мелодрама так как и там и там есть драма.

newdancer
Юзер

newdancer - 19 декабря 2014 21:38 -

vitnet, скажи а как исключить из сортировки названия новостей. К примеру у меня на сайте kinomovies.net. При сортировке по стране Беларусь затесался фильм "Жыве Беларусь! (2012)" хотя он производства Польши)

vitnet
PHP-developer

vitnet - 20 декабря 2014 01:17 -

Готово! исправил.

aluminoter
Юзер

aluminoter - 20 декабря 2014 01:22 -

А что ты исправил??? Ничего не выводит, если сделать так, как ты написал в последний раз.

vitnet
PHP-developer

vitnet - 20 декабря 2014 01:39 -

Цитата: newdancer
К примеру у меня на сайте kinomovies.net.

Я исправил ему модуль

aluminoter
Юзер

aluminoter - 20 декабря 2014 01:43 -

Понял!!!

aluminoter
Юзер

aluminoter - 19 декабря 2014 21:45 -

vitnet,
А так вообще не фурычит.

morefilms
Юзер

morefilms - 20 декабря 2014 13:56 -

Цитата: vitnet
Цитата: newdancerК примеру у меня на сайте kinomovies.net.Я исправил ему модуль

Подскажите как реализовать это? тоже интересует "как исключить из сортировки названия новостей"

xschneider
Юзер

xschneider - 23 марта 2015 19:18 -

Спасибо большое автору, очень помог

1bbcru
Юзер

1bbcru - 28 мая 2015 17:11 -

спасибо автору, все четко вроде.

Цитата: aluminoter
А так вообще не фурычит.


рекомендую жанры использовать не в перекрестных ссылках а как категории, тогда все будет ок :)

1bbcru
Юзер

1bbcru - 8 июня 2015 17:14 -

все проделал, как указал автор.

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

Например если доп поле Актеры: Сильвестр Сталлоне, Арнольд Шварценеггер, Джеймс Кэвизел, Фифти Сент, Винни Джонс, Эми Райан, Фаран Таир, Сэм Нилл, Мэтт Джералд, Каитриона Бэлфи, Дэвид Джозеф Мартинес

По одним актерам вроде ищет, а по другим не ищет. У меня возникло подозрение, что если использовать одинаковую последовательность актеров (значений) через запятую во всех новостях, то возможно поможет, но не факт...

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

PS: значения во всех новостях указывал одинаковые, проверял.

1bbcru
Юзер

1bbcru - 8 июня 2015 20:08 -

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

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

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

наверх