Advanced Posts Merging
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
-
- phpBB 1.4.0
- Сообщения: 32
- Стаж: 19 лет 3 месяца
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
-
- phpBB 1.4.0
- Сообщения: 32
- Стаж: 19 лет 3 месяца
И вчем этот интервал? Также в часах?
Добавлено спустя 55 секунд:
Добавлено спустя 4 минуты 57 секунд:
Сообщение которое предположим было день назад от меня склеилось с моим, затем редактирую свое сообщение, убиваю последние строки типа "добавлено спустя", и этот пост лезет на самый наверх форума и там остается, хотя по дате последнее сообщение раньше многих остальных сообщений. Как победить?
Добавлено спустя 55 секунд:
А вот нет полей в админке, в БД есть.VVVas писал(а):Либо поля есть, либо вы не установили мод.
Добавлено спустя 4 минуты 57 секунд:
Сообщение которое предположим было день назад от меня склеилось с моим, затем редактирую свое сообщение, убиваю последние строки типа "добавлено спустя", и этот пост лезет на самый наверх форума и там остается, хотя по дате последнее сообщение раньше многих остальных сообщений. Как победить?
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
Где вы их ищете?LOSS писал(а):А вот нет полей в админке
В объяснении все написано...LOSS писал(а):И вчем этот интервал? Также в часах?
Последний раз редактировалось Xpert 01.04.2006 14:57, всего редактировалось 1 раз.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB 1.4.0
- Сообщения: 32
- Стаж: 19 лет 3 месяца
-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 19 лет
Код: Выделить всё
#
#-----[ SQL ]------------------------------------------
#
INSERT INTO phpbb_config (config_name, config_value) VALUES('time_to_merge', 0);
INSERT INTO phpbb_config (config_name, config_value) VALUES('merge_flood_interval', 0);

Надо отредактировать строку или что

Код: Выделить всё
UPDATE phpbb_posts SET post_created = post_time;

-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 19 лет
-
- phpBB 1.2.0
- Сообщения: 10
- Стаж: 19 лет 5 месяцев
-
- phpBB 1.0.0
- Сообщения: 4
- Стаж: 19 лет 1 месяц
Ну что тут скажешь: Установил этот мод. Прочел всю тему, от и до. Но сообщения как не склеивались, так и не склеиваются. Только добавляются. Ошибок никаких не выдается.
НО... поднимался вопрос о скобке
#
#-----[ FIND ]------------------------------------------
#
submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
} <----------- лишняя скобка
else
{
$error_msg = '';
submit_merged_post($last_post_id, $forum_id, $subject, $message, $return_message, $return_meta);
}
#
Если вставить код со скобкой выдает ошибку:
Parse error: syntax error, unexpected T_CASE in w:\home\forum\www\posting.php on line 601
Если удалить скобку, ошибки нет, но и нет склеивания.
Фрагмент кода с номерами строк 600-602:
switch ( $mode )
{
case 'editpost':
case 'newtopic':
case 'reply':
$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : '';
$poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : '';
$poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : '';
$bbcode_uid = '';
$merge = false;
$time2merge = intval($board_config['time_to_merge']) * 60;
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";
$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'];
if ( ($last_poster == $userdata['user_id']) && ((time() - $last_post_created) < $time2merge))
{
$merge = true;
}
$db->sql_freeresult($result);
}
if (!$merge)
{
prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
if ( $error_msg == '' )
{
$topic_type = ( $topic_type != $post_data['topic_type'] && !$is_auth['auth_sticky'] && !$is_auth['auth_announce'] ) ? $post_data['topic_type'] : $topic_type;
submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
}
}
else
{
$error_msg = '';
submit_merged_post($last_post_id, $forum_id, $subject, $message, $return_message, $return_meta);
}
598 }
599 break;
600
601 case 'delete':
602 case 'poll_delete':
delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id);
break;
}
Из кода видно, что в 598 строке закрывается действие switch() и поэтому то и ошибка, следовательно. Так какой вариант верный? Как добиться этого склеивания!?
НО... поднимался вопрос о скобке
#
#-----[ FIND ]------------------------------------------
#
submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
} <----------- лишняя скобка
else
{
$error_msg = '';
submit_merged_post($last_post_id, $forum_id, $subject, $message, $return_message, $return_meta);
}
#
Если вставить код со скобкой выдает ошибку:
Parse error: syntax error, unexpected T_CASE in w:\home\forum\www\posting.php on line 601
Если удалить скобку, ошибки нет, но и нет склеивания.
Фрагмент кода с номерами строк 600-602:
switch ( $mode )
{
case 'editpost':
case 'newtopic':
case 'reply':
$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : '';
$poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : '';
$poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : '';
$bbcode_uid = '';
$merge = false;
$time2merge = intval($board_config['time_to_merge']) * 60;
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";
$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'];
if ( ($last_poster == $userdata['user_id']) && ((time() - $last_post_created) < $time2merge))
{
$merge = true;
}
$db->sql_freeresult($result);
}
if (!$merge)
{
prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
if ( $error_msg == '' )
{
$topic_type = ( $topic_type != $post_data['topic_type'] && !$is_auth['auth_sticky'] && !$is_auth['auth_announce'] ) ? $post_data['topic_type'] : $topic_type;
submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
}
}
else
{
$error_msg = '';
submit_merged_post($last_post_id, $forum_id, $subject, $message, $return_message, $return_meta);
}
598 }
599 break;
600
601 case 'delete':
602 case 'poll_delete':
delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id);
break;
}
Из кода видно, что в 598 строке закрывается действие switch() и поэтому то и ошибка, следовательно. Так какой вариант верный? Как добиться этого склеивания!?
-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 19 лет
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 19 лет
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз