Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Не правильно работает xfsearch?

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


     18.12.2014    Общие вопросы    1898

вопрос
Только сейчас заметил, что 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
58 | 37

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

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

aluminoter
27

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

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

aluminoter
27

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

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

vitnet
218

2174 | 930

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
27

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

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

morefilms
57 | 3

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

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

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

morefilms
57 | 3

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

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

aluminoter
27

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

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

vitnet
218

2174 | 930

vitnet - 19 декабря 2014 21:15 - Эксперт

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

aluminoter
27

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

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

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

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


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

newdancer
1

47 | 6

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

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

vitnet
218

2174 | 930

vitnet - 20 декабря 2014 01:17 - Эксперт

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

aluminoter
27

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

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

vitnet
218

2174 | 930

vitnet - 20 декабря 2014 01:39 - Эксперт

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

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

aluminoter
27

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

Понял!!!

aluminoter
27

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

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

morefilms
57 | 3

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

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

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

xschneider
8 | 1

xschneider - 23 марта 2015 19:18 - Юзер

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

1bbcru
21 | 1

1bbcru - 28 мая 2015 17:11 - Юзер

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

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


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

1bbcru
21 | 1

1bbcru - 8 июня 2015 17:14 - Юзер

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

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

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

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

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

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

1bbcru
21 | 1

1bbcru - 8 июня 2015 20:08 - Юзер

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

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

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