Verzeichnisstruktur phpBB-2.0.0
- Veröffentlicht
- 03.04.2002
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
modcp.php
0001 <?php
0002 /***************************************************************************
0003 * modcp.php
0004 * -------------------
0005 * begin : July 4, 2001
0006 * copyright : (C) 2001 The phpBB Group
0007 * email : support@phpbb.com
0008 *
0009 * $Id$
0010 *
0011 ***************************************************************************/
0012
0013 /***************************************************************************
0014 *
0015 * This program is free software; you can redistribute it and/or modify
0016 * it under the terms of the GNU General Public License as published by
0017 * the Free Software Foundation; either version 2 of the License, or
0018 * (at your option) any later version.
0019 *
0020 ***************************************************************************/
0021
0022 /**
0023 * Moderator Control Panel
0024 *
0025 * From this 'Control Panel' the moderator of a forum will be able to do
0026 * mass topic operations (locking/unlocking/moving/deleteing), and it will
0027 * provide an interface to do quick locking/unlocking/moving/deleting of
0028 * topics via the moderator operations buttons on all of the viewtopic pages.
0029 */
0030
0031 define('IN_PHPBB', true);
0032 $phpbb_root_path = './';
0033 include($phpbb_root_path . 'extension.inc');
0034 include($phpbb_root_path . 'common.'.$phpEx);
0035 include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
0036 include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
0037
0038 //
0039 // Obtain initial var settings
0040 //
0041 if ( isset($HTTP_GET_VARS[POST_FORUM_URL]) || isset($HTTP_POST_VARS[POST_FORUM_URL]) )
0042 {
0043 $forum_id = (isset($HTTP_POST_VARS[POST_FORUM_URL])) ? intval($HTTP_POST_VARS[POST_FORUM_URL]) : intval($HTTP_GET_VARS[POST_FORUM_URL]);
0044 }
0045 else
0046 {
0047 $forum_id = '';
0048 }
0049
0050 if ( isset($HTTP_GET_VARS[POST_POST_URL]) || isset($HTTP_POST_VARS[POST_POST_URL]) )
0051 {
0052 $post_id = (isset($HTTP_POST_VARS[POST_POST_URL])) ? intval($HTTP_POST_VARS[POST_POST_URL]) : intval($HTTP_GET_VARS[POST_POST_URL]);
0053 }
0054 else
0055 {
0056 $post_id = '';
0057 }
0058
0059 if ( isset($HTTP_GET_VARS[POST_TOPIC_URL]) || isset($HTTP_POST_VARS[POST_TOPIC_URL]) )
0060 {
0061 $topic_id = (isset($HTTP_POST_VARS[POST_TOPIC_URL])) ? intval($HTTP_POST_VARS[POST_TOPIC_URL]) : intval($HTTP_GET_VARS[POST_TOPIC_URL]);
0062 }
0063 else
0064 {
0065 $topic_id = '';
0066 }
0067
0068 $confirm = ( $HTTP_POST_VARS['confirm'] ) ? TRUE : 0;
0069
0070 //
0071 // Continue var definitions
0072 //
0073 $start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
0074 $start = ($start < 0) ? 0 : $start;
0075
0076 $delete = ( isset($HTTP_POST_VARS['delete']) ) ? TRUE : FALSE;
0077 $move = ( isset($HTTP_POST_VARS['move']) ) ? TRUE : FALSE;
0078 $lock = ( isset($HTTP_POST_VARS['lock']) ) ? TRUE : FALSE;
0079 $unlock = ( isset($HTTP_POST_VARS['unlock']) ) ? TRUE : FALSE;
0080
0081 if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
0082 {
0083 $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
0084 $mode = htmlspecialchars($mode);
0085 }
0086 else
0087 {
0088 if ( $delete )
0089 {
0090 $mode = 'delete';
0091 }
0092 else if ( $move )
0093 {
0094 $mode = 'move';
0095 }
0096 else if ( $lock )
0097 {
0098 $mode = 'lock';
0099 }
0100 else if ( $unlock )
0101 {
0102 $mode = 'unlock';
0103 }
0104 else
0105 {
0106 $mode = '';
0107 }
0108 }
0109
0110 // session id check
0111 if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid']))
0112 {
0113 $sid = (!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid'];
0114 }
0115 else
0116 {
0117 $sid = '';
0118 }
0119 // privileged session id check
0120 if (!empty($HTTP_POST_VARS['p_sid']) || !empty($HTTP_GET_VARS['p_sid']))
0121 {
0122 $p_sid = (!empty($HTTP_POST_VARS['p_sid'])) ? $HTTP_POST_VARS['p_sid'] : $HTTP_GET_VARS['p_sid'];
0123 }
0124 else
0125 {
0126 $p_sid = '';
0127 }
0128
0129 //
0130 // Obtain relevant data
0131 //
0132 if ( !empty($topic_id) )
0133 {
0134 $sql = "SELECT f.forum_id, f.forum_name, f.forum_topics
0135 FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
0136 WHERE t.topic_id = " . $topic_id . "
0137 AND f.forum_id = t.forum_id";
0138 if ( !($result = $db->sql_query($sql)) )
0139 {
0140 message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
0141 }
0142 $topic_row = $db->sql_fetchrow($result);
0143
0144 if (!$topic_row)
0145 {
0146 message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
0147 }
0148
0149 $forum_topics = ( $topic_row['forum_topics'] == 0 ) ? 1 : $topic_row['forum_topics'];
0150 $forum_id = $topic_row['forum_id'];
0151 $forum_name = $topic_row['forum_name'];
0152 }
0153 else if ( !empty($forum_id) )
0154 {
0155 $sql = "SELECT forum_name, forum_topics
0156 FROM " . FORUMS_TABLE . "
0157 WHERE forum_id = " . $forum_id;
0158 if ( !($result = $db->sql_query($sql)) )
0159 {
0160 message_die(GENERAL_MESSAGE, 'Forum_not_exist');
0161 }
0162 $topic_row = $db->sql_fetchrow($result);
0163
0164 if (!$topic_row)
0165 {
0166 message_die(GENERAL_MESSAGE, 'Forum_not_exist');
0167 }
0168
0169 $forum_topics = ( $topic_row['forum_topics'] == 0 ) ? 1 : $topic_row['forum_topics'];
0170 $forum_name = $topic_row['forum_name'];
0171 }
0172 else
0173 {
0174 message_die(GENERAL_MESSAGE, 'Forum_not_exist');
0175 }
0176
0177 //
0178 // Start session management
0179 //
0180 $userdata = session_pagestart($user_ip, $forum_id);
0181 init_userprefs($userdata);
0182 //
0183 // End session management
0184 //
0185
0186 // session id check
0187 if ($p_sid === '' || $p_sid !== $userdata['priv_session_id'])
0188 {
0189 message_die(GENERAL_ERROR, 'Invalid_session');
0190 }
0191
0192 //
0193 // Check if user did or did not confirm
0194 // If they did not, forward them to the last page they were on
0195 //
0196 if ( isset($HTTP_POST_VARS['cancel']) )
0197 {
0198 if ( $topic_id )
0199 {
0200 $redirect = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id";
0201 }
0202 else if ( $forum_id )
0203 {
0204 $redirect = "viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id";
0205 }
0206 else
0207 {
0208 $redirect = "index.$phpEx";
0209 }
0210
0211 redirect(append_sid($redirect, true));
0212 }
0213
0214 //
0215 // Start auth check
0216 //
0217 $is_auth = auth(AUTH_ALL, $forum_id, $userdata);
0218
0219 if ( !$is_auth['auth_mod'] )
0220 {
0221 message_die(GENERAL_MESSAGE, $lang['Not_Moderator'], $lang['Not_Authorised']);
0222 }
0223 //
0224 // End Auth Check
0225 //
0226
0227 //
0228 // Do major work ...
0229 //
0230 switch( $mode )
0231 {
0232 case 'delete':
0233 if (!$is_auth['auth_delete'])
0234 {
0235 message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_delete'], $is_auth['auth_delete_type']));
0236 }
0237
0238 $page_title = $lang['Mod_CP'];
0239 include($phpbb_root_path . 'includes/page_header.'.$phpEx);
0240
0241 if ( $confirm )
0242 {
0243 if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
0244 {
0245 message_die(GENERAL_MESSAGE, $lang['None_selected']);
0246 }
0247
0248 include($phpbb_root_path . 'includes/functions_search.'.$phpEx);
0249
0250 $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
0251
0252 $topic_id_sql = '';
0253 for($i = 0; $i < count($topics); $i++)
0254 {
0255 $topic_id_sql .= ( ( $topic_id_sql != '' ) ? ', ' : '' ) . intval($topics[$i]);
0256 }
0257
0258 $sql = "SELECT topic_id
0259 FROM " . TOPICS_TABLE . "
0260 WHERE topic_id IN ($topic_id_sql)
0261 AND forum_id = $forum_id";
0262 if ( !($result = $db->sql_query($sql)) )
0263 {
0264 message_die(GENERAL_ERROR, 'Could not get topic id information', '', __LINE__, __FILE__, $sql);
0265 }
0266
0267 $topic_id_sql = '';
0268 while ($row = $db->sql_fetchrow($result))
0269 {
0270 $topic_id_sql .= (($topic_id_sql != '') ? ', ' : '') . intval($row['topic_id']);
0271 }
0272 $db->sql_freeresult($result);
0273
0274 if ( $topic_id_sql == '')
0275 {
0276 message_die(GENERAL_MESSAGE, $lang['None_selected']);
0277 }
0278
0279 $sql = "SELECT poster_id, COUNT(post_id) AS posts
0280 FROM " . POSTS_TABLE . "
0281 WHERE topic_id IN ($topic_id_sql)
0282 GROUP BY poster_id";
0283 if ( !($result = $db->sql_query($sql)) )
0284 {
0285 message_die(GENERAL_ERROR, 'Could not get poster id information', '', __LINE__, __FILE__, $sql);
0286 }
0287
0288 $count_sql = array();
0289 while ( $row = $db->sql_fetchrow($result) )
0290 {
0291 $count_sql[] = "UPDATE " . USERS_TABLE . "
0292 SET user_posts = user_posts - " . $row['posts'] . "
0293 WHERE user_id = " . $row['poster_id'];
0294 }
0295 $db->sql_freeresult($result);
0296
0297 if ( sizeof($count_sql) )
0298 {
0299 for($i = 0; $i < sizeof($count_sql); $i++)
0300 {
0301 if ( !$db->sql_query($count_sql[$i]) )
0302 {
0303 message_die(GENERAL_ERROR, 'Could not update user post count information', '', __LINE__, __FILE__, $sql);
0304 }
0305 }
0306 }
0307
0308 $sql = "SELECT post_id
0309 FROM " . POSTS_TABLE . "
0310 WHERE topic_id IN ($topic_id_sql)";
0311 if ( !($result = $db->sql_query($sql)) )
0312 {
0313 message_die(GENERAL_ERROR, 'Could not get post id information', '', __LINE__, __FILE__, $sql);
0314 }
0315
0316 $post_id_sql = '';
0317 while ( $row = $db->sql_fetchrow($result) )
0318 {
0319 $post_id_sql .= ( ( $post_id_sql != '' ) ? ', ' : '' ) . intval($row['post_id']);
0320 }
0321 $db->sql_freeresult($result);
0322
0323 $sql = "SELECT vote_id
0324 FROM " . VOTE_DESC_TABLE . "
0325 WHERE topic_id IN ($topic_id_sql)";
0326 if ( !($result = $db->sql_query($sql)) )
0327 {
0328 message_die(GENERAL_ERROR, 'Could not get vote id information', '', __LINE__, __FILE__, $sql);
0329 }
0330
0331 $vote_id_sql = '';
0332 while ( $row = $db->sql_fetchrow($result) )
0333 {
0334 $vote_id_sql .= ( ( $vote_id_sql != '' ) ? ', ' : '' ) . $row['vote_id'];
0335 }
0336 $db->sql_freeresult($result);
0337
0338 //
0339 // Got all required info so go ahead and start deleting everything
0340 //
0341 $sql = "DELETE
0342 FROM " . TOPICS_TABLE . "
0343 WHERE topic_id IN ($topic_id_sql)
0344 OR topic_moved_id IN ($topic_id_sql)";
0345 if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )
0346 {
0347 message_die(GENERAL_ERROR, 'Could not delete topics', '', __LINE__, __FILE__, $sql);
0348 }
0349
0350 if ( $post_id_sql != '' )
0351 {
0352 $sql = "DELETE
0353 FROM " . POSTS_TABLE . "
0354 WHERE post_id IN ($post_id_sql)";
0355 if ( !$db->sql_query($sql) )
0356 {
0357 message_die(GENERAL_ERROR, 'Could not delete posts', '', __LINE__, __FILE__, $sql);
0358 }
0359
0360 $sql = "DELETE
0361 FROM " . POSTS_TEXT_TABLE . "
0362 WHERE post_id IN ($post_id_sql)";
0363 if ( !$db->sql_query($sql) )
0364 {
0365 message_die(GENERAL_ERROR, 'Could not delete posts text', '', __LINE__, __FILE__, $sql);
0366 }
0367
0368 remove_search_post($post_id_sql);
0369 }
0370
0371 if ( $vote_id_sql != '' )
0372 {
0373 $sql = "DELETE
0374 FROM " . VOTE_DESC_TABLE . "
0375 WHERE vote_id IN ($vote_id_sql)";
0376 if ( !$db->sql_query($sql) )
0377 {
0378 message_die(GENERAL_ERROR, 'Could not delete vote descriptions', '', __LINE__, __FILE__, $sql);
0379 }
0380
0381 $sql = "DELETE
0382 FROM " . VOTE_RESULTS_TABLE . "
0383 WHERE vote_id IN ($vote_id_sql)";
0384 if ( !$db->sql_query($sql) )
0385 {
0386 message_die(GENERAL_ERROR, 'Could not delete vote results', '', __LINE__, __FILE__, $sql);
0387 }
0388
0389 $sql = "DELETE
0390 FROM " . VOTE_USERS_TABLE . "
0391 WHERE vote_id IN ($vote_id_sql)";
0392 if ( !$db->sql_query($sql) )
0393 {
0394 message_die(GENERAL_ERROR, 'Could not delete vote users', '', __LINE__, __FILE__, $sql);
0395 }
0396 }
0397
0398 $sql = "DELETE
0399 FROM " . TOPICS_WATCH_TABLE . "
0400 WHERE topic_id IN ($topic_id_sql)";
0401 if ( !$db->sql_query($sql, END_TRANSACTION) )
0402 {
0403 message_die(GENERAL_ERROR, 'Could not delete watched post list', '', __LINE__, __FILE__, $sql);
0404 }
0405
0406 sync('forum', $forum_id);
0407
0408 if ( !empty($topic_id) )
0409 {
0410 $redirect_page = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id");
0411 $l_redirect = sprintf($lang['Click_return_forum'], '<a href="' . $redirect_page . '">', '</a>');
0412 }
0413 else
0414 {
0415 $redirect_page = append_sid("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&p_sid=" . $userdata['priv_session_id']);
0416 $l_redirect = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
0417 }
0418
0419 $template->assign_vars(array(
0420 'META' => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
0421 );
0422
0423 message_die(GENERAL_MESSAGE, $lang['Topics_Removed'] . '<br /><br />' . $l_redirect);
0424 }
0425 else
0426 {
0427 // Not confirmed, show confirmation message
0428 if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
0429 {
0430 message_die(GENERAL_MESSAGE, $lang['None_selected']);
0431 }
0432
0433 $hidden_fields = '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" /><input type="hidden" name="p_sid" value="' . $userdata['priv_session_id'] . '" /><input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />';
0434
0435 if ( isset($HTTP_POST_VARS['topic_id_list']) )
0436 {
0437 $topics = $HTTP_POST_VARS['topic_id_list'];
0438 for($i = 0; $i < count($topics); $i++)
0439 {
0440 $hidden_fields .= '<input type="hidden" name="topic_id_list[]" value="' . intval($topics[$i]) . '" />';
0441 }
0442 }
0443 else
0444 {
0445 $hidden_fields .= '<input type="hidden" name="' . POST_TOPIC_URL . '" value="' . $topic_id . '" />';
0446 }
0447
0448 //
0449 // Set template files
0450 //
0451 $template->set_filenames(array(
0452 'confirm' => 'confirm_body.tpl')
0453 );
0454
0455 $template->assign_vars(array(
0456 'MESSAGE_TITLE' => $lang['Confirm'],
0457 'MESSAGE_TEXT' => $lang['Confirm_delete_topic'],
0458
0459 'L_YES' => $lang['Yes'],
0460 'L_NO' => $lang['No'],
0461
0462 'S_CONFIRM_ACTION' => append_sid("modcp.$phpEx"),
0463 'S_HIDDEN_FIELDS' => $hidden_fields)
0464 );
0465
0466 $template->pparse('confirm');
0467
0468 include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
0469 }
0470 break;
0471
0472 case 'move':
0473 $page_title = $lang['Mod_CP'];
0474 include($phpbb_root_path . 'includes/page_header.'.$phpEx);
0475
0476 if ( $confirm )
0477 {
0478 if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
0479 {
0480 message_die(GENERAL_MESSAGE, $lang['None_selected']);
0481 }
0482
0483 $new_forum_id = intval($HTTP_POST_VARS['new_forum']);
0484 $old_forum_id = $forum_id;
0485
0486 $sql = 'SELECT forum_id FROM ' . FORUMS_TABLE . '
0487 WHERE forum_id = ' . $new_forum_id;
0488 if ( !($result = $db->sql_query($sql)) )
0489 {
0490 message_die(GENERAL_ERROR, 'Could not select from forums table', '', __LINE__, __FILE__, $sql);
0491 }
0492
0493 if (!$db->sql_fetchrow($result))
0494 {
0495 message_die(GENERAL_MESSAGE, 'New forum does not exist');
0496 }
0497
0498 $db->sql_freeresult($result);
0499
0500 if ( $new_forum_id != $old_forum_id )
0501 {
0502 $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
0503
0504 $topic_list = '';
0505 for($i = 0; $i < count($topics); $i++)
0506 {
0507 $topic_list .= ( ( $topic_list != '' ) ? ', ' : '' ) . intval($topics[$i]);
0508 }
0509
0510 $sql = "SELECT *
0511 FROM " . TOPICS_TABLE . "
0512 WHERE topic_id IN ($topic_list)
0513 AND forum_id = $old_forum_id
0514 AND topic_status <> " . TOPIC_MOVED;
0515 if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )
0516 {
0517 message_die(GENERAL_ERROR, 'Could not select from topic table', '', __LINE__, __FILE__, $sql);
0518 }
0519
0520 $row = $db->sql_fetchrowset($result);
0521 $db->sql_freeresult($result);
0522
0523 for($i = 0; $i < count($row); $i++)
0524 {
0525 $topic_id = $row[$i]['topic_id'];
0526
0527 if ( isset($HTTP_POST_VARS['move_leave_shadow']) )
0528 {
0529 // Insert topic in the old forum that indicates that the forum has moved.
0530 $sql = "INSERT INTO " . TOPICS_TABLE . " (forum_id, topic_title, topic_poster, topic_time, topic_status, topic_type, topic_vote, topic_views, topic_replies, topic_first_post_id, topic_last_post_id, topic_moved_id)
0531 VALUES ($old_forum_id, '" . addslashes(str_replace("\'", "''", $row[$i]['topic_title'])) . "', '" . str_replace("\'", "''", $row[$i]['topic_poster']) . "', " . $row[$i]['topic_time'] . ", " . TOPIC_MOVED . ", " . POST_NORMAL . ", " . $row[$i]['topic_vote'] . ", " . $row[$i]['topic_views'] . ", " . $row[$i]['topic_replies'] . ", " . $row[$i]['topic_first_post_id'] . ", " . $row[$i]['topic_last_post_id'] . ", $topic_id)";
0532 if ( !$db->sql_query($sql) )
0533 {
0534 message_die(GENERAL_ERROR, 'Could not insert shadow topic', '', __LINE__, __FILE__, $sql);
0535 }
0536 }
0537
0538 $sql = "UPDATE " . TOPICS_TABLE . "
0539 SET forum_id = $new_forum_id
0540 WHERE topic_id = $topic_id";
0541 if ( !$db->sql_query($sql) )
0542 {
0543 message_die(GENERAL_ERROR, 'Could not update old topic', '', __LINE__, __FILE__, $sql);
0544 }
0545
0546 $sql = "UPDATE " . POSTS_TABLE . "
0547 SET forum_id = $new_forum_id
0548 WHERE topic_id = $topic_id";
0549 if ( !$db->sql_query($sql) )
0550 {
0551 message_die(GENERAL_ERROR, 'Could not update post topic ids', '', __LINE__, __FILE__, $sql);
0552 }
0553 }
0554
0555 // Sync the forum indexes
0556 sync('forum', $new_forum_id);
0557 sync('forum', $old_forum_id);
0558
0559 $message = $lang['Topics_Moved'] . '<br /><br />';
0560
0561 }
0562 else
0563 {
0564 $message = $lang['No_Topics_Moved'] . '<br /><br />';
0565 }
0566
0567 if ( !empty($topic_id) )
0568 {
0569 $redirect_page = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");
0570 $message .= sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
0571 }
0572 else
0573 {
0574 $redirect_page = append_sid("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&p_sid=" . $userdata['priv_session_id']);
0575 $message .= sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
0576 }
0577
0578 $message = $message . '<br \><br \>' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$old_forum_id&p_sid=" . $userdata['priv_session_id']) . '">', '</a>');
0579
0580 $template->assign_vars(array(
0581 'META' => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
0582 );
0583
0584 message_die(GENERAL_MESSAGE, $message);
0585 }
0586 else
0587 {
0588 if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
0589 {
0590 message_die(GENERAL_MESSAGE, $lang['None_selected']);
0591 }
0592
0593 $hidden_fields = '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" /><input type="hidden" name="p_sid" value="' . $userdata['priv_session_id'] . '" /><input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />';
0594
0595 if ( isset($HTTP_POST_VARS['topic_id_list']) )
0596 {
0597 $topics = $HTTP_POST_VARS['topic_id_list'];
0598
0599 for($i = 0; $i < count($topics); $i++)
0600 {
0601 $hidden_fields .= '<input type="hidden" name="topic_id_list[]" value="' . intval($topics[$i]) . '" />';
0602 }
0603 }
0604 else
0605 {
0606 $hidden_fields .= '<input type="hidden" name="' . POST_TOPIC_URL . '" value="' . $topic_id . '" />';
0607 }
0608
0609 //
0610 // Set template files
0611 //
0612 $template->set_filenames(array(
0613 'movetopic' => 'modcp_move.tpl')
0614 );
0615
0616 $template->assign_vars(array(
0617 'MESSAGE_TITLE' => $lang['Confirm'],
0618 'MESSAGE_TEXT' => $lang['Confirm_move_topic'],
0619
0620 'L_MOVE_TO_FORUM' => $lang['Move_to_forum'],
0621 'L_LEAVESHADOW' => $lang['Leave_shadow_topic'],
0622 'L_YES' => $lang['Yes'],
0623 'L_NO' => $lang['No'],
0624
0625 'S_FORUM_SELECT' => make_forum_select('new_forum', $forum_id),
0626 'S_MODCP_ACTION' => append_sid("modcp.$phpEx"),
0627 'S_HIDDEN_FIELDS' => $hidden_fields)
0628 );
0629
0630 $template->pparse('movetopic');
0631
0632 include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
0633 }
0634 break;
0635
0636 case 'lock':
0637 if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
0638 {
0639 message_die(GENERAL_MESSAGE, $lang['None_selected']);
0640 }
0641
0642 $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
0643
0644 $topic_id_sql = '';
0645 for($i = 0; $i < count($topics); $i++)
0646 {
0647 $topic_id_sql .= ( ( $topic_id_sql != '' ) ? ', ' : '' ) . intval($topics[$i]);
0648 }
0649
0650 $sql = "UPDATE " . TOPICS_TABLE . "
0651 SET topic_status = " . TOPIC_LOCKED . "
0652 WHERE topic_id IN ($topic_id_sql)
0653 AND forum_id = $forum_id
0654 AND topic_moved_id = 0";
0655 if ( !($result = $db->sql_query($sql)) )
0656 {
0657 message_die(GENERAL_ERROR, 'Could not update topics table', '', __LINE__, __FILE__, $sql);
0658 }
0659
0660 if ( !empty($topic_id) )
0661 {
0662 $redirect_page = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");
0663 $message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
0664 }
0665 else
0666 {
0667 $redirect_page = append_sid("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&p_sid=" . $userdata['priv_session_id']);
0668 $message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
0669 }
0670
0671 $message = $message . '<br \><br \>' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');
0672
0673 $template->assign_vars(array(
0674 'META' => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
0675 );
0676
0677 message_die(GENERAL_MESSAGE, $lang['Topics_Locked'] . '<br /><br />' . $message);
0678
0679 break;
0680
0681 case 'unlock':
0682 if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
0683 {
0684 message_die(GENERAL_MESSAGE, $lang['None_selected']);
0685 }
0686
0687 $topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
0688
0689 $topic_id_sql = '';
0690 for($i = 0; $i < count($topics); $i++)
0691 {
0692 $topic_id_sql .= ( ( $topic_id_sql != "") ? ', ' : '' ) . intval($topics[$i]);
0693 }
0694
0695 $sql = "UPDATE " . TOPICS_TABLE . "
0696 SET topic_status = " . TOPIC_UNLOCKED . "
0697 WHERE topic_id IN ($topic_id_sql)
0698 AND forum_id = $forum_id
0699 AND topic_moved_id = 0";
0700 if ( !($result = $db->sql_query($sql)) )
0701 {
0702 message_die(GENERAL_ERROR, 'Could not update topics table', '', __LINE__, __FILE__, $sql);
0703 }
0704
0705 if ( !empty($topic_id) )
0706 {
0707 $redirect_page = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");
0708 $message = sprintf($lang['Click_return_topic'], '<a href="' . $redirect_page . '">', '</a>');
0709 }
0710 else
0711 {
0712 $redirect_page = append_sid("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&p_sid=" . $userdata['priv_session_id']);
0713 $message = sprintf($lang['Click_return_modcp'], '<a href="' . $redirect_page . '">', '</a>');
0714 }
0715
0716 $message = $message . '<br \><br \>' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');
0717
0718 $template->assign_vars(array(
0719 'META' => '<meta http-equiv="refresh" content="3;url=' . $redirect_page . '">')
0720 );
0721
0722 message_die(GENERAL_MESSAGE, $lang['Topics_Unlocked'] . '<br /><br />' . $message);
0723
0724 break;
0725
0726 case 'split':
0727 $page_title = $lang['Mod_CP'];
0728 include($phpbb_root_path . 'includes/page_header.'.$phpEx);
0729
0730 $post_id_sql = '';
0731
0732 if (isset($HTTP_POST_VARS['split_type_all']) || isset($HTTP_POST_VARS['split_type_beyond']))
0733 {
0734 $posts = $HTTP_POST_VARS['post_id_list'];
0735
0736 for ($i = 0; $i < count($posts); $i++)
0737 {
0738 $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($posts[$i]);
0739 }
0740 }
0741
0742 if ($post_id_sql != '')
0743 {
0744 $sql = "SELECT post_id
0745 FROM " . POSTS_TABLE . "
0746 WHERE post_id IN ($post_id_sql)
0747 AND forum_id = $forum_id";
0748 if ( !($result = $db->sql_query($sql)) )
0749 {
0750 message_die(GENERAL_ERROR, 'Could not get post id information', '', __LINE__, __FILE__, $sql);
0751 }
0752
0753 $post_id_sql = '';
0754 while ($row = $db->sql_fetchrow($result))
0755 {
0756 $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($row['post_id']);
0757 }
0758 $db->sql_freeresult($result);
0759
0760 if ($post_id_sql == '')
0761 {
0762 message_die(GENERAL_MESSAGE, $lang['None_selected']);
0763 }
0764
0765 $sql = "SELECT post_id, poster_id, topic_id, post_time
0766 FROM " . POSTS_TABLE . "
0767 WHERE post_id IN ($post_id_sql)
0768 ORDER BY post_time ASC";
0769 if (!($result = $db->sql_query($sql)))
0770 {
0771 message_die(GENERAL_ERROR, 'Could not get post information', '', __LINE__, __FILE__, $sql);
0772 }
0773
0774 if ($row = $db->sql_fetchrow($result))
0775 {
0776 $first_poster = $row['poster_id'];
0777 $topic_id = $row['topic_id'];
0778 $post_time = $row['post_time'];
0779
0780 $user_id_sql = '';
0781 $post_id_sql = '';
0782 do
0783 {
0784 $user_id_sql .= (($user_id_sql != '') ? ', ' : '') . intval($row['poster_id']);
0785 $post_id_sql .= (($post_id_sql != '') ? ', ' : '') . intval($row['post_id']);;
0786 }
0787 while ($row = $db->sql_fetchrow($result));
0788
0789 $post_subject = trim(htmlspecialchars($HTTP_POST_VARS['subject']));
0790 if (empty($post_subject))
0791 {
0792 message_die(GENERAL_MESSAGE, $lang['Empty_subject']);
0793 }
0794
0795 $new_forum_id = intval($HTTP_POST_VARS['new_forum_id']);
0796 $topic_time = time();
0797
0798 $sql = 'SELECT forum_id FROM ' . FORUMS_TABLE . '
0799 WHERE forum_id = ' . $new_forum_id;
0800 if ( !($result = $db->sql_query($sql)) )
0801 {
0802 message_die(GENERAL_ERROR, 'Could not select from forums table', '', __LINE__, __FILE__, $sql);
0803 }
0804
0805 if (!$db->sql_fetchrow($result))
0806 {
0807 message_die(GENERAL_MESSAGE, 'New forum does not exist');
0808 }
0809
0810 $db->sql_freeresult($result);
0811
0812 $sql = "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type)
0813 VALUES ('" . str_replace("\'", "''", $post_subject) . "', $first_poster, " . $topic_time . ", $new_forum_id, " . TOPIC_UNLOCKED . ", " . POST_NORMAL . ")";
0814 if (!($db->sql_query($sql, BEGIN_TRANSACTION)))
0815 {
0816 message_die(GENERAL_ERROR, 'Could not insert new topic', '', __LINE__, __FILE__, $sql);
0817 }
0818
0819 $new_topic_id = $db->sql_nextid();
0820
0821 // Update topic watch table, switch users whose posts
0822 // have moved, over to watching the new topic
0823 $sql = "UPDATE " . TOPICS_WATCH_TABLE . "
0824 SET topic_id = $new_topic_id
0825 WHERE topic_id = $topic_id
0826 AND user_id IN ($user_id_sql)";
0827 if (!$db->sql_query($sql))
0828 {
0829 message_die(GENERAL_ERROR, 'Could not update topics watch table', '', __LINE__, __FILE__, $sql);
0830 }
0831
0832 $sql_where = (!empty($HTTP_POST_VARS['split_type_beyond'])) ? " post_time >= $post_time AND topic_id = $topic_id" : "post_id IN ($post_id_sql)";
0833
0834 $sql = "UPDATE " . POSTS_TABLE . "
0835 SET topic_id = $new_topic_id, forum_id = $new_forum_id
0836 WHERE $sql_where";
0837 if (!$db->sql_query($sql, END_TRANSACTION))
0838 {
0839 message_die(GENERAL_ERROR, 'Could not update posts table', '', __LINE__, __FILE__, $sql);
0840 }
0841
0842 sync('topic', $new_topic_id);
0843 sync('topic', $topic_id);
0844 sync('forum', $new_forum_id);
0845 sync('forum', $forum_id);
0846
0847 $template->assign_vars(array(
0848 'META' => '<meta http-equiv="refresh" content="3;url=' . "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id'] . '">')
0849 );
0850
0851 $message = $lang['Topic_split'] . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id'] . '">', '</a>');
0852 message_die(GENERAL_MESSAGE, $message);
0853 }
0854 }
0855 else
0856 {
0857 //
0858 // Set template files
0859 //
0860 $template->set_filenames(array(
0861 'split_body' => 'modcp_split.tpl')
0862 );
0863
0864 $sql = "SELECT u.username, p.*, pt.post_text, pt.bbcode_uid, pt.post_subject, p.post_username
0865 FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
0866 WHERE p.topic_id = $topic_id
0867 AND p.poster_id = u.user_id
0868 AND p.post_id = pt.post_id
0869 ORDER BY p.post_time ASC";
0870 if ( !($result = $db->sql_query($sql)) )
0871 {
0872 message_die(GENERAL_ERROR, 'Could not get topic/post information', '', __LINE__, __FILE__, $sql);
0873 }
0874
0875 $s_hidden_fields = '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" /><input type="hidden" name="' . POST_TOPIC_URL . '" value="' . $topic_id . '" /><input type="hidden" name="mode" value="split" />';
0876
0877 if( ( $total_posts = $db->sql_numrows($result) ) > 0 )
0878 {
0879 $postrow = $db->sql_fetchrowset($result);
0880
0881 $template->assign_vars(array(
0882 'L_SPLIT_TOPIC' => $lang['Split_Topic'],
0883 'L_SPLIT_TOPIC_EXPLAIN' => $lang['Split_Topic_explain'],
0884 'L_AUTHOR' => $lang['Author'],
0885 'L_MESSAGE' => $lang['Message'],
0886 'L_SELECT' => $lang['Select'],
0887 'L_SPLIT_SUBJECT' => $lang['Split_title'],
0888 'L_SPLIT_FORUM' => $lang['Split_forum'],
0889 'L_POSTED' => $lang['Posted'],
0890 'L_SPLIT_POSTS' => $lang['Split_posts'],
0891 'L_SUBMIT' => $lang['Submit'],
0892 'L_SPLIT_AFTER' => $lang['Split_after'],
0893 'L_POST_SUBJECT' => $lang['Post_subject'],
0894 'L_MARK_ALL' => $lang['Mark_all'],
0895 'L_UNMARK_ALL' => $lang['Unmark_all'],
0896 'L_POST' => $lang['Post'],
0897
0898 'FORUM_NAME' => $forum_name,
0899
0900 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"),
0901
0902 'S_SPLIT_ACTION' => append_sid("modcp.$phpEx"),
0903 'S_HIDDEN_FIELDS' => $s_hidden_fields,
0904 'S_FORUM_SELECT' => make_forum_select("new_forum_id", false, $forum_id))
0905 );
0906
0907 //
0908 // Define censored word matches
0909 //
0910 $orig_word = array();
0911 $replacement_word = array();
0912 obtain_word_list($orig_word, $replacement_word);
0913
0914 for($i = 0; $i < $total_posts; $i++)
0915 {
0916 $post_id = $postrow[$i]['post_id'];
0917 $poster_id = $postrow[$i]['poster_id'];
0918 $poster = $postrow[$i]['username'];
0919
0920 $post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']);
0921
0922 $bbcode_uid = $postrow[$i]['bbcode_uid'];
0923 $message = $postrow[$i]['post_text'];
0924 $post_subject = ( $postrow[$i]['post_subject'] != '' ) ? $postrow[$i]['post_subject'] : $topic_title;
0925
0926 //
0927 // If the board has HTML off but the post has HTML
0928 // on then we process it, else leave it alone
0929 //
0930 if ( !$board_config['allow_html'] )
0931 {
0932 if ( $postrow[$i]['enable_html'] )
0933 {
0934 $message = preg_replace('#(<)([\/]?.*?)(>)#is', '<\\2>', $message);
0935 }
0936 }
0937
0938 if ( $bbcode_uid != '' )
0939 {
0940 $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
0941 }
0942
0943 if ( count($orig_word) )
0944 {
0945 $post_subject = preg_replace($orig_word, $replacement_word, $post_subject);
0946 $message = preg_replace($orig_word, $replacement_word, $message);
0947 }
0948
0949 $message = make_clickable($message);
0950
0951 if ( $board_config['allow_smilies'] && $postrow[$i]['enable_smilies'] )
0952 {
0953 $message = smilies_pass($message);
0954 }
0955
0956 $message = str_replace("\n", '<br />', $message);
0957
0958 $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
0959 $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
0960
0961 $checkbox = ( $i > 0 ) ? '<input type="checkbox" name="post_id_list[]" value="' . $post_id . '" />' : ' ';
0962
0963 $template->assign_block_vars('postrow', array(
0964 'ROW_COLOR' => '#' . $row_color,
0965 'ROW_CLASS' => $row_class,
0966 'POSTER_NAME' => $poster,
0967 'POST_DATE' => $post_date,
0968 'POST_SUBJECT' => $post_subject,
0969 'MESSAGE' => $message,
0970 'POST_ID' => $post_id,
0971
0972 'S_SPLIT_CHECKBOX' => $checkbox)
0973 );
0974 }
0975
0976 $template->pparse('split_body');
0977 }
0978 }
0979 break;
0980
0981 case 'ip':
0982 $page_title = $lang['Mod_CP'];
0983 include($phpbb_root_path . 'includes/page_header.'.$phpEx);
0984
0985 $rdns_ip_num = ( isset($HTTP_GET_VARS['rdns']) ) ? $HTTP_GET_VARS['rdns'] : "";
0986
0987 if ( !$post_id )
0988 {
0989 message_die(GENERAL_MESSAGE, $lang['No_such_post']);
0990 }
0991
0992 //
0993 // Set template files
0994 //
0995 $template->set_filenames(array(
0996 'viewip' => 'modcp_viewip.tpl')
0997 );
0998
0999 // Look up relevent data for this post
1000 $sql = "SELECT poster_ip, poster_id
1001 FROM " . POSTS_TABLE . "
1002 WHERE post_id = $post_id
1003 AND forum_id = $forum_id";
1004 if ( !($result = $db->sql_query($sql)) )
1005 {
1006 message_die(GENERAL_ERROR, 'Could not get poster IP information', '', __LINE__, __FILE__, $sql);
1007 }
1008
1009 if ( !($post_row = $db->sql_fetchrow($result)) )
1010 {
1011 message_die(GENERAL_MESSAGE, $lang['No_such_post']);
1012 }
1013
1014 $ip_this_post = decode_ip($post_row['poster_ip']);
1015 $ip_this_post = ( $rdns_ip_num == $ip_this_post ) ? htmlspecialchars(gethostbyaddr($ip_this_post)) : $ip_this_post;
1016
1017 $poster_id = $post_row['poster_id'];
1018
1019 $template->assign_vars(array(
1020 'L_IP_INFO' => $lang['IP_info'],
1021 'L_THIS_POST_IP' => $lang['This_posts_IP'],
1022 'L_OTHER_IPS' => $lang['Other_IP_this_user'],
1023 'L_OTHER_USERS' => $lang['Users_this_IP'],
1024 'L_LOOKUP_IP' => $lang['Lookup_IP'],
1025 'L_SEARCH' => $lang['Search'],
1026
1027 'SEARCH_IMG' => $images['icon_search'],
1028
1029 'IP' => $ip_this_post,
1030
1031 'U_LOOKUP_IP' => append_sid("modcp.$phpEx?mode=ip&" . POST_POST_URL . "=$post_id&" . POST_TOPIC_URL . "=$topic_id&rdns=$ip_this_post&p_sid=" . $userdata['priv_session_id']))
1032 );
1033
1034 //
1035 // Get other IP's this user has posted under
1036 //
1037 $sql = "SELECT poster_ip, COUNT(*) AS postings
1038 FROM " . POSTS_TABLE . "
1039 WHERE poster_id = $poster_id
1040 GROUP BY poster_ip
1041 ORDER BY " . (( SQL_LAYER == 'msaccess' ) ? 'COUNT(*)' : 'postings' ) . " DESC";
1042 if ( !($result = $db->sql_query($sql)) )
1043 {
1044 message_die(GENERAL_ERROR, 'Could not get IP information for this user', '', __LINE__, __FILE__, $sql);
1045 }
1046
1047 if ( $row = $db->sql_fetchrow($result) )
1048 {
1049 $i = 0;
1050 do
1051 {
1052 if ( $row['poster_ip'] == $post_row['poster_ip'] )
1053 {
1054 $template->assign_vars(array(
1055 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] ))
1056 );
1057 continue;
1058 }
1059
1060 $ip = decode_ip($row['poster_ip']);
1061 $ip = ( $rdns_ip_num == $row['poster_ip'] || $rdns_ip_num == 'all') ? htmlspecialchars(gethostbyaddr($ip)) : $ip;
1062
1063 $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
1064 $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
1065
1066 $template->assign_block_vars('iprow', array(
1067 'ROW_COLOR' => '#' . $row_color,
1068 'ROW_CLASS' => $row_class,
1069 'IP' => $ip,
1070 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] ),
1071
1072 'U_LOOKUP_IP' => append_sid("modcp.$phpEx?mode=ip&" . POST_POST_URL . "=$post_id&" . POST_TOPIC_URL . "=$topic_id&rdns=" . $row['poster_ip'] . "&p_sid=" . $userdata['priv_session_id']))
1073 );
1074
1075 $i++;
1076 }
1077 while ( $row = $db->sql_fetchrow($result) );
1078 }
1079
1080 //
1081 // Get other users who've posted under this IP
1082 //
1083 $sql = "SELECT u.user_id, u.username, COUNT(*) as postings
1084 FROM " . USERS_TABLE ." u, " . POSTS_TABLE . " p
1085 WHERE p.poster_id = u.user_id
1086 AND p.poster_ip = '" . $post_row['poster_ip'] . "'
1087 GROUP BY u.user_id, u.username
1088 ORDER BY " . (( SQL_LAYER == 'msaccess' ) ? 'COUNT(*)' : 'postings' ) . " DESC";
1089 if ( !($result = $db->sql_query($sql)) )
1090 {
1091 message_die(GENERAL_ERROR, 'Could not get posters information based on IP', '', __LINE__, __FILE__, $sql);
1092 }
1093
1094 if ( $row = $db->sql_fetchrow($result) )
1095 {
1096 $i = 0;
1097 do
1098 {
1099 $id = $row['user_id'];
1100 $username = ( $id == ANONYMOUS ) ? $lang['Guest'] : $row['username'];
1101
1102 $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
1103 $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
1104
1105 $template->assign_block_vars('userrow', array(
1106 'ROW_COLOR' => '#' . $row_color,
1107 'ROW_CLASS' => $row_class,
1108 'USERNAME' => $username,
1109 'POSTS' => $row['postings'] . ' ' . ( ( $row['postings'] == 1 ) ? $lang['Post'] : $lang['Posts'] ),
1110 'L_SEARCH_POSTS' => sprintf($lang['Search_user_posts'], $username),
1111
1112 'U_PROFILE' => ($id == ANONYMOUS) ? append_sid("modcp.$phpEx?mode=ip&" . POST_POST_URL . "=" . $post_id . "&" . POST_TOPIC_URL . "=" . $topic_id . "&p_sid=" . $userdata['priv_session_id']) : append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$id"),
1113 'U_SEARCHPOSTS' => append_sid("search.$phpEx?search_author=" . (($id == ANONYMOUS) ? 'Anonymous' : urlencode($username)) . "&showresults=topics"))
1114 );
1115
1116 $i++;
1117 }
1118 while ( $row = $db->sql_fetchrow($result) );
1119 }
1120
1121 $template->pparse('viewip');
1122
1123 break;
1124
1125 default:
1126 $page_title = $lang['Mod_CP'];
1127 include($phpbb_root_path . 'includes/page_header.'.$phpEx);
1128
1129 $template->assign_vars(array(
1130 'FORUM_NAME' => $forum_name,
1131
1132 'L_MOD_CP' => $lang['Mod_CP'],
1133 'L_MOD_CP_EXPLAIN' => $lang['Mod_CP_explain'],
1134 'L_SELECT' => $lang['Select'],
1135 'L_DELETE' => $lang['Delete'],
1136 'L_MOVE' => $lang['Move'],
1137 'L_LOCK' => $lang['Lock'],
1138 'L_UNLOCK' => $lang['Unlock'],
1139 'L_TOPICS' => $lang['Topics'],
1140 'L_REPLIES' => $lang['Replies'],
1141 'L_LASTPOST' => $lang['Last_Post'],
1142 'L_SELECT' => $lang['Select'],
1143
1144 'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"),
1145 'S_HIDDEN_FIELDS' => '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" /><input type="hidden" name="p_sid" value="' . $userdata['priv_session_id'] . '" /><input type="hidden" name="' . POST_FORUM_URL . '" value="' . $forum_id . '" />',
1146 'S_MODCP_ACTION' => append_sid("modcp.$phpEx"))
1147 );
1148
1149 $template->set_filenames(array(
1150 'body' => 'modcp_body.tpl')
1151 );
1152 make_jumpbox('modcp.'.$phpEx);
1153
1154 //
1155 // Define censored word matches
1156 //
1157 $orig_word = array();
1158 $replacement_word = array();
1159 obtain_word_list($orig_word, $replacement_word);
1160
1161 $sql = "SELECT t.*, u.username, u.user_id, p.post_time
1162 FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p
1163 WHERE t.forum_id = $forum_id
1164 AND t.topic_poster = u.user_id
1165 AND p.post_id = t.topic_last_post_id
1166 ORDER BY t.topic_type DESC, p.post_time DESC
1167 LIMIT $start, " . $board_config['topics_per_page'];
1168 if ( !($result = $db->sql_query($sql)) )
1169 {
1170 message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql);
1171 }
1172
1173 while ( $row = $db->sql_fetchrow($result) )
1174 {
1175 $topic_title = '';
1176
1177 if ( $row['topic_status'] == TOPIC_LOCKED )
1178 {
1179 $folder_img = $images['folder_locked'];
1180 $folder_alt = $lang['Topic_locked'];
1181 }
1182 else
1183 {
1184 if ( $row['topic_type'] == POST_ANNOUNCE )
1185 {
1186 $folder_img = $images['folder_announce'];
1187 $folder_alt = $lang['Topic_Announcement'];
1188 }
1189 else if ( $row['topic_type'] == POST_STICKY )
1190 {
1191 $folder_img = $images['folder_sticky'];
1192 $folder_alt = $lang['Topic_Sticky'];
1193 }
1194 else
1195 {
1196 $folder_img = $images['folder'];
1197 $folder_alt = $lang['No_new_posts'];
1198 }
1199 }
1200
1201 $topic_id = $row['topic_id'];
1202 $topic_type = $row['topic_type'];
1203 $topic_status = $row['topic_status'];
1204
1205 if ( $topic_type == POST_ANNOUNCE )
1206 {
1207 $topic_type = $lang['Topic_Announcement'] . ' ';
1208 }
1209 else if ( $topic_type == POST_STICKY )
1210 {
1211 $topic_type = $lang['Topic_Sticky'] . ' ';
1212 }
1213 else if ( $topic_status == TOPIC_MOVED )
1214 {
1215 $topic_type = $lang['Topic_Moved'] . ' ';
1216 }
1217 else
1218 {
1219 $topic_type = '';
1220 }
1221
1222 if ( $row['topic_vote'] )
1223 {
1224 $topic_type .= $lang['Topic_Poll'] . ' ';
1225 }
1226
1227 $topic_title = $row['topic_title'];
1228 if ( count($orig_word) )
1229 {
1230 $topic_title = preg_replace($orig_word, $replacement_word, $topic_title);
1231 }
1232
1233 $u_view_topic = append_sid("modcp.$phpEx?mode=split&" . POST_TOPIC_URL . "=$topic_id&p_sid=" . $userdata['priv_session_id']);
1234 $topic_replies = $row['topic_replies'];
1235
1236 $last_post_time = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']);
1237
1238 $template->assign_block_vars('topicrow', array(
1239 'U_VIEW_TOPIC' => $u_view_topic,
1240
1241 'TOPIC_FOLDER_IMG' => $folder_img,
1242 'TOPIC_TYPE' => $topic_type,
1243 'TOPIC_TITLE' => $topic_title,
1244 'REPLIES' => $topic_replies,
1245 'LAST_POST_TIME' => $last_post_time,
1246 'TOPIC_ID' => $topic_id,
1247
1248 'L_TOPIC_FOLDER_ALT' => $folder_alt)
1249 );
1250 }
1251
1252 $template->assign_vars(array(
1253 'PAGINATION' => generate_pagination("modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&p_sid=" . $userdata['priv_session_id'], $forum_topics, $board_config['topics_per_page'], $start),
1254 'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $forum_topics / $board_config['topics_per_page'] )),
1255 'L_GOTO_PAGE' => $lang['Goto_page'])
1256 );
1257
1258 $template->pparse('body');
1259
1260 break;
1261 }
1262
1263 include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
1264
1265 ?>