сайт на данный момент является архивом информации по форуму phpbb 3.0. объяснения и помощь больше не предоставляются. старый сайт

Белк на PhpBB 3.0.14

информация по этому форуму. bbcode, моды и прочее, проверенное Белком. (перенос данных продолжается...)

Сегодня на конференции было 44 посетителей :: 1 зарегистрированный, 0 скрытых, 1 бот и 42 гостей (основано на активности посетителей за последние 24 часа)




 [ 1 сообщение ] 
Автор Сообщение
Не в сети
  (Андрей)
Администратор
Аватара пользователя

Стаж: 5 месяцев 19 дней
Сообщения: 228
Откуда: здешние мы

Стиль сайта: subsilver2
Настоящее имя: Андрей


Posts merging - Склейка сообщений для phpbb 3.0.x

склеивание сообщений - это размещение комментариев от одного пользователя, идущие друг за другом в течении определённого интервала времени.

тест работы мода проводился на версии 3.0.14

Как выглядит процесс "склейки" - можно увидеть по скану:

Вложение:
scan_work.png
scan_work.png [ 5.14 КБ | Просмотров: 23 ] scan_work.png



Итак, поехали.

Сначала необходимо выполнить SQL-запрос:

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

INSERT INTO phpbb_config (config_name, config_value) VALUES('merge_interval', 0);
INSERT INTO phpbb_config (config_name, config_value) VALUES('merge_no_forums', 0);
INSERT INTO phpbb_config (config_name, config_value) VALUES('merge_no_topics', 0);
ALTER TABLE phpbb_posts ADD post_created INT(11) DEFAULT '0' NOT NULL AFTER post_time;


я создал на форуме hello-vitebsk установочный файл db_update.php и провёл запрос с его помощью. если вам так тоже удобнее - скачать пак, распаковать, загрузить в корень сайта (где файл config.php) и сделать запрос по адресу

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

http://ваш форум/db_update.php


Вложение:
db_update.rar [1.32 КБ]
Скачиваний: 1


Установка через файл проходит успешно, проверка работоспособности форума после запроса не показала никаких ошибок:

Вложение:
sql.png
sql.png [ 12.15 КБ | Просмотров: 23 ] sql.png



Теперь необходимо загрузить файлы мода:

скачать из архива сайта

распаковать, содержимое папки root загрузить в корень сайта (где файл config.php)


Теперь начинаем править файлы:

Открыть viewtopic.php

Найти

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

      'post_time'         => $row['post_time'],


Вставить после найденного

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

      'post_created'      => $row['post_created'],


Найти

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

'POST_DATE'         => $user->format_date($row['post_time'], false, ($view == 'print') ? true : false),


Заменить найденное на

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

'POST_DATE'         => (!$row['post_created']) ? $user->format_date($row['post_time'], false, ($view == 'print') ? true : false) : $user->format_date($row['post_created']),


Открыть posting.php

Найти

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

   $message_md5 = md5($message_parser->message);


Вставить после найденного

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

   $addon_for_merge = $message_parser->message;


Найти (показана часть строки)

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

         $redirect_url = submit_post($mode, $post_data['post_subject'], $post_author_name, $post_data['topic_type'],


Вставить перед найденным

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

         include($phpbb_root_path . 'includes/posts_merging.' . $phpEx);


Открыть includes/acp/acp_board.php

Найти

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

      $user->add_lang('acp/board');


Вставить после найденного

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

      $user->add_lang('mods/posts_merging');


Найти

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

                  'flood_interval'      => array('lang' => 'FLOOD_INTERVAL',      'validate' => 'int',   'type' => 'text:3:10', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),


Вставить после найденного

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

                  'merge_interval'      => array('lang' => 'MERGE_INTERVAL',      'validate' => 'int',   'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['HOURS']),
                  'merge_no_forums'      => array('lang' => 'MERGE_NO_FORUMS',      'validate' => 'string',   'type' => 'text:5:255', 'explain' => true),
                  'merge_no_topics'      => array('lang' => 'MERGE_NO_TOPICS',      'validate' => 'string',   'type' => 'text:5:255', 'explain' => true),


Всё. закончили. Если всё прошло успешно - идём в админку и настраиваем наш мод:

Административный раздел - Общие - Размещение сообщений.

в поле Интервал выставите значение времени, иначе мод не будет работать.

После этого проверяем работу мода.

изменение внешнего вывода надписи "сообщение добавлено..."
редактировать внешний вид можно в языковом файле.
language/ru/mods/posts_merging.php

строка

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

      'MERGE_SEPARATOR'      => "\n\n[size=85][color=green]%s спустя %s:[/color][/size]\n",


size=85 - размер шрифта
color=green - цвет шрифта

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

вывод возможности для пользователя "не склеивать"
Вложение:
posting_no.png
posting_no.png [ 12.34 КБ | Просмотров: 23 ] posting_no.png



Открыть includes/post_merging.php
Найти

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

   $merge = false;
   $merge_interval = intval($config['merge_interval']) * 3600;
   if (($current_time - $merge_post_data['topic_last_post_time']) < $merge_interval)
   {
      $merge = true;
   }


Вставить после найденного

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

   $do_not_merge=request_var('do_not_merge',false);
   if($do_not_merge) $merge=false;


для стиля subsilver2:

Открыть styles/ваш стиль/template/posting_body.html

Найти

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

      <!-- IF S_SIG_ALLOWED -->
         <tr>
            <td><input type="checkbox" class="radio" name="attach_sig"{S_SIGNATURE_CHECKED} /></td>
            <td class="gen">{L_ATTACH_SIG}</td>
         </tr>
      <!-- ENDIF -->


Вставить после найденного

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

         <tr>
            <td><input type="checkbox" class="radio" name="do_not_merge" /></td>
            <td class="gen">{L_DO_NOT_MERGE}</td>
         </tr>


для стиля prosilver:

Открыть styles/ваш стиль/template/posting_editor.html

Найти

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

   <div class="panel bg3" id="options-panel">
      <div class="inner"><span class="corners-top"><span></span></span>

      <fieldset class="fields1">


Вставить после найденного

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

             <div><label for="do_not_merge"><input type="checkbox" name="do_not_merge" id="do_not_merge"{S_DO_NOT_MERGE} /> {L_DO_NOT_MERGE}</label></div>


Открыть language/ru/common.php после (языковые правки)

Найти

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

   'YOU_NO_NEW_PM'      => 'У вас нет новых личных сообщений.',


Вставить после найденного

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

  'DO_NOT_MERGE' => 'Не склеивать с предыдущим',



информация взята здесь и здесь.

"не склеивать" в быстром ответе
Открыть viewtopic.php

Найти

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

// Output the posts
$first_unread = $post_unread = false;
for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)


Вставить перед найденным

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

include($phpbb_root_path . 'includes/posts_merging.' . $phpEx);


Открыть (для subsilver2) quickreply_editor.html

Найти (часть строки)

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

style="width: 98%;">{MESSAGE}</textarea>


Вставить после найденного

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

<br /><input type="checkbox" class="radio" name="do_not_merge" />&nbsp;{L_DO_NOT_MERGE}


Открыть (для prosilver) quickreply_editor.html

Найти

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

<div style="width:99%;"><textarea style="height: 9em;" name="message" rows="7" cols="76" tabindex="3" class="inputbox"></textarea>


Вставить после найденного

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

<br /><input type="checkbox" class="radio" name="do_not_merge" />&nbsp;{L_DO_NOT_MERGE}






трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

Кто сейчас на конференции:

Всего посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (63) здесь было 23 май 2026, 12:35

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Часовой пояс: UTC + 3 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

cron

Текущее время: 25 июн 2026, 17:14

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB.