VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Коллеги, подскажите пожалуйста, как изменить количество похожих тем? Дефолтное значение - 5, а мне надо выводить 7 или даже 10 и как это сделать так и не нашел.
на сколько помню, где то в функции воблы, которая собсно и определяет "похожа" тема или нет, на ту, что в данный момент просматривает юзер
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,802
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20310
Репутация в разделе: 8463
1
да собсно...
fetch_similar_threads()
в файле functions_search.php
@Unlock
Продвинутый
Join Date: Jun 2009
Posts: 379
Версия vB: 3.8.2
Reputation:
Опытный 31
Репутация в разделе: 11
0
Спасибо! Да, там в двух местах есть LIMIT 5, заменил на 10, перестроил похожие темы и всё сработало.
Unlock добавил 27.10.2019 в 10:16
Всё было хорошо, пока не полетели ошибки:
Invalid SQL:
Quote:
SELECT thread.threadid, thread.forumid, thread.title, thread.prefixid, thread.taglist, postusername, postuserid,
thread.lastpost, thread.replycount,
forum.title AS forumtitle
,post.pagetext AS preview
, NOT ISNULL(subscribethread.subscribethreadid) AS issubscribed
FROM thread AS thread
INNER JOIN forum AS forum ON (forum.forumid = thread.forumid)
LEFT JOIN post AS post ON (post.postid = thread.firstpostid)
LEFT JOIN subscribethread AS subscribethread ON (subscribethread.threadid = thread.threadid AND subscribethread.userid = 1 AND canview = 1)
WHERE thread.threadid IN (3018, 19018, 313, 1650, 22591, 20324, 7761, 5330, 5296,) AND thread.visible = 1
ORDER BY lastpost DESC;
Ошибка MySQL : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND thread.visible = 1
Откатил изменения по похожим темам и ошибка ушла. Помогите пожалуйста понять, почему при увеличении числа похожих тем, началась такая вот фигня?
Last edited by Unlock : 10-27-2019 at 02:16 PM.
Reason: Добавлено сообщение
Luvilla
Гость
Posts: n/a
О!
WHERE thread.threadid IN (3018, 19018, 313, 1650, 22591, 20324, 7761, 5330, 5296,)
там не должно быть запятой (после запятой должно быть число и сразу скобка)
в "список похожих" попала какая-то "поломанная" тема
@Unlock
Продвинутый
Join Date: Jun 2009
Posts: 379
Версия vB: 3.8.2
Reputation:
Опытный 31
Репутация в разделе: 11
0
Я смотрю все ошибки, содержат запятую после последней темы:
Quote:
WHERE thread.threadid IN (20288, 17390, 2508, 17643, 18247, 10052, 18890, 14990, )
WHERE thread.threadid IN (24808, 13541, 17558, 13422, 22950, 24636, 2442, 23286, )
WHERE thread.threadid IN (3018, 19018, 313, 1650, 22591, 20324, 7761, 5330, 5296,)
WHERE thread.threadid IN (23479, 16452, 21760, 12855, 23700, 16008, 21275, 2121, )
Непонятно только, почему в некоторых случаях возникает эта запятая. Про поломанную тему не очень понял, там какой-то рандом и ошибок то не было, пока выводилось 5 похожих тем.
В самом коде функции похожих тем есть такое:
Quote:
HERE MATCH(thread.title) AGAINST ('$safetitle')
AND thread.open <> 10
" . iif($threadid, " AND thread.threadid <> $threadid") . "
$hook_query_where
LIMIT 5
Может здесь 10 надо на что-то поменять, не силен я в PHP и запросам в базе. :(
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,802
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20310
Репутация в разделе: 8463
0
дело не в "поломаной" теме =)
скрипт (функция) которая ищет похожие темы, заточена именно на 5 (пять) "похожих"
я когда писал код поиска (по образу вобловского) для файловика, тоже столкнулся с этим, хотел увеличить кол-во результатов поиска "похожих" файлов
решение скорей всего здесь (точно уже не помню)
PHP Code:
while ($thread = $vbulletin->db->fetch_array($threads)) { // this is an arbitrary number but items less then 4 - 5 seem to be rather unrelated if ($thread['score'] > 4) // <= вот здесь нужно поставить не 4, а 9 { $similarthreads .= ", $thread[threadid]"; } }
см. коммент в куске кода, так же, разумеется, нужно изменить в запросах в этой функции LIMIT 5, на LIMIT 10
но результаты таких изменений могут "удивить"
т.е. в результатах может оказаться вообще не "похожие" темы, а совсем даже наоборот, иначе почему разрабы не вынесли это в настройки?
хотя... что стоит попробовать? =)
Luvilla
Гость
Posts: n/a
Quote:
Originally Posted by kerk
т.е. в результатах может оказаться вообще не "похожие" темы, а совсем даже наоборот, иначе почему разрабы не вынесли это в настройки?
Нет, не окажутся
если совсем нет "похожих, то блок не выводится
если есть - выводится столько, сколько есть
про это самое ($thread['score'] я расписывала здесь: https://vbsupport.ru/forum/showthread.php?t=40456
эту хрень лучше не трогать, и она никак не связана с количеством выводимых "похожих", это критерий поиска
жаль, скрины поумирали... найду - перезалью, или новых понаделяю
ну мейби... не спорю, давно не интересовался вопросом =)
но на ошибку БД, описанную выше, как раз это число и влияет
опять же, это предположение, вполне возможно, что то другое
но по описанию и тексту ошибки видно, что в запросе присутствует 9 ID-шников тем, когда (и если) в коде запроса лимит 5 заменили на 10, а когда по умолчанию (лимит 5) и score > 4, то в результат вылезет только 5 ID и без "лишней" запятой
тестировать и искать причину лениво =)