Advanced Posts Merging
-
- phpBB Plus
- Сообщения: 442
- Стаж: 20 лет 11 месяцев
- Откуда: КПРФ ;)
-
- phpBB 1.4.2
- Сообщения: 52
- Стаж: 19 лет 9 месяцев
-
- phpBB 1.4.2
- Сообщения: 52
- Стаж: 19 лет 9 месяцев
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
-
- phpBB 1.4.0
- Сообщения: 37
- Стаж: 19 лет 9 месяцев
-
- phpBB 2.0.0
- Сообщения: 220
- Стаж: 19 лет 11 месяцев
- Откуда: Архангельск
Я прикрутил No Flood Control For Mods And Admins:
Код: Выделить всё
--- functions_post.php.1 2005-08-12 13:09:13.000000000 +0400
+++ functions_post.php 2005-08-12 13:08:41.000000000 +0400
@@ -36,11 +36,18 @@
function submit_merged_post($post_id, $forum_id, $subject, $message, &$return_message, &$return_meta)
{
global $board_config, $db, $lang, $phpEx, $phpbb_root_path;
+ global $userdata;
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_merge.' . $phpEx);
include($phpbb_root_path . 'includes/functions_search.'.$phpEx);
$current_time = time();
+ //
+ // MOD: No Flood Control For Mods And Admins by Berend Dekens
+ // Retreive authentication info to determine if this user has moderator status
+ //
+ $is_auth = auth(AUTH_ALL, $forum_id, $userdata);
+ $is_mod = $is_auth['auth_mod'];
// Check message
if ( empty($message) )
@@ -57,7 +64,7 @@
$last_post_data = $db->sql_fetchrow($result);
// Flood control
- if ( ($current_time - intval($last_post_data['post_time'])) < intval($board_config['merge_flood_interval']) )
+ if (( ($current_time - intval($last_post_data['post_time'])) < intval($board_config['merge_flood_interval']) ) && (!$is_mod))
{
message_die(GENERAL_MESSAGE, $lang['Flood_Error']);
}
@@ -316,8 +323,14 @@
include($phpbb_root_path . 'includes/functions_search.'.$phpEx);
$current_time = time();
+ //
+ // MOD: No Flood Control For Mods And Admins by Berend Dekens
+ // Retreive authentication info to determine if this user has moderator status
+ //
+ $is_auth = auth(AUTH_ALL, $forum_id, $userdata);
+ $is_mod = $is_auth['auth_mod'];
- if ($mode == 'newtopic' || $mode == 'reply' || $mode == 'editpost')
+ if (($mode == 'newtopic' || $mode == 'reply' || $mode == 'editpost') && (!$is_mod))
{
//
// Flood control
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
-
- phpBB 2.0.0
- Сообщения: 220
- Стаж: 19 лет 11 месяцев
- Откуда: Архангельск
Есть вопрос. Advanced Posts Merging + File Attachment Mod.
Программа максимум: не терять вложения при слиянии.
Программа минимум: не сливать сообщение, если в нём есть вложение.
Надо где-то в этом месте проверить, есть ли вложение. Как проверить?
Добавлено спустя 56 минут 28 секунд:
В общем, кое-что придумал. Не объединять с предыдущим постом, если в нём есть вложение. Для этого запросить ещё и поле post_attachment из таблицы постов и сравнить его с нулём.
Добавлено спустя 8 минут 5 секунд:
Хех! А это программа максимум
(addon из Advanced Posts Merging)
Программа максимум: не терять вложения при слиянии.
Программа минимум: не сливать сообщение, если в нём есть вложение.
Надо где-то в этом месте проверить, есть ли вложение. Как проверить?
Код: Выделить всё
$merge = false;
$time2merge = intval($board_config['time_to_merge']) * 3600;
if ( ($mode == 'reply') && ($userdata['user_id'] != ANONYMOUS) )
{
В общем, кое-что придумал. Не объединять с предыдущим постом, если в нём есть вложение. Для этого запросить ещё и поле post_attachment из таблицы постов и сравнить его с нулём.
Код: Выделить всё
--- posting.php (revision 85)
+++ posting.php (working copy)
@@ -602,15 +602,16 @@
if ( ($mode == 'reply') && ($userdata['user_id'] != ANONYMOUS) )
{
- $sql = "SELECT post_id, poster_id, post_created FROM " . POSTS_TABLE . " WHERE topic_id = $topic_id ORDER BY post_time DESC LIMIT 1";
+ $sql = "SELECT post_id, poster_id, post_created, post_attachment FROM " . POSTS_TABLE . " WHERE topic_id = $topic_id ORDER BY post_time DESC LIMIT 1";
$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, 'Could not obtain last post information', '', __LINE__, __FILE__, $sql);
$last_post_data = $db->sql_fetchrow($result);
$last_post_id = $last_post_data['post_id'];
$last_poster = $last_post_data['poster_id'];
$last_post_created = $last_post_data['post_created'];
+ $last_post_attachment = $last_post_data['post_attachment'];
- if ( ($last_poster == $userdata['user_id']) && ((time() - $last_post_created) < $time2merge) )
+ if ( ($last_poster == $userdata['user_id']) && ((time() - $last_post_created) < $time2merge) && ($last_post_attachment == 0) )
{
$merge = true;
}
Хех! А это программа максимум

Код: Выделить всё
#
#-----[ OPEN ]------------------------------------------
#
posting.php
#
#-----[ FIND ]------------------------------------------
#
$attachment_mod['posting']->insert_attachment($post_id);
#
#-----[ REPLACE WITH ]------------------------------------------
#
$attachment_mod['posting']->insert_attachment( ($merge) ? $last_post_id : $post_id );
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
-
- phpBB 2.0.0
- Сообщения: 220
- Стаж: 19 лет 11 месяцев
- Откуда: Архангельск
Не заметилXpert писал(а):И про флуд-контроль в теме есть, и про аттач. Вам свое милее?

Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
-
- phpBB 2.0.1
- Сообщения: 297
- Стаж: 20 лет
У меня на форуме возникла подребность в склейке сообщений. Флудеры достали.
Так вот в чём вопрос:
В теме несколько постов одного пользователя идут с вложенными файлами.
Если я установлю мод склеивания. То как мод склеит посты с вложениями?
Так вот в чём вопрос:
В теме несколько постов одного пользователя идут с вложенными файлами.
Если я установлю мод склеивания. То как мод склеит посты с вложениями?
Терпение и труд - всё перетрут
Я на этом форуме уже чуть больше года.. спасибо вам за помощь!
Я на этом форуме уже чуть больше года.. спасибо вам за помощь!
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
-
- phpBB 2.0.1
- Сообщения: 297
- Стаж: 20 лет
А количество постов у пользователей измениться?
Ведь тогда те кто написали 2 поста подряд получили +2 к общему количеству. Мод сделает это в один пост, а одщее количество постов у пользователей?
Xpert, просто хотелось бы чтобы модификация прошла как можно безболезненно.
Ведь тогда те кто написали 2 поста подряд получили +2 к общему количеству. Мод сделает это в один пост, а одщее количество постов у пользователей?

Xpert, просто хотелось бы чтобы модификация прошла как можно безболезненно.
Терпение и труд - всё перетрут
Я на этом форуме уже чуть больше года.. спасибо вам за помощь!
Я на этом форуме уже чуть больше года.. спасибо вам за помощь!
-
- phpBB 2.0.0
- Сообщения: 220
- Стаж: 19 лет 11 месяцев
- Откуда: Архангельск
IGO писал(а):В теме несколько постов одного пользователя идут с вложенными файлами.
А как быть с ограничением числа вложений в одном сообщении?Xpert писал(а):Обычно склеит.
Можно, конечно, исследовать этот вопрос, но это утомительно, поэтому-то я и сделал так, чтоб не приклеивать в предыдущему сообщению, если в нём есть вложение.
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
-
- phpBB 2.0.1
- Сообщения: 297
- Стаж: 20 лет
-
- phpBB 2.0.0
- Сообщения: 220
- Стаж: 19 лет 11 месяцев
- Откуда: Архангельск
posting.phpIGO писал(а):А как ты это сделал?Гога писал(а):Можно, конечно, исследовать этот вопрос, но это утомительно, поэтому-то я и сделал так, чтоб не приклеивать в предыдущему сообщению, если в нём есть вложение.
FIND
REPLACE WITH$sql = "SELECT post_id, poster_id, post_created FROM " . POSTS_TABLE . " WHERE topic_id = $topic_id ORDER BY post_time DESC LIMIT 1";
FIND$sql = "SELECT post_id, poster_id, post_created, post_attachment FROM " . POSTS_TABLE . " WHERE topic_id = $topic_id ORDER BY post_time DESC LIMIT 1";
AFTER, ADD$last_post_created = $last_post_data['post_created'];
FIND$last_post_attachment = $last_post_data['post_attachment'];
REPLACE WITHif ( ($last_poster == $userdata['user_id']) && ((time() - $last_post_created) < $time2merge) )
if ( ($last_poster == $userdata['user_id']) && ((time() - $last_post_created) < $time2merge) && ($last_post_attachment == 0) )
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.