Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

как запретить вывод в поиске сообщений из скрытых форумов

Проблемы с установкой или работой phpBB 3.1.x? Получите помощь здесь!
С 1 июля 2018 года phpBB Group прекращает поддержку phpBB версии 3.1.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.1 до 1 января 2019 года.
Подробнее: Окончание поддержки phpBB 3.1.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12449
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Татьяна5 »

БД перед конвертацией чистили? "Хвост" какой-то в правах висит, причём без названия вообще
Если нет расширений с особо важными данными, то удалите все расширения (из админки, с удалением данных) и почистите БД от остатков через STK

И ещё, что возвратит запрос

Код: Выделить всё

SELECT forum_id FROM phpbb_posts WHERE post_id = 791754
226 или другое число?

Отправлено спустя 3 минуты 47 секунд:
Все запросы отрабатывают корректно. Но сообщения выводятся. Что странно...
UltimaThule
phpBB 1.4.1
Сообщения: 40
Стаж: 7 лет 7 месяцев

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение UltimaThule »

БД перед конвертацией была пустая, только что установленный форум. Но конвертировали в нее данные из другого движка, из-за этого могли быть накладки. Не все данные полностью совпадали.

Запрос

Код: Выделить всё

SELECT forum_id FROM phpbb_posts WHERE post_id = 791754 
возвращает 0
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12449
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Татьяна5 »

UltimaThule писал(а): возвращает 0
Вот в этом и проблема

А запрос

Код: Выделить всё

SELECT forum_id FROM phpbb_topics WHERE topic_id = 49657
что возвратит? Там-то хоть 226?
UltimaThule писал(а): могли быть накладки
Точно так же через STK можно лишнее вычистить (тому инструменту всё равно, откуда взялись лишние данные)
UltimaThule
phpBB 1.4.1
Сообщения: 40
Стаж: 7 лет 7 месяцев

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение UltimaThule »

Да, этот

Код: Выделить всё

SELECT forum_id FROM phpbb_topics WHERE topic_id = 49657
возвращает 226

Спасибо, Татьяна!
Разбираюсь, как поставить STK.
Как сделаю, отпишусь по результатам.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12449
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Татьяна5 »

Только STK именно эту проблему не поправит, он данные там не добавит
Можно попробовать так (распаковать, загрузить в корень, запустить, удалить)
fix.zip
Только бекап перед запуском сделать не забудьте
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Sheer »

Татьяна5 писал(а): эту проблему
Проблема в том, что есть сообщения не приписанные к форумам?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12449
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Татьяна5 »

Sheer, да. В таблице сообщений forum_id = 0. В таблице тем, судя по всему, порядок
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Sheer »

Их есть у меня
Скриншот сделанный 2016-10-23 в 22.30.06.png
Отправлено спустя 30 секунд:
По идее должен найти.

Отправлено спустя 1 минуту 58 секунд:
Или в у всех сообщений forum_id = 0 Тогда вряд ли. Но нужно будет прикрутить к STK. Забавная трабла, чего только не бывает у наших админов... :D
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12449
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Татьяна5 »

Sheer писал(а): Но нужно будет прикрутить к STK
Только не в точности моим методом. Он вроде объявления может сломать (которые во всех форумах отображаются). Но в данном случае это неважно, там таких объявлений нет
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Sheer »

Sheer писал(а): По идее должен найти
Таки да, только ид тем придется назначать вручную...
Скриншот сделанный 2016-10-24 в 04.42.09.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
UltimaThule
phpBB 1.4.1
Сообщения: 40
Стаж: 7 лет 7 месяцев

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение UltimaThule »

Татьяна, Sheer, спасибо за помощь с моей проблемой. Докладываю. Исправить ее STK не удалось. Поставить этот инструмент получилось, а вот при попытке сделать хотя бы поиск неприкрепленных постов, STK у меня вылетал по таймауту. Ну то есть, не успевал отработать, видимо, из-за того, что база очень большая. У меня там за 15 лет топики и посты хранятся.

В общем пришлось делать вручную. Выбирала из таблицы phpbb_topics все id всех тем, где forum_id = "id закрытого раздела". Потом в таблице phpbb_posts всем сообщениям с указанными id топиков делала update нужного forum_id.

И так по каждому закрытому разделу.

В общем в итоге обошлась повторением двух операций:

Код: Выделить всё

SELECT * FROM `forum`.`phpbb_topics` where forum_id=xxx
UPDATE `forum`.`phpbb_posts` SET forum_id=xxx where topic_id=yyyy OR topic_id=zzzzz OR topic_id=qqq и т.д.
Отправлено спустя 7 минут 49 секунд:
Все сообщения из закрытых форумов теперь приписаны к этим форумам. Что делать с остальными - не знаю. Там у всех forum_id=0. С каждым разделом так возится пока времени нет. Наверное, пока оставлю, как есть. Потом доделаю. Сейчас есть более насущные проблемы: некоторые пользователи с кириллическими никами не могут нормально логиниться и рейтинговая система никак не хочет работать.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Sheer »

UltimaThule писал(а): STK у меня вылетал по таймауту
Ну еще бы, с таки размером таблицы posts
Можно попробовать изменить тайм-аут в настройках php, но это вряд ли...
Скажите, в таблице topiscтемы приписаны к форумам или там тоже по нулям? Если приписаны, можно сваять скриптик, который будет вылавливать ид форумов у тем и назначать их сообщениям с ид этих тем.
UltimaThule писал(а): некоторые пользователи с кириллическими никами не могут нормально логиниться
Известная проблема.
Это опять-таки исправляется STK. Инструменты поддержки --> Пересоздание очищенных имён пользователей
Кстати они и восстановить пароли не смогут скорее всего, поскольку наверняка в БД нет хешей адресов email.
STK -- Инструменты поддержки -- Обновление контрольных сумм email-адресов

Отправлено спустя 1 минуту 33 секунды:
UltimaThule писал(а): Выбирала из таблицы phpbb_topics все id всех тем, где forum_id = "id закрытого раздела"
А! таки значит есть. Тогда решаемо.

Отправлено спустя 14 минут 22 секунды:

Код: Выделить всё

<?php

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

$sql = 'SELECT forum_id, topic_id
    FROM ' . TOPICS_TABLE .' ORDER BY forum_id';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
    $fid = $row['forum_id'];
    $tid = $row['topic_id'];
    print "Topic id $tid Forum id $fid SQL --> ";
    $sql = 'UPDATE ' . POSTS_TABLE . ' SET forum_id = '. $fid . ' WHERE topic_id = ' . $tid;
    print "<b>$sql</b><br />";
    $db->sql_query($sql);

}
$db->sql_freeresult($result) 
хотя это тоже самое
Татьяна5 писал(а): Можно попробовать так (распаковать, загрузить в корень, запустить, удалить)

fix.zip
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12449
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2479 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Татьяна5 »

UltimaThule писал(а): пришлось делать вручную
То же самое, что в скрипте Re: как запретить вывод в поиске сообщений из скрытых форумов . Или у Sheer'а Re: как запретить вывод в поиске сообщений из скрытых форумов (разница только в количестве выводимого на экран)
Что скрипт-то не запустили?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение Sheer »

Татьяна5 писал(а): Что скрипт-то не запустили?
Стррашшшна было!!!
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
UltimaThule
phpBB 1.4.1
Сообщения: 40
Стаж: 7 лет 7 месяцев

Re: как запретить вывод в поиске сообщений из скрытых форумов

Сообщение UltimaThule »

Sheer писал(а): Стррашшшна было!!!
Нет, просто скрипт увидела только вчера, когда все уже было сделано.

Страшно другое. А именно - "Пересоздание очищенных имён пользователей". А вдруг они после этого вообще логиниться не смогут. Сейчас хотя бы латинские ники нормально входят. Боюсь как бы своими улучшениями я не усугубила проблему.
А пароли да, они действительно восстановить не могут. Причем вроде даже те, у кого ники латинские.

Скажите, пожалуйста, а вот эта функция STK
Инструменты поддержки --> Пересоздание очищенных имён пользователей
Кстати они и восстановить пароли не смогут скорее всего, поскольку наверняка в БД нет хешей адресов email.
STK -- Инструменты поддержки -- Обновление контрольных сумм email-адресов
она только с таблицей пользователей работает? Другие таблицы не задевает? Просто хочу попробовать ее все-таки. Но чтобы потом в случае чего всю базу форума не восстанавливать из бэкапа, хочу перед запуском сделать бэкап только тех таблиц, которые будут затронуты модификацией?

Вернуться в «Поддержка phpBB 3.1.x»