Na początku chciałbym dodać, że właśnie opublikowałem nową wersję tego hacka: Poprawiona synchronizacja licznika postów użytkowników. Wyeliminowana konieczność synchronizacji forum po przywróceniu postów. Dodana możliwość ponownej indeksacji treści przywracanych postów, tak aby były widoczne w wyszukiwarce na forum.
A teraz do rzeczy. Poniżej przedstawiam zmodyfikowaną wersję. Niestety nie miałem i nie będę miał czasu jej przetestować. Jeśli chodzi o usuwanie postów, modyfikacja Przema bardzo się różni od oryginalnego phpBB. Dlatego wcale bym się nie zdziwił, jeśli hack nie będzie działał poprawnie, nawet jeśli pozornie nie wyświetlą się żadne błędy. Nie jestem w stanie utrzymywać moich hacków dla każdej możliwej modyfikacji forum. Zatem jeśli nie będzie działać, to niestety nie będę miał czasu pomóc

Od tego są ludzi zajmujący się modyfikacją "phpBB by Przemo".
[phpbb]#
#-----[ OPEN ]------------------------------------------
#
includes/functions_remove.php
#
#-----[ FIND ]------------------------------------------
#
delete_this_post($post_id);
#
#-----[ AFTER, ADD ]------------------------------------------
#
////////// BACKUP
$backup = '';
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "UPDATE " . USERS_TABLE . "
SET user_posts = user_posts -1
WHERE user_id = " . $info_row['poster_id'];
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
$backup .= "\r\nUPDATE " . USERS_TABLE . "
SET user_posts = user_posts +1
WHERE user_id = " . $info_row['poster_id'] . ";";
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "UPDATE " . TOPICS_TABLE . "
SET $update_last_post_sql topic_replies = topic_replies - 1
WHERE topic_id = $topic_id";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
$backup .= "\r\nUPDATE " . TOPICS_TABLE . "
SET topic_replies = topic_replies + 1
WHERE topic_id = $topic_id;";
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "UPDATE " . FORUMS_TABLE . "
SET $forum_update_sql
WHERE forum_id = $forum_id";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
$backup .= "\r\nUPDATE " . FORUMS_TABLE . "
SET forum_posts = forum_posts + 1
WHERE forum_id = $forum_id;";
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "DELETE FROM " . READ_HIST_TABLE . "
WHERE post_id = $post_id";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
$backup. = backup("SELECT * FROM " . READ_HIST_TABLE . "
WHERE post_id = $post_id");
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
if ( $board_config['read_tracking'] )
{
$sql = "DELETE FROM " . READ_HIST_TABLE . "
WHERE post_id = $post_id";
$db->sql_query($sql);
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
////////// BACKUP
global $userdata;
if ($userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD) make_backup();
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "DELETE FROM " . POSTS_TABLE . "
WHERE post_id IN($post_id)";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
global $userdata;
if ($userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD)
{
$backup = '';
$backup .= backup("SELECT * FROM " . POSTS_TABLE . "
WHERE post_id IN($post_id)");
$backup .= backup("SELECT * FROM " . POSTS_TEXT_TABLE . "
WHERE post_id IN($post_id)");
make_backup();
}
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "DELETE FROM " . VOTE_DESC_TABLE . "
WHERE vote_id IN($vote_id_sql)";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
global $userdata;
if ($userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD)
{
$backup = '';
$backup .= backup("SELECT * FROM " . VOTE_DESC_TABLE . "
WHERE vote_id IN($vote_id_sql)");
$backup .= backup("SELECT * FROM " . VOTE_RESULTS_TABLE . "
WHERE vote_id IN($vote_id_sql)");
$backup .= backup("SELECT * FROM " . VOTE_USERS_TABLE . "
WHERE vote_id IN($vote_id_sql)");
make_backup();
}
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$topics_id = (is_array($topics_id)) ? implode(', ', $topics_id) : implode(', ', array($topics_id));
#
#-----[ AFTER, ADD ]------------------------------------------
#
////////// BACKUP
$backup = '';
$backup_posts = 0;
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$count_sql[] = "UPDATE " . USERS_TABLE . "
SET user_posts = user_posts - " . $row['posts'] . "
WHERE user_id = " . $row['poster_id'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
////////// BACKUP
$backup_posts += $row['posts'];
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
if ( !$db->sql_query($count_sql[$i]) )
{
message_die(GENERAL_ERROR, 'Could not update user post count information', '', __LINE__, __FILE__, $sql);
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
////////// BACKUP
else $backup .= "\r\n" . preg_replace('/ {2,}/', ' ', str_replace(array("\r", "\n", "\t", 'SET user_posts = user_posts - '), array('', ' ', ' ', 'SET user_posts = user_posts + '), $count_sql[$i])) . ';';
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "DELETE
FROM " . TOPICS_WATCH_TABLE . "
WHERE topic_id IN ($topics_id)";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
$backup .= "\r\n" . 'UPDATE ' . FORUMS_TABLE . ' SET forum_posts = forum_posts + ' . $backup_posts . ', forum_topics = forum_topics + ' . (substr_count($topic_id_sql, ',') + 1) . ' WHERE forum_id = ' . $forum_id . ';';
$backup .= backup("SELECT *
FROM " . TOPICS_WATCH_TABLE . "
WHERE topic_id IN ($topics_id)");
$backup .= backup("SELECT *
FROM " . TOPIC_VIEW_TABLE . "
WHERE topic_id IN ($topics_id)");
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "DELETE FROM " . READ_HIST_TABLE . "
WHERE topic_id IN ($topics_id)";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
$backup .= backup("SELECT * FROM " . READ_HIST_TABLE . "
WHERE topic_id IN ($topics_id)");
////////// /BACKUP
#
#-----[ FIND ]------------------------------------------
#
$sql = "DELETE FROM " . IGNORE_TOPICS_TABLE . "
WHERE topic_id IN ($topics_id)";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
////////// BACKUP
$backup .= backup("SELECT * FROM " . IGNORE_TOPICS_TABLE . "
WHERE topic_id IN ($topics_id)");
global $userdata;
if ($userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD) make_backup();
////////// /BACKUP[/phpbb]
phpBB Hacks by logeen (RSS)