Redactor Опубликовано 5 Ноября 2009 Жалоба Поделиться Опубликовано 5 Ноября 2009 Добрый деньНа моем форуме темы, еще не прошедшие модерацию, отдаются в результатах поиска. Подскажите, как побороть? Спасибо. IPB 1.3 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 6 Ноября 2009 Жалоба Поделиться Опубликовано 6 Ноября 2009 Нужно шерстить source/Search.php на предмет, в каком запросе не проверяется поле approved таблицы ibf_topics Можно поподробней, при каком поиске темы находятся поиском? Новых, активных, по слову, по автору, по слову в заголовке? Я у себя проверю... ________________UPD: нашел у себя: при поиске по слову (фуллтекст у меня отключен). Сейчас исправлю и напишу здесь что править. _______________UPD2:search_mysql_man.phpНайти: $posts_query = "SELECT p.pid ". "FROM ibf_posts p ". "WHERE $posts_datecut p.forum_id IN ($forums)". " AND p.queued <> 1". " $posts_name AND ($post_like)";и заменить на: $posts_query = "SELECT p.pid ". "FROM ibf_posts p ". "LEFT JOIN ibf_topics t ON (p.topic_id=t.tid)". "WHERE $posts_datecut p.forum_id IN ($forums)". " AND p.queued <> 1 AND t.approved = 1". " $posts_name AND ($post_like)"; search_mysql_ftext.phpНайти: $posts_query = "SELECT p.pid ". "FROM ibf_posts p ". "WHERE $posts_datecut p.forum_id IN ($forums)". " AND p.queued <> 1". " $posts_name AND MATCH(post) AGAINST ('".trim($keywords)."' $boolean)";и заменить на: $posts_query = "SELECT p.pid ". "FROM ibf_posts p ". "LEFT JOIN ibf_topics t ON (p.topic_id=t.tid)". "WHERE $posts_datecut p.forum_id IN ($forums)". " AND p.queued <> 1 AND t.approved = 1". " $posts_name AND MATCH(post) AGAINST ('".trim($keywords)."' $boolean)"; Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Redactor Опубликовано 8 Ноября 2009 Автор Жалоба Поделиться Опубликовано 8 Ноября 2009 Огромное спасибо!А как бы еще запретить отображать посты из тем на модерации, в результатах поиска сообщений по юзеру. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 8 Ноября 2009 Жалоба Поделиться Опубликовано 8 Ноября 2009 У меня очень сильно модифицирован файл Search.php, поэтому инструкцию могу дать только приблизительную: В функции show_results() найти примерно такой код: while ( $row = $DB->fetch_row($show_res_query) ) { $row['keywords'] = $url_words; $row['post_date'] = $std->get_date( $row['post_date'],'LONG' );Перед ним длинный sql-запрос.В нем условиеWHERE p.pid IN(0{$posts}0)заменить на WHERE p.pid IN(0{$posts}0) AND t.approved = 1 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Redactor Опубликовано 9 Ноября 2009 Автор Жалоба Поделиться Опубликовано 9 Ноября 2009 помогло, спасибо Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.