Перейти к публикации

Ошибка БД при показе подборки


Рекомендованные сообщения

Есть допполе youtubevideo, при показе страницы с адресом /index.php?do=xfsearch&xf=youtubevideo стало выдавать ошибку.  Что поломалось? Не знаю точно, когда ошибка появилась, но совсем недавно все работало... DLE 14.3

MySQL Error!
MySQL error in file: /engine/modules/show.short.php at line 1104
Error Number: 1054
The Error returned was:
Unknown column 'p.xfields' in 'where clause'
SQL query:

SELECT COUNT(*) as count FROM dle_post WHERE p.xfields LIKE '%youtubevideo|%' AND approve=1 AND date < '2021-06-21 21:03:57'
Изменено пользователем ntrtv
Ссылка на сообщение
Поделиться на других сайтах

Вам ответили по почте что ссылка некорректная. Отсутствует имя доп. поля в ссылке 

Ссылка на сообщение
Поделиться на других сайтах

Но, к сожалению, не подсказали правильную ссылку. 

 

Да, после внесения правок в скрипт и обновления ссылка стала снова работать.

Изменено пользователем ntrtv
Ссылка на сообщение
Поделиться на других сайтах
22.06.2021 в 11:29, ntrtv сказал:

Но, к сожалению, не подсказали правильную ссылку. 

Мы вам сказали как ее установить. Она зависит от настроек скрипта, от имен полей и т.д. Выведете ее правильными средствами, т.е. тегами DLE и получите правильную ссылку.

22.06.2021 в 11:29, ntrtv сказал:

Да, после внесения правок в скрипт и обновления ссылка стала снова работать.

Убрать ошибку не значит работать корректно. Вы хотите решить свою проблему и сделать все правильно или убрать ошибку? Как решить правильно мы написали вам по e-mail. Если убрать ошибку, то ничего делать не нужно. Потом просто не пишите, а почему контент не тот, почему не выводит, что что нужно или выводит лишнее и т.д.

Ссылка на сообщение
Поделиться на других сайтах

так как у нас расширенная лицензия я надеялся на более дружелюбную поддержку.  Поэтому попрошу еще раз, По этой ссылке  /index.php?do=xfsearch&xf=youtubevideo у на сайте выводятся все новости, где ЗАПОЛНЕНО допполе "youtubevideo".  Если эта ссылка неверная, то просто подскажите, какая верная? На сайте отключено ЧПУ, поэтому ссылка вида http://вашсайт/xfsearch/имя поля/  -- не работает.  Спасибо!

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, ntrtv сказал:

По этой ссылке  /index.php?do=xfsearch&xf=youtubevideo у на сайте выводятся все новости, где ЗАПОЛНЕНО допполе "youtubevideo".

Нет. Неверно. Вам сейчас выводится все что содержит слово youtubevideo, во всех доп. полях. Причем как в именах, так и в значениях всех доп. полей без исключения.

2 часа назад, ntrtv сказал:

так как у нас расширенная лицензия я надеялся на более дружелюбную поддержку. 

 

2 часа назад, ntrtv сказал:

Если эта ссылка неверная, то просто подскажите, какая верная?

Я вам сказал уже не раз как правильно. Доп. поле должно иметь тип перекрестные ссылки. Значение зависит что вы там напишите. Выводите поле тегом [xfvalue_имя поля] и видите ссылку.

Так и только так правильно и только так предусмотрено в DLE и документировано. И никак иначе.

Ссылка на сообщение
Поделиться на других сайтах
49 минут назад, celsoft сказал:

Нет. Неверно. Вам сейчас выводится все что содержит слово youtubevideo, во всех доп. полях. Причем как в именах, так и в значениях всех доп. полей без исключения.

3 часа назад, ntrtv сказал:

Ну нет же. Слова youtubevideo нет в допполях, там идентификаторы видео Ютуб. Это исключительно название допполя. И выводятся только новости, с заполненными полями youtubevideo. Новости с незаполненными полями не выводятся.

49 минут назад, celsoft сказал:

Я вам сказал уже не раз как правильно. Доп. поле должно иметь тип перекрестные ссылки. Значение зависит что вы там напишите. Выводите поле тегом [xfvalue_имя поля] и видите ссылку.

 

Но в main.tpl  я так понимаю оно не работает?

Вот я получил ссылку: https://ntr-24.ru/index.php?do=xfsearch&xfname=youtubevideo&xf=RtUZJGWLkHk, она выводит новость, содержащую поле с RtUZJGWLkHk, Но мне надо вывести ВСЕ материалы на странице с шаблонов shortstory, у которых заполнено поле youtubevideo

Изменено пользователем ntrtv
Ссылка на сообщение
Поделиться на других сайтах
11 часов назад, celsoft сказал:

Нет. Неверно. Вам сейчас выводится все что содержит слово youtubevideo, во всех доп. полях. Причем как в именах, так и в значениях всех доп. полей без исключения.

13 часов назад, ntrtv сказал:

Я неверно выразился. Да, он так и работает. И работает корректно, выводя лишь заполненные поля youtubevideo. Это нам и нужно. Потому youtubevideo больше нигде, кроме как в названии этого допполя не встречается.

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, ntrtv сказал:

Я неверно выразился. Да, он так и работает. И работает корректно, выводя лишь заполненные поля youtubevideo. Это нам и нужно. Потому youtubevideo больше нигде, кроме как в названии этого допполя не встречается.

А в будущей версии вообще ничего не будет показываться. Вы не понимаете? Есть документированные возможности, есть нет, которые остаются для совместимости во время переиндексации и перехода, если ссылки меняются. И соответственно ничего не документированное и не официальное не гарантирует что это останется. Вон была ошибка полгода и никто не знал и внимания не обращал. 

Ссылка на сообщение
Поделиться на других сайтах

Понимаю. Так как правильно изменить эту ссылку https://ntr-24.ru/index.php?do=xfsearch&xfname=youtubevideo&xf=RtUZJGWLkHk,, чтобы выводились все новости, у которых заполнено поле youtubevideo? Или такой возможности нет?

 

 

Изменено пользователем ntrtv
Ссылка на сообщение
Поделиться на других сайтах

В итоге сделал так: 

В .htaccess вернул строки (ЧПУ отключен на сайте):

RewriteRule ^xfsearch/(.*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [B,L]
RewriteRule ^xfsearch/(.*)/?$ index.php?do=xfsearch&xf=$1 [B,L]

В итоге ссылка вида https://ntr-24.ru/xfsearch/youtubevideo заработала.  На отдельной странице выводятся все материалы, в которых заполнено поле youtubevideo.

НО!!! При переходе на вторую страницу опять формируется ссылка: https://ntr-24.ru/index.php?cstart=2&do=xfsearch&xf=youtubevideo

Тут уж я ничего не придумывал, не сочинял. Скрипт сам ее генерирует.

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, ntrtv сказал:

В итоге сделал так: 

В .htaccess вернул строки (ЧПУ отключен на сайте):

RewriteRule ^xfsearch/(.*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [B,L]
RewriteRule ^xfsearch/(.*)/?$ index.php?do=xfsearch&xf=$1 [B,L]

В итоге ссылка вида https://ntr-24.ru/xfsearch/youtubevideo заработала.  На отдельной странице выводятся все материалы, в которых заполнено поле youtubevideo.

НО!!! При переходе на вторую страницу опять формируется ссылка: https://ntr-24.ru/index.php?cstart=2&do=xfsearch&xf=youtubevideo

Тут уж я ничего не придумывал, не сочинял. Скрипт сам ее генерирует.

Потому что чтобы работал ЧПУ нужно включить его в настройках, одно только возвращение .htaccess не поможет

Ссылка на сообщение
Поделиться на других сайтах

Я понимаю. Просто celsoft писал, что я сам откуда то придумал эту ссылку /index.php?do=xfsearch&xf=youtubevideo, но скрипт то сам ее генерирует.

Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, ntrtv сказал:

Я понимаю. Просто celsoft писал, что я сам откуда то придумал эту ссылку /index.php?do=xfsearch&xf=youtubevideo, но скрипт то сам ее генерирует.

Ссылка верная, а данные не совсем, там подразумевается вывод и названия доп поля и его значение. Но, в DLE есть код который ищет по всем доп полям с значением которое указано в &xf если там нет названия доп поля. По сути у вас ищет во всех доп полях значение youtubevideo, поэтому всё работает. Как будет в дальнейшем и уберут ли эту возможность - не знаю. Но сейчас работает то что вам нужно.

Изменено пользователем Gameer
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, ntrtv сказал:

писал, что я сам откуда то придумал эту ссылку /index.php?do=xfsearch&xf=youtubevideo, но скрипт то сам ее генерирует.

Где скрипт ее генерирует? Правила ЧПУ это не генерация ссылок без ЧПУ и не одно и то же что и ссылки без ЧПУ.

2 часа назад, ntrtv сказал:

В итоге ссылка вида https://ntr-24.ru/xfsearch/youtubevideo заработала.  На отдельной странице выводятся все материалы, в которых заполнено поле youtubevideo.

НО!!! При переходе на вторую страницу опять формируется ссылка: https://ntr-24.ru/index.php?cstart=2&do=xfsearch&xf=youtubevideo

Тут уж я ничего не придумывал, не сочинял. Скрипт сам ее генерирует.

Я вот наверное уже с десяток раз написал, что фильтр по доп. полям в DLE есть и всегда был только для доп. полей имеющих тип "перекрестные ссылки" у вас ваше поле такого типа не имеет. Используете просто поиск по полю, в БД где хранится имена полей и их значения. И вам находит банально по имени доп. поле, потому как в БД такая запись есть. Вещь не документированная, которая существует еще для совместимости с очень очень древними версиями DLE в области поиска, эта совместимость не будет вечной, она уже пару лет как не актуальна. А вы пытаетесь ее использовать даже не как для совместимости, а как свою какую то отдельную возможность. Это вы делаете зря, потому как в любой момент в будущих релизах ее может не стать и все. И вы будете думать что произошло и что это баг. А это таковым не будет являться. Понимаете? Для своих функций сайта нужно использовать либо стандартные возможности, либо писать свой плагин чтобы он оставался в системе в будущем.

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, celsoft сказал:

Где скрипт ее генерирует? Правила ЧПУ это не генерация ссылок без ЧПУ и не одно и то же что и ссылки без ЧПУ.

Так на сайте и генерирует. При навигации по страницам. :) Я понял, что баг.

 https://ibb.co/5M2sXy5

8 часов назад, celsoft сказал:

И вам находит банально по имени доп. поле, потому как в БД такая запись есть. Вещь не документированная, которая существует еще для совместимости с очень очень древними версиями DLE в области поиска, эта совместимость не будет вечной, она уже пару лет как не актуальна.

Так задокументируйте. Удобно же выводить все новости по допполю, не имеющему тип "перекрестные ссылки", если оно заполнено.

Изменено пользователем ntrtv
Ссылка на сообщение
Поделиться на других сайтах
25.06.2021 в 06:32, ntrtv сказал:

Так на сайте и генерирует. При навигации по страницам. :) Я понял, что баг.

Совершенно иную ссылку генерирует а не ту что вы написали. И причем здесь навигация?

 

25.06.2021 в 06:32, ntrtv сказал:

Так задокументируйте. Удобно же выводить все новости по допполю, не имеющему тип "перекрестные ссылки", если оно заполнено.

Нет. Прочитайте внимательно для чего и почему это выборка пока еще работает. Я выше это написал. Это не то что будет документировано, в будущем в скрипте вообще этого не будет. Для своих возможностей, нужно писать свои плагины, а не пользоваться временной обратной совместимостью.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...