|
Форум torrenpier который уже живет
это сообщество владельцев форумов на phphBB2, торрент-трекеров на движках torrentpier и SVN всех версий.
Здесь можно найти решение своих проблем на своем сайта. Здесь можно скачать полезные и нужные моды torrenpier, phpBB2 и svn. Наш форум - это место для общения и обмена опытом между любителей движков, создателей модов на заказ и владельцев сайтов!
|
Автор |
Сообщение |
Nicolayka Зарегистрирован: 2011-02-16 Сообщ.: 89
|
18-Апр-11 17:26 |
#1 |
Описание: Мод склеивает сообщения одного автора, написанные друг за другом.
SQL запрос:
Код: | ALTER TABLE `bb_posts` ADD `post_editor` VARCHAR(25) NOT NULL;
INSERT INTO `bb_config` VALUES ('join_interval', '18'); |
Открыть posting.php
Найти:
Код: | //
// Submit post/vote (newtopic, edit, reply, etc.)
// |
Добавить после:
Код: | // double_post eliminate start
if ( $mode == 'reply' && $userdata['user_id'] != ANONYMOUS )
{
$poster_id = $userdata['user_id'];
$sql = "SELECT post_id, poster_id, post_time, MAX(post_time) FROM " . POSTS_TABLE . " WHERE topic_id = $topic_id GROUP BY post_time ORDER BY post_time DESC LIMIT 1";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
}
$post_id_last_row = $db->sql_fetchrow($result);
$post_id = $post_id_last_row['post_id'];
$difference_time = TIMENOW - $post_id_last_row['post_time'];
$separator = ' \n\n[size=9][color=#999999]' . $lang['ADDED_LATER'] . ' ' . delta_time($post_id_last_row['post_time'], TIMENOW, 'seconds'). ':[/color][/size]\n\n ';
if ( $post_id_last_row['poster_id'] == $poster_id && $post_info['topic_replies'] >= 1 && ( $difference_time < ( $bb_cfg['join_interval'] * 3600 ) ) )
{
$mode = 'editpost';
$sql = "SELECT post_text, bbcode_uid FROM " . POSTS_TEXT_TABLE . " WHERE post_id = $post_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
}
$last_message_row = $db->sql_fetchrow($result);
$bb_uid = ':' . $last_message_row['bbcode_uid'];
// i don't know much about parsing the message, so it may well be that, there are some wrongs, anyway all seems to work fine
$last_message = str_replace($bb_uid, '', $last_message_row['post_text']);
$last_message = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $last_message);
$last_message = undo_htmlspecialchars(addslashes($last_message));
}
}
// double_post eliminate end |
Найти:
Код: | $poll_length = ( isset($_POST['poll_length']) && $is_auth['auth_pollcreate'] ) ? $_POST['poll_length'] : '';
$bbcode_uid = ''; |
Добавить после:
Код: | // double_post eliminate start
if ( !empty($last_message) )
{
$message = ( $last_message != $message ) ? $last_message . $separator . $message : $message;
$added = 1;
}
// double_post eliminate end |
Найти:
Код: | submit_post($mode, $post_data, $return_message, $return_meta, |
В строке найти:
После, добавить:
Открыть functions_post.php
Найти:
Код: | function submit_post($mode, &$post_data, &$message, &$meta, |
В строке найти:
Добавить после:
Найти:
Код: | if ($last_msg == $post_message)
{
message_die(GENERAL_MESSAGE, $lang['DOUBLE_POST_ERROR']);
}
}
} |
Добавить после:
Код: | // double_post eliminate start
if ( $added && $mode == 'editpost' )
{
$sql = "UPDATE " . POSTS_TABLE . " SET post_time = " . $current_time . " WHERE post_id = " . $post_id;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update last post time', '', __LINE__, __FILE__, $sql);
}
}
// double_post eliminate end |
Найти:
Код: | $edited_sql = ($mode == 'editpost' && !$post_data['last_post'] && $post_data['poster_post']) ? ", post_edit_time = $current_time, post_edit_count = post_edit_count + 1 " : "";
if ($update_post_time && $mode == 'editpost' && $post_data['last_post'] && !$post_data['first_post'])
{
$edited_sql .= ", post_time = $current_time ";
//lpt
$result = $db->sql_query("
UPDATE ". TOPICS_TABLE ." SET
topic_last_post_time = $current_time
WHERE topic_id = $topic_id
LIMIT 1
");
} |
Заменить на:
Код: | $edited_sql = ( $mode == 'editpost' ) ? ", post_edit_time = $current_time, post_edit_count = post_edit_count + 1" : "";
$edited_sql .= ($edited_sql) ? ", post_editor = '" . $db->escape($userdata['username']) . "'" : '';
if ($update_post_time && $mode == 'editpost' && $post_data['last_post'] && !$post_data['first_post'])
{
$edited_sql .= ", post_time = $current_time ";
//lpt
$result = $db->sql_query("
UPDATE ". TOPICS_TABLE ." SET
topic_last_post_time = $current_time
WHERE topic_id = $topic_id
LIMIT 1
");
} |
Открыть lang_main.php
Добавить:
Код: | // double_post eliminate start
$lang['ADDED_LATER'] = 'Добавлено, спустя';
// double_post eliminate end |
|
|
Вернуться к началу
|
|
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
Все материалы сайта представлены только для ознакомления. При копировании материала ссылка на torrentpier-download.ru
обязательна!
sitemap карта форума | Статистика визитов поисковых ботов | Выдача в поисковиках
Powered by phpBB © 2001, 2011 phpBB Group | ©2011-2024 - Воронеж |
|