Упрощаем разделение тем в PunBB

Есть у меня с давних времен один форум, работающий на PunBB. В целом в нем меня все устраивало, кроме одного: очень неудобного разделения темы на несколько в случае возникновения оффтопика. Неудобство заключалось в том, что при разделении тема разбивалась на страницы точно так же, как при обычном просмотре, в результате чего если оффтопик шел на нескольких страницах, каждую из них приходилось вырезать в отдельную тему, а потом склеивать.
Наконец, мне это надоело, и я решил немного подредактировать исходный код moderate.php (который лежит в корне). Во-первых, увеличим в 10 раз количество сообщений на странице в режиме модерации. Для этого найдем строки
    // Determine the post offset (based on $_GET['p'])
$forum_page['num_pages'] = ceil(($cur_topic['num_replies'] + 1) / ($forum_user['disp_posts']));
и заменим их на
    // Determine the post offset (based on $_GET['p'])
$forum_user['disp_posts'] = $forum_user['disp_posts']*10; // Added by 4X_Pro to make moderation easy
$forum_page['num_pages'] = ceil(($cur_topic['num_replies'] + 1) / ($forum_user['disp_posts']));
А во-вторых, будем выдавать сообщения в обратном порядке. Находим строку
    // Retrieve the posts (and their respective poster)
$query = array(
'SELECT' => 'u.title, u.num_posts, g.g_id, g.g_user_title, p.id, p.poster, p.poster_id, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by',
'FROM' => 'posts AS p',
'JOINS' => array(
array(
'INNER JOIN' => 'users AS u',
'ON' => 'u.id=p.poster_id'
),
array(
'INNER JOIN' => 'groups AS g',
'ON' => 'g.g_id=u.group_id'
)
),
'WHERE' => 'p.topic_id='.$tid,
'ORDER BY' => 'p.id',
и заменяем на

// Retrieve the posts (and their respective poster)
$query = array(
'SELECT' => 'u.title, u.num_posts, g.g_id, g.g_user_title, p.id, p.poster, p.poster_id, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by',
'FROM' => 'posts AS p',
'JOINS' => array(
array(
'INNER JOIN' => 'users AS u',
'ON' => 'u.id=p.poster_id'
),
array(
'INNER JOIN' => 'groups AS g',
'ON' => 'g.g_id=u.group_id'
)
),
'WHERE' => 'p.topic_id='.$tid,
'ORDER BY' => 'p.id DESC',
Вот и все! Теперь разделять темы стало намного проще!

0