Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Удаление части сообщения по скрипту
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
-
- phpBB 1.4.3
- Сообщения: 83
- Стаж: 10 лет 8 месяцев
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
- Контактная информация:
Удаление части сообщения по скрипту
Доброго дня! Недавно появилась такая идея - сделать на форуме бб-код для оффтопа, а также скрипт, который по крону осуществлял бы поиск среди сообщений этого тега и удалял бы его спустя какое-то фиксированное время. Как бы вы посоветовали организовать данный скрипт (прямая выборка из БД или есть какие-то спецсредства форума) и что я должен знать прежде, чем начну писать его?
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Удаление части сообщения по скрипту
Нет.alaon писал(а):или есть какие-то спецсредства форума
php и MySQLalaon писал(а):что я должен знать
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
- владимир1983
- phpBB 3.2.6
- Сообщения: 5954
- Стаж: 13 лет 11 месяцев
- Откуда: Сергиев Посад
- Благодарил (а): 374 раза
- Поблагодарили: 727 раз
- Контактная информация:
Re: Удаление части сообщения по скрипту
В мусор.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Нет человека - нет проблемы. (c)
-
- phpBB 1.4.3
- Сообщения: 83
- Стаж: 10 лет 8 месяцев
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
- Контактная информация:
Re: Удаление части сообщения по скрипту
При всём уважении лично к вам, хотел обсудить эту тему глубже, выложить некоторые скромные наработки, но таки не буду, раз в мусор. Вообще, лёгкая у вас рука.владимир1983 писал(а):В мусор.
Представление имею, а вот логику работы форума не знаю. Я предположил, что тупое удаление текста прямо из БД может оказать какое-либо негативное влияние на движок, потому и спросил. В конце концов, если тегом отмечено сообщение целиком, то оно улетит с БД, а индексы? Что нужно скорректировать перед удалением? Или лучше удалить функцией движка? Если да, как? Но обсуждение не состоится, поскольку см. выше. За сим прощаюсь.Sheer писал(а):php и MySQL
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Удаление части сообщения по скрипту
alaon, используйте родную функцию phpBB3
где первым параметром (
ЗЫ. С мусором погодим...
Код: Выделить всё
function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $update_message = true, $update_search_index = true)
$mode
) выступает значение 'edit'
, а в качестве элемента массива $data['message']
отредактированный текст сообщения. Со структурой массива можно ознакомиться в файле posting.php - со строки 1091. Там же пример обращения к функции
Код: Выделить всё
// The last parameter tells submit_post if search indexer has to be run
$redirect_url = submit_post($mode, $post_data['post_subject'], $post_author_name, $post_data['topic_type'], $poll, $data, $update_message, ($update_message || $update_subject) ? true : false);
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
- rxu
- phpBB Guru
- Сообщения: 16313
- Стаж: 17 лет 10 месяцев
- Откуда: Красноярск
- Благодарил (а): 533 раза
- Поблагодарили: 2119 раз
- Контактная информация:
Re: Удаление части сообщения по скрипту
Я не представляю себе редактирование сообщений по крону, ибо это настолько ресурсозатратно, что не имеет смысла.
Крону придется каждый раз отбирать все посты, вырезать нужный кусок, и записывать их обратно. Если постов штук 100 - одно дело. А если 100 000 - вах, вах... без Deep Blue не обойтись.
Крону придется каждый раз отбирать все посты, вырезать нужный кусок, и записывать их обратно. Если постов штук 100 - одно дело. А если 100 000 - вах, вах... без Deep Blue не обойтись.
- xisp
- phpBB 3.0.0 RC7
- Сообщения: 1798
- Стаж: 11 лет 10 месяцев
- Благодарил (а): 152 раза
- Поблагодарили: 215 раз
- Забанен: Бессрочно
Re: Удаление части сообщения по скрипту
Простая колонка в БД с пометкой содержания в этом посте ббкода решит эту проблему чуть менее, чем полностью.rxu писал(а):Крону придется каждый раз отбирать все посты,
phpBBex
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Удаление части сообщения по скрипту
Можно также заставить по крону просматривать сообщения только за этот период времени. Например, от текущего минус двое суток.alaon писал(а):удалял бы его спустя какое-то фиксированное время
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
- rxu
- phpBB Guru
- Сообщения: 16313
- Стаж: 17 лет 10 месяцев
- Откуда: Красноярск
- Благодарил (а): 533 раза
- Поблагодарили: 2119 раз
- Контактная информация:
Re: Удаление части сообщения по скрипту
Эту проблему вернет обратно редактирование поста, чуть более, чем полностью.xisp писал(а):Простая колонка в БД с пометкой содержания в этом посте ббкода решит эту проблему чуть менее, чем полностью.
- xisp
- phpBB 3.0.0 RC7
- Сообщения: 1798
- Стаж: 11 лет 10 месяцев
- Благодарил (а): 152 раза
- Поблагодарили: 215 раз
- Забанен: Бессрочно
Re: Удаление части сообщения по скрипту
При пересохранении само собой нужно будет перепроверять наличие ббкода и присваивать/ удалять метку о наличии этого ббкода.rxu писал(а):Эту проблему вернет обратно редактирование поста,
phpBBex
- rxu
- phpBB Guru
- Сообщения: 16313
- Стаж: 17 лет 10 месяцев
- Откуда: Красноярск
- Благодарил (а): 533 раза
- Поблагодарили: 2119 раз
- Контактная информация:
Re: Удаление части сообщения по скрипту
И заодно приписать скрипт для синхронизации меток с содержимым постов, а то всякое бывает.
Как не изворачивайся, для решения такой задачи придется изобретать нагромождение разных трюков, которое в итоге все равно особо не разгрузит сервер, при наличии более-менее значимого числа сообщений.
Добавлено спустя 11 минут 31 секунду:
Хотя, если просто ограничить выборку определенным числом постов за 1 проход крона (например, 10), может быть и нормально.
Как не изворачивайся, для решения такой задачи придется изобретать нагромождение разных трюков, которое в итоге все равно особо не разгрузит сервер, при наличии более-менее значимого числа сообщений.
Добавлено спустя 11 минут 31 секунду:
Хотя, если просто ограничить выборку определенным числом постов за 1 проход крона (например, 10), может быть и нормально.
-
- phpBB 1.4.3
- Сообщения: 83
- Стаж: 10 лет 8 месяцев
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
- Контактная информация:
Re: Удаление части сообщения по скрипту
Всем спасибо за ответы, вы дали много материала для размышления.
Кстати, да, сам я не успел додуматься. Определённо, это разумный вариант, позволяющий распределить нагрузку во времени. Однако, я бы улучшил и этот вариант - делаем не колонку, а отдельную табличку, в которую вписываем идентификаторы сообщений, в которые помещён бб-код. Крон инициирует исполнение php-файла, который берёт информацию с этой колонки и делает выборку по данным id, после чего очищает таблицу. Насколько я припоминаю, это сильно ускорит процесс благодаря более разумной выборке в SELECT. Хотя могу ошибаться. Думаю, стоит сравнить оба варианта на предмет производительности. О результатах отпишу.xisp писал(а):Простая колонка в БД с пометкой
Лурк повсюду ) Будем проверять в функции отправки поста в БД.rxu писал(а):чуть более, чем полностью.
А я думаю, если определить для данных целей отдельную таблицу в БД, то ничего синхронизировать не придётся. Если только не повлиять на БД чем-то кардинальным, вроде STK или что там ещё есть... Но после такого рассинхронизация меток - самое безобидное, что может произойти, имхо.rxu писал(а):приписать скрипт для синхронизации меток с содержимым постов
- c61
- phpBB 2.0.6
- Сообщения: 506
- Стаж: 11 лет 3 месяца
- Благодарил (а): 42 раза
- Поблагодарили: 251 раз
- Контактная информация:
Re: Удаление части сообщения по скрипту
Зачем усложнять решение данной задачи, используя cron ? Намного проще через хук. И там уже разбираться, что делать и надо ли вообще что-то делать ) В ББ-код включается невидимый комментарий, время и дата есть в шапке поста, и тд и тп. Алгоритм прозрачен.
- rxu
- phpBB Guru
- Сообщения: 16313
- Стаж: 17 лет 10 месяцев
- Откуда: Красноярск
- Благодарил (а): 533 раза
- Поблагодарили: 2119 раз
- Контактная информация:
Re: Удаление части сообщения по скрипту
А еще проще - при открытии страницы темы с постами, всё одно парсится текст каждого. Хотя, тогда страница утяжелится запросами на запись в БД, но только при наличии нужных постов.
- xisp
- phpBB 3.0.0 RC7
- Сообщения: 1798
- Стаж: 11 лет 10 месяцев
- Благодарил (а): 152 раза
- Поблагодарили: 215 раз
- Забанен: Бессрочно
Re: Удаление части сообщения по скрипту
Индексы уравняют эти варианты. Хотя нет. В случаи отдельной таблицы придётся опрашивать две таблицы, а не одну.alaon писал(а):Насколько я припоминаю, это сильно ускорит процесс благодаря более разумной выборке в SELECT
Тогда можно вообще не записывать изменения, а просто удалять текст. Пускай в БД лежит, но не отображается. Проблема может быть только если запустить форум без этой модификации- все "удалённые" участки всплывут.rxu писал(а):А еще проще - при открытии страницы темы с постами, всё одно парсится текст каждого. Хотя, тогда страница утяжелится запросами на запись в БД, но только при наличии нужных постов.
phpBBex