diff options
author | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-11-25 23:46:23 +0000 |
---|---|---|
committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-11-25 23:46:23 +0000 |
commit | 734c286f9fdfee1ce65f2e92730b9b0c50e27d62 (patch) | |
tree | 3729b3bc729df5c46756f6f816c6d77e26bd04b5 /phpBB | |
parent | efad1f2491413b1609577f59a94987492fd6fe76 (diff) | |
download | forums-734c286f9fdfee1ce65f2e92730b9b0c50e27d62.tar forums-734c286f9fdfee1ce65f2e92730b9b0c50e27d62.tar.gz forums-734c286f9fdfee1ce65f2e92730b9b0c50e27d62.tar.bz2 forums-734c286f9fdfee1ce65f2e92730b9b0c50e27d62.tar.xz forums-734c286f9fdfee1ce65f2e92730b9b0c50e27d62.zip |
Some changes to forum admin to better reflect subforum 'post/non-post' changes ... no guarantees I've not broken something ... note the schema changes
git-svn-id: file:///svn/phpbb/trunk@3094 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/admin/admin_forums.php | 452 | ||||
-rw-r--r-- | phpBB/includes/functions.php | 6 | ||||
-rw-r--r-- | phpBB/install/schemas/mysql_schema.sql | 9 | ||||
-rw-r--r-- | phpBB/language/en/lang_admin.php | 26 | ||||
-rw-r--r-- | phpBB/posting.php | 53 |
5 files changed, 255 insertions, 291 deletions
diff --git a/phpBB/admin/admin_forums.php b/phpBB/admin/admin_forums.php index 17fea8fac4..2eed753a0c 100644 --- a/phpBB/admin/admin_forums.php +++ b/phpBB/admin/admin_forums.php @@ -67,7 +67,7 @@ switch ($mode) case 'move_up': case 'move_down': $show_index = TRUE; - $forum_id = intval($_GET['f']); + $forum_id = intval($_GET['this_f']); $result = $db->sql_query('SELECT parent_id, left_id, right_id FROM ' . FORUMS_TABLE . " WHERE forum_id = $forum_id"); if (!$row = $db->sql_fetchrow($result)) @@ -83,16 +83,16 @@ switch ($mode) if ($mode == 'move_up') { $sql = 'SELECT forum_id, left_id, right_id - FROM ' . FORUMS_TABLE . " - WHERE parent_id = $parent_id AND right_id < $right_id - ORDER BY right_id DESC"; + FROM ' . FORUMS_TABLE . " + WHERE parent_id = $parent_id AND right_id < $right_id + ORDER BY right_id DESC"; } else { $sql = 'SELECT forum_id, left_id, right_id - FROM ' . FORUMS_TABLE . " - WHERE parent_id = $parent_id AND left_id > $left_id - ORDER BY left_id ASC"; + FROM ' . FORUMS_TABLE . " + WHERE parent_id = $parent_id AND left_id > $left_id + ORDER BY left_id ASC"; } $result = $db->sql_query_limit($sql, 1); @@ -124,8 +124,8 @@ switch ($mode) // $forum_ids = array(); $sql = 'SELECT forum_id - FROM ' . FORUMS_TABLE . ' - WHERE left_id > ' . $forum_info[$up_id]['left_id'] . ' AND right_id < ' . $forum_info[$up_id]['right_id']; + FROM ' . FORUMS_TABLE . ' + WHERE left_id > ' . $forum_info[$up_id]['left_id'] . ' AND right_id < ' . $forum_info[$up_id]['right_id']; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) @@ -134,57 +134,43 @@ switch ($mode) } $sql = 'UPDATE ' . FORUMS_TABLE . ' - SET left_id = left_id + ' . ($diff_up + 1) . ', right_id = right_id + ' . ($diff_up + 1) . ' - WHERE left_id > ' . $forum_info[$down_id]['left_id'] . ' AND right_id < ' . $forum_info[$down_id]['right_id']; + SET left_id = left_id + ' . ($diff_up + 1) . ', right_id = right_id + ' . ($diff_up + 1) . ' + WHERE left_id > ' . $forum_info[$down_id]['left_id'] . ' AND right_id < ' . $forum_info[$down_id]['right_id']; $db->sql_query($sql); if (count($forum_ids)) { $sql = 'UPDATE ' . FORUMS_TABLE . ' - SET left_id = left_id - ' . ($diff_down + 1) . ', right_id = right_id - ' . ($diff_down + 1) . ' - WHERE forum_id IN (' . implode(', ', $forum_ids) . ')'; + SET left_id = left_id - ' . ($diff_down + 1) . ', right_id = right_id - ' . ($diff_down + 1) . ' + WHERE forum_id IN (' . implode(', ', $forum_ids) . ')'; $db->sql_query($sql); } $sql = 'UPDATE ' . FORUMS_TABLE . ' - SET left_id = ' . $forum_info[$down_id]['left_id'] . ', right_id = ' . ($forum_info[$down_id]['left_id'] + $diff_up) . ' - WHERE forum_id = ' . $up_id; + SET left_id = ' . $forum_info[$down_id]['left_id'] . ', right_id = ' . ($forum_info[$down_id]['left_id'] + $diff_up) . ' + WHERE forum_id = ' . $up_id; $db->sql_query($sql); $sql = 'UPDATE ' . FORUMS_TABLE . ' - SET left_id = ' . ($forum_info[$up_id]['right_id'] - $diff_down) . ', right_id = ' . $forum_info[$up_id]['right_id'] . ' - WHERE forum_id = ' . $down_id; + SET left_id = ' . ($forum_info[$up_id]['right_id'] - $diff_down) . ', right_id = ' . $forum_info[$up_id]['right_id'] . ' + WHERE forum_id = ' . $down_id; $db->sql_query($sql); break; case 'create': if (!trim($_POST['forum_name'])) { - message_die(ERROR, 'Cannot create a forum without a name'); + trigger_error('Cannot create a forum without a name'); } - $parent_id = (!empty($_POST['parent_id'])) ? $_POST['parent_id'] : 0; - $forum_status = (!empty($_POST['is_category'])) ? ITEM_CATEGORY : $_POST['forum_status']; - $forum_name = str_replace("\'", "''", $_POST['forum_name']); - $forum_desc = str_replace("\'", "''", $_POST['forum_desc']); - - $forum_style = (!empty($_POST['forum_style'])) ? intval($_POST['forum_style']) : 'NULL'; - $post_count_inc = (!empty($_POST['disable_post_count'])) ? 0 : 1; - $moderated = (!empty($_POST['moderated'])) ? 1 : 0; - - $prune_enable = (!empty($_POST['prune_enable'])) ? 1 : 0; - $prune_days = intval($_POST['prune_days']); - $prune_freq = intval($_POST['prune_freq']); - - $result = $db->sql_query('SELECT MAX(forum_id) AS max_id FROM ' . FORUMS_TABLE); - $forum_id = $db->sql_fetchfield('max_id', 0, $result) + 1; + $parent_id = (!empty($_POST['parent_id'])) ? intval($_POST['parent_id']) : 0; if ($parent_id) { $result = $db->sql_query('SELECT left_id, right_id FROM ' . FORUMS_TABLE . " WHERE forum_id = $parent_id"); if (!$row = $db->sql_fetchrow($result)) { - message_die(ERROR, 'Parent does not exist'); + trigger_error('Parent does not exist', E_USER_ERROR); } extract($row); @@ -197,21 +183,39 @@ switch ($mode) else { $result = $db->sql_query('SELECT MAX(right_id) AS right_id FROM ' . FORUMS_TABLE); + $left_id = $db->sql_fetchfield('right_id', 0, $result) + 1; $right_id = $left_id + 1; } - $sql = 'INSERT INTO ' . FORUMS_TABLE . " (forum_id, forum_name, forum_desc, parent_id, left_id, right_id, forum_status, forum_style, post_count_inc, moderated, prune_enable, prune_days, prune_freq) - VALUES ($forum_id, '$forum_name', '$forum_desc', $parent_id, $left_id, $right_id, $forum_status, $forum_style, $post_count_inc, $moderated, $prune_enable, $prune_days, $prune_freq)"; - $db->sql_query($sql); + $sql = array( + 'parent_id' => $parent_id, + 'left_id' => $left_id, + 'right_id' => $right_id, + 'forum_status' => (!empty($_POST['is_category'])) ? ITEM_CATEGORY : intval($_POST['forum_status']), + 'forum_postable' => (!empty($_POST['is_category'])) ? 0 : 1, + 'forum_name' => sql_quote($_POST['forum_name']), + 'forum_desc' => sql_quote($_POST['forum_desc']), + 'forum_style' => (!empty($_POST['forum_style'])) ? intval($_POST['forum_style']) : 'NULL', + 'enable_post_count' => (!empty($_POST['disable_post_count'])) ? 0 : 1, + 'enable_icons' => (!empty($_POST['enable_icons'])) ? 1 : 0, + 'enable_moderate' => (!empty($_POST['moderated'])) ? 1 : 0, + 'enable_prune' => (!empty($_POST['prune_enable'])) ? 1 : 0, + 'prune_days' => intval($_POST['prune_days']), + 'prune_freq' => intval($_POST['prune_freq']) + ); - $message = $user->lang['Forums_updated'] . "<br /><br />" . sprintf($user->lang['Click_return_forumadmin'], '<a href="admin_forums.' . $phpEx . $SID . '&parent_id=' . $parent_id . '">', '</a>') . '<br /><br />' . sprintf($user->lang['Click_return_admin_index'], '<a href="index.' . $phpEx . $SID . '?pane=right' . '">', '</a>'); - message_die(MESSAGE, $message); + $db->sql_query('INSERT INTO ' . FORUMS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql)); + + $forum_id = $db->sql_nextid(); + + // Redirect to permissions + redirect('admin_permissions.' . $phpEx . $SID . '&mode=forums&f=' . $forum_id); break; case 'modify': - if (!$forum_id = intval($_POST['forum_id'])) + if (!$forum_id = intval($_POST['f'])) { message_die(ERROR, 'No forum specified'); } @@ -233,20 +237,23 @@ switch ($mode) } $sql = array( - 'forum_name' => (!empty($_POST['forum_name'])) ? $_POST['forum_name'] : $row['forum_name'], - 'forum_desc' => (!empty($_POST['forum_desc'])) ? $_POST['forum_desc'] : $row['forum_desc'], - 'forum_status' => (!empty($_POST['set_category']) && $action) ? ITEM_CATEGORY : intval($_POST['forum_status']), - 'forum_style' => (!empty($_POST['forum_style'])) ? $_POST['forum_style'] : NULL, 'parent_id' => $parent_id, - 'prune_enable' => (!empty($_POST['prune_enable'])) ? 1 : 0, + 'forum_name' => (!empty($_POST['forum_name'])) ? $_POST['forum_name'] : $row['forum_name'], + 'forum_desc' => (!empty($_POST['forum_desc'])) ? $_POST['forum_desc'] : $row['forum_desc'], + 'forum_status' => intval($_POST['forum_status']), + 'forum_postable' => (!empty($_POST['is_postable'])) ? 1 : 0, + 'forum_style' => (!empty($_POST['forum_style'])) ? $_POST['forum_style'] : NULL, + 'forum_image' => (!empty($_POST['forum_image'])) ? $_POST['forum_image'] : '', + 'display_on_index' => (!empty($_POST['display_on_index'])) ? 1 : 0, + 'enable_post_count' => (!empty($_POST['disable_post_count'])) ? 0 : 1, + 'enable_icons' => (!empty($_POST['topic_icons'])) ? 1 : 0, + 'enable_moderate' => (!empty($_POST['moderated'])) ? 1 : 0, + 'enable_prune' => (!empty($_POST['prune_enable'])) ? 1 : 0, 'prune_days' => intval($_POST['prune_days']), 'prune_freq' => intval($_POST['prune_freq']), - 'display_on_index' => (!empty($_POST['display_on_index'])) ? 1 : 0, - 'post_count_inc' => (!empty($_POST['disable_post_count'])) ? 0 : 1, - 'moderated' => (!empty($_POST['moderated'])) ? 1 : 0, ); - if (!empty($_POST['set_category']) && $action) + if (!empty($_POST['set_nonpostable']) && $action) { if ($action == 'move' && $_POST['to_forum_id']) { @@ -274,7 +281,7 @@ switch ($mode) // // wasn't this form submitted? is anyone trying to remotely delete forums // - message_die(ERROR, 'Did not submit'); + trigger_error('Did not submit', E_USER_ERROR); } $action_subforums = (!empty($_POST['action_subforums'])) ? $_POST['action_subforums'] : ''; @@ -356,9 +363,8 @@ switch ($mode) message_die(MESSAGE, $message); break; - case 'forum_sync': - sync('forum', intval($_GET['f'])); - $show_index = TRUE; + case 'sync': + sync('forum', intval($_GET['this_f'])); break; case 'add': @@ -366,7 +372,7 @@ switch ($mode) // Show form to create/modify a forum if ($mode == 'edit') { - $forum_id = intval($_GET['f']); + $forum_id = intval($_GET['this_f']); $row = get_forum_info($forum_id); extract($row); @@ -403,6 +409,7 @@ switch ($mode) $newmode = 'create'; $buttonvalue = $user->lang['Create_forum']; + $forum_id = $parent_id; $forum_desc = ''; $forum_style = ''; $forum_status = ITEM_UNLOCKED; @@ -410,6 +417,7 @@ switch ($mode) $post_count_inc = TRUE; $moderated = FALSE; + $enable_icons = TRUE; $prune_enabled = ''; $prune_days = 7; @@ -419,10 +427,10 @@ switch ($mode) $styles_list = make_styles_list($forum_style); $forumlocked = ($forum_status == ITEM_LOCKED) ? ' selected="selected"' : ''; - $forumunlocked = ($forum_status == ITEM_UNLOCKED || $forum_status == ITEM_CATEGORY) ? ' selected="selected"' : ''; + $forumunlocked = ($forum_status == ITEM_UNLOCKED) ? ' selected="selected"' : ''; - $forum_checked = ($forum_status != ITEM_CATEGORY) ? 'checked="checked" ' : ''; - $category_checked = ($forum_status == ITEM_CATEGORY) ? 'checked="checked" ' : ''; + $postable_checked = ($forum_postable) ? 'checked="checked" ' : ''; + $nonpostable_checked = (!$forum_postable) ? 'checked="checked" ' : ''; $statuslist = '<option value="' . ITEM_UNLOCKED . '"' . $forumunlocked . '>' . $user->lang['Unlocked'] . "</option>\n"; $statuslist .= '<option value="' . ITEM_LOCKED . '"' . $forumlocked . '>' . $user->lang['Locked'] . "</option>\n"; @@ -439,57 +447,74 @@ switch ($mode) <th colspan="2"><?php echo $user->lang['General_settings'] ?></th> </tr> <tr> - <td class="row1"><?php echo ($forum_status != ITEM_CATEGORY) ? $user->lang['Forum_name'] : $user->lang['Category_name'] ?></td> - <td class="row2"><input type="text" size="25" name="forum_name" value="<?php echo $forum_name ?>" class="post" /></td> + <td class="row1"><?php echo $user->lang['Parent'] ?></td> + <td class="row2"><select name="parent_id"><option value="0"><?php echo $user->lang['No_parent'] ?></option><?php echo $parents_list ?></select></td> + </tr> + <tr> + <td class="row1"><?php echo $user->lang['Forum_name']; ?></td> + <td class="row2"><input class="post" type="text" size="25" name="forum_name" value="<?php echo $forum_name ?>" /></td> </tr> <tr> <td class="row1"><?php echo $user->lang['Forum_desc'] ?></td> - <td class="row2"><textarea rows="5" cols="45" wrap="virtual" name="forum_desc" class="post"><?php echo $forum_desc ?></textarea></td> -</tr> + <td class="row2"><textarea class="post" rows="5" cols="45" wrap="virtual" name="forum_desc"><?php echo $forum_desc ?></textarea></td> + </tr> + <tr> + <td class="row1"><?php echo $user->lang['FORUM_TYPE'] ?></td> + <td class="row2"><input type="radio" name="is_postable" value="1" <?php echo $postable_checked ?>/><?php echo $user->lang['IS_POSTABLE'] ?> <input type="radio" name="is_postable" value="0" <?php echo $nonpostable_checked ?>/><?php echo $user->lang['NOT_POSTABLE'] ?></td> + </tr> + <tr> + <th colspan="2"><?php echo $user->lang['Forum_settings'] ?></th> + </tr> <?php - if ($mode == 'add' || $forum_status == ITEM_CATEGORY) + if ($forum_postable || $mode == 'add') { ?> <tr> - <td class="row1"><?php echo $user->lang['Forum_type'] ?></td> - <td class="row2"><input type="radio" name="is_category" value="0" <?php echo $forum_checked ?>/><?php echo $user->lang['Forum'] ?> <input type="radio" name="is_category" value="1" <?php echo $category_checked ?>/><?php echo $user->lang['Category'] ?></td> + <td class="row1"><?php echo $user->lang['FORUM_STATUS'] ?></td> + <td class="row2"><select name="forum_status"><?php echo $statuslist ?></select></td> </tr> <?php - } + if ($mode == 'edit') + { ?> <tr> - <td class="row1"><?php echo $user->lang['Parent'] ?></td> - <td class="row2"><select name="parent_id"><option value="0"><?php echo $user->lang['No_parent'] ?></option><?php echo $parents_list ?></select></td> - </tr> - <tr> - <td class="row1"><?php echo $user->lang['Style'] ?></td> - <td class="row2"><select name="forum_style"><option value="0"><?php echo $user->lang['Default_style'] ?></option><?php echo $styles_list ?></select></td> + <td class="row1"><?php echo $user->lang['FORUM_TYPE'] ?></td> + <td class="row2"><table width="100%" cellspacing="0" cellpadding="0" border="0"> + <tr> + <td><input type="checkbox" name="set_nonpostable" /> <?php echo $user->lang['SET_NON_POSTABLE'] ?></td> + </tr> + <tr> + <td> <input type="radio" name="action" value="delete" checked="checked" /> <?php echo $user->lang['Delete_all_posts'] ?></td> + </tr> + <tr> + <td> <input type="radio" name="action" value="move" /> <?php echo $user->lang['Move_posts_to'] ?> <select name="to_forum_id"><?php echo $forums_list ?></select></td> + </tr> + </table></td> </tr> <?php - if ($forum_status != ITEM_CATEGORY) - { + } ?> <tr> - <th colspan="2"><?php echo $user->lang['Forum_settings'] ?></th> - </tr> - <tr> - <td class="row1"><?php echo $user->lang['Forum_status'] ?></td> - <td class="row2"><select name="forum_status"><?php echo $statuslist ?></select></td> + <td class="row1"><?php echo $user->lang['FORUM_STYLE'] ?></td> + <td class="row2"><select name="forum_style"><option value="0"><?php echo $user->lang['Default_style'] ?></option><?php echo $styles_list ?></select></td> </tr> <tr> - <td class="row1"><?php echo $user->lang['Options'] ?></td> + <td class="row1"><?php echo $user->lang['OPTIONS'] ?></td> <td class="row2"><table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> - <td><input type="checkbox" name="disable_post_count"<?php echo ((!empty($post_count_inc)) ? ' ' : 'checked="checked" ') ?>/> <?php echo $user->lang['Disable_post_count'] ?></td> + <td><input type="checkbox" name="disable_post_count"<?php echo ((!empty($post_count_inc)) ? ' ' : 'checked="checked" ') ?>/> <?php echo $user->lang['DISABLE_POST_COUNT'] ?></td> + </tr> + <tr> + <td><input type="checkbox" name="topic_icons"<?php echo ((!empty($enable_icons)) ? 'checked="checked" ' : ' ') ?>/> <?php echo $user->lang['ENABLE_TOPIC_ICONS']; ?></td> </tr> <tr> - <td><input type="checkbox" name="moderated"<?php echo ((!empty($moderated)) ? 'checked="checked" ' : ' ') ?>/> <?php echo $user->lang['Forum_is_moderated']; ?></td> + <td><input type="checkbox" name="moderated"<?php echo ((!empty($enable_moderate)) ? 'checked="checked" ' : ' ') ?>/> <?php echo $user->lang['FORUM_MODERATED']; ?></td> </tr> <?php @@ -498,7 +523,7 @@ switch ($mode) // if this forum is a subforum put the "display on index" checkbox if ($parent_info = get_forum_info($parent_id)) { - if ($parent_info['parent_id'] > 0 || $parent_info['forum_status'] != ITEM_CATEGORY) + if ($parent_info['parent_id'] > 0 || !$parent_info['forum_postable']) { ?> @@ -510,34 +535,10 @@ switch ($mode) } } } -?> - </td></table> - </tr> -<?php - - if ($mode == 'edit') - { ?> - <tr> - <td class="row1"><?php echo $user->lang['Forum_type'] ?></td> - <td class="row2"><table width="100%" cellspacing="0" cellpadding="0" border="0"> - <tr> - <td><input type="checkbox" name="set_category" /> <?php echo $user->lang['Set_as_category'] ?></td> - </tr> - <tr> - <td> <input type="radio" name="action" value="delete" checked="checked" /> <?php echo $user->lang['Delete_all_posts'] ?></td> - </tr> - <tr> - <td> <input type="radio" name="action" value="move" /> <?php echo $user->lang['Move_posts_to'] ?> <select name="to_forum_id"><?php echo $forums_list ?></select></td> - </tr> - </table></td> + </td></table> </tr> -<?php - - } - -?> <tr> <td class="row1"><?php echo $user->lang['Forum_pruning'] ?></td> <td class="row2"><table cellspacing="0" cellpadding="1" border="0"> @@ -558,21 +559,34 @@ switch ($mode) <?php } + else + { + +?> + <tr> + <td class="row1"><?php echo $user->lang['FORUM_IMAGE']; ?></td> + <td class="row2"><input class="post" type="text" size="25" name="forum_image" value="<?php echo $forum_image ?>" /></td> + </tr> +<?php + + } ?> <tr> - <td class="cat" colspan="2" align="center"><input type="hidden" name="mode" value="<?php echo $newmode ?>" /><input type="hidden" name="forum_id" value="<?php echo $forum_id ?>" /><input class="mainoption" type="submit" name="submit" value="<?php echo $buttonvalue ?>" /></td> + <td class="cat" colspan="2" align="center"><input type="hidden" name="mode" value="<?php echo $newmode ?>" /><input type="hidden" name="f" value="<?php echo $forum_id ?>" /><input class="mainoption" type="submit" name="submit" value="<?php echo $buttonvalue ?>" /></td> </tr> </table></form> <br clear="all" /> + <?php + page_footer(); break; case 'delete': page_header($user->lang['Forum_delete']); - extract(get_forum_info($_GET['f'])); + extract(get_forum_info(intval($_GET['this_f']))); $subforums_id = array(); $subforums = get_forum_branch($forum_id, 'children'); @@ -589,18 +603,19 @@ switch ($mode) <p><?php echo $user->lang['Forum_delete_explain'] ?></p> -<form action="admin_forums.<?php echo $phpEx . $SID ?>&mode=remove&f=<?php echo $forum_id ?>" method="post"> - <table cellpadding="4" cellspacing="1" border="0" class="forumline" align="center"> +<form action="admin_forums.<?php echo $phpEx . $SID ?>&mode=remove&f=<?php echo $forum_id ?>" method="post"><table class="bg" cellspacing="1" cellpadding="4" border="0" align="center"> <tr> - <th colspan="2" class="thHead"><?php echo $user->lang['Forum_delete'] ?></th> + <th colspan="2"><?php echo $user->lang['Forum_delete'] ?></th> </tr> <tr> - <td class="row1"><?php echo ($forum_status == ITEM_CATEGORY) ? $user->lang['Category_name'] : $user->lang['Forum_name'] ?></td> + <td class="row1"><?php echo $user->lang['Forum_name']; ?></td> <td class="row1"><span class="row1"><?php echo $forum_name ?></span></td> </tr> <?php - if ($forum_status != ITEM_CATEGORY) + + if ($forum_postable) { + ?> <tr> <td class="row1"><?php echo $user->lang['Action'] ?></td> @@ -611,9 +626,12 @@ switch ($mode) <td class="row1"><input type="radio" name="action_posts" value="move" /> <?php echo $user->lang['Move_posts_to'] ?> <select name="posts_to_id" ?><option value="0"></option><?php echo $move_posts_list ?></select></td> </tr> <?php + } + if ($right_id - $left_id > 1) { + ?> <tr> <td class="row1"><?php echo $user->lang['Action'] ?></td> @@ -624,7 +642,9 @@ switch ($mode) <td class="row1"><input type="radio" name="action_subforums" value="move" /> <?php echo $user->lang['Move_subforums_to'] ?> <select name="subforums_to_id" ?><option value="0"></option><?php echo $forums_list ?></select></td> </tr> <?php + } + ?> <tr> <td class="cat" colspan="2" align="center"><input type="submit" name="submit" value="<?php echo $user->lang['Move_and_Delete'] ?>" class="mainoption" /></td> @@ -633,22 +653,17 @@ switch ($mode) </form> <?php - break; - - default: - $show_index = TRUE; -} + page_footer(); -if (empty($show_index)) -{ - page_footer(); + break; } +// Front end page_header($user->lang['Manage']); -$parent_id = (!empty($_GET['parent_id'])) ? $_GET['parent_id'] : 0; +$forum_id = (!empty($_GET['f'])) ? intval($_GET['f']) : 0; -if (!$parent_id) +if (!$forum_id) { $navigation = 'Forum Index'; } @@ -656,149 +671,94 @@ else { $navigation = '<a href="admin_forums.' . $phpEx . $SID . '">Forum Index</a>'; - $forums_nav = get_forum_branch($parent_id, 'parents', 'descending'); + $forums_nav = get_forum_branch($forum_id, 'parents', 'descending'); foreach ($forums_nav as $row) { - if ($row['forum_id'] == $parent_id) + if ($row['forum_id'] == $forum_id) { $navigation .= ' -> ' . htmlspecialchars($row['forum_name']); } else { - $navigation .= ' -> <a href="admin_forums.' . $phpEx . $SID . '&parent_id=' . $row['forum_id'] . '">' . htmlspecialchars($row['forum_name']) . '</a>'; + $navigation .= ' -> <a href="admin_forums.' . $phpEx . $SID . '&f=' . $row['forum_id'] . '">' . htmlspecialchars($row['forum_name']) . '</a>'; } } } + ?> -<h1>Manage</h1> -<p>Here you can add, edit, delete, lock, unlock individual forums as well as set certain additional controls. If your posts and topics have got out of sync you can also resynchronise a forum. In phpBB 2.2 there are no categories, everything is forum based. Each forum can have an unlimited number of sub-forums and you can determine whether each may be posted to or not (i.e. whether it acts like an old category).</p> +<h1><?php echo $user->lang['Manage']; ?></h1> + +<p><?php echo $user->lang['Forum_admin_explain']; ?></p> -<?php echo $navigation ?><br /> -<form method="post" action="<?php echo "admin_forums.$phpEx$SID&mode=add" ?>"><table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center"> +<form method="post" action="<?php echo "admin_forums.$phpEx$SID&mode=add" ?>"> + +<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center"> + <tr> + <td><?php echo $navigation ?></td> + </tr> +</table> + +<table class="bg" width="100%" cellpadding="4" cellspacing="1" border="0" align="center"> <tr> - <th class="thHead" colspan="9"><?php echo $user->lang['Forum_admin'] ?></th> + <th colspan="6"><?php echo $user->lang['Forum_admin'] ?></th> </tr> <?php -$result = $db->sql_query('SELECT * FROM ' . FORUMS_TABLE . " WHERE parent_id = $parent_id ORDER BY left_id"); +$result = $db->sql_query('SELECT * FROM ' . FORUMS_TABLE . " WHERE parent_id = $forum_id ORDER BY left_id"); + while ($row = $db->sql_fetchrow($result)) { - // // DEBUG - // + $forum_id = $row['forum_id']; + $parent_id = $row['parent_id']; $forum_title = htmlspecialchars($row['forum_name']); $forum_desc = htmlspecialchars($row['forum_desc']); - $url = $phpEx . $SID . '&f=' . $row['forum_id']; - $subforums = ($row['right_id'] - $row['left_id'] - 1) / 2; - if ($row['forum_status'] != ITEM_CATEGORY) + if ($forum_status != ITEM_LOCKED) { - $colspan = ' colspan="2"'; - $forum_stats = ' - <td class="row1" align="center" valign="middle"><span class="gen">' . $row['forum_topics'] . '</span></td> - <td class="row2" align="center" valign="middle"><span class="gen">' . $row['forum_posts'] . '</span></td> - <td class="row3" align="center" valign="middle"><span class="gen">' . $subforums . '</span></td> - '; + if ($row['left_id'] + 1 != $row['right_id']) + { + $folder_image = '<img src="images/icon_subfolder.gif" width="46" height="25" alt="' . $user->lang['SUBFORUM'] . '" alt="' . $user->lang['SUBFORUM'] . '" />'; + } + else + { + $folder_image = '<img src="images/icon_folder.gif" width="46" height="25" alt="' . $user->lang['SUBFORUM'] . '" alt="' . $user->lang['FOLDER'] . '" />'; + } } else { - $colspan = ' colspan="4"'; - $forum_stats = ' - <td class="row3" align="center" valign="middle"><span class="gen">' . $subforums . '</span></td> - '; + $folder_image = '<img src="images/icon_folder_lock.gif" width=""46 height="25" alt="' . $user->lang['SUBFORUM'] . '" alt="' . $user->lang['LOCKED'] . '" />'; } - if ($row['left_id'] + 1 != $row['right_id']) - { - $forum_title = '<a href="admin_forums.' . $phpEx . $SID . '&parent_id=' . $row['forum_id'] . '">' . $forum_title . '</a>'; - } + $url = $phpEx . $SID . '&this_f=' . $row['forum_id']; + + $forum_title = '<a href="admin_forums.' . $phpEx . $SID . '&f=' . $row['forum_id'] . '">' . $forum_title . '</a>'; - if ($row['forum_status'] == ITEM_CATEGORY) - { ?> <tr> - <td class="cat" colspan="5"><span class="cattitle"><b><?php echo $forum_title ?></b></span></td> - <td class="cat" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=edit"><?php echo $user->lang['Edit'] ?></a></span></td> - <td class="cat" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=delete"><?php echo $user->lang['Delete'] ?></a></span></td> - <td class="cat" align="center" valign="middle" nowrap="nowrap"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=move_up&parent_id=<?php echo $parent_id ?>"><?php echo $user->lang['Move_up'] ?></a> <a href="admin_forums.<?php echo $url ?>&mode=move_down&parent_id=<?php echo $parent_id ?>"><?php echo $user->lang['Move_down'] ?></a></span></td> - <td class="cat" align="center" valign="middle"><span class="gen"> </span></td> - </tr> - -<?php + <td class="row1" width="5%"><?php echo $folder_image; ?></td> + <td class="row2" width="50%"><span class="gen"><?php echo $forum_title ?></span><br /><span class="gensmall"><?php echo $forum_desc ?></span></td> - $sub_result = $db->sql_query('SELECT * FROM ' . FORUMS_TABLE . ' WHERE parent_id = ' . $row['forum_id'] . ' ORDER BY left_id'); - while ($sub_row = $db->sql_fetchrow($sub_result)) - { - $url = $phpEx . $SID . '&f=' . $sub_row['forum_id']; - $forum_title = htmlspecialchars($sub_row['forum_name']); - $forum_desc = htmlspecialchars($sub_row['forum_desc']); - $subforums = ($sub_row['right_id'] - $sub_row['left_id'] - 1) / 2; + <td class="row1" width="5%" align="center" valign="middle" title="<?php echo $user->lang['TOPICS']; ?>"><span class="gen"><?php echo $row['forum_topics'] ?></span></td> + <td class="row2" width="5%" align="center" valign="middle" title="<?php echo $user->lang['POSTS']; ?>"><span class="gen"><?php echo $row['forum_posts'] ?></span></td> - if ($sub_row['forum_status'] != ITEM_CATEGORY) - { - $colspan = ''; - $forum_stats = ' - <td class="row1" align="center" valign="middle"><span class="gen">' . $sub_row['forum_topics'] . '</span></td> - <td class="row2" align="center" valign="middle"><span class="gen">' . $sub_row['forum_posts'] . '</span></td> - <td class="row3" align="center" valign="middle"><span class="gen">' . $subforums . '</span></td> - '; - } - else - { - $colspan = ' colspan="3"'; - $forum_stats = ' - <td class="row3" align="center" valign="middle"><span class="gen">' . $subforums . '</span></td> - '; - } + <td class="row2" width="15%" align="center" valign="middle" nowrap="nowrap"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=move_up"><?php echo $user->lang['Move_up'] ?></a> <br /> <a href="admin_forums.<?php echo $url ?>&mode=move_down"><?php echo $user->lang['Move_down'] ?></a></span></td> - if ($sub_row['left_id'] + 1 != $sub_row['right_id']) - { - $forum_title = '<a href="admin_forums.' . $phpEx . $SID . '&parent_id=' . $sub_row['forum_id'] . '">' . $forum_title . '</a>'; - } -?> - <tr> - <td width="1" class="row3"></td> - <td width="40%" class="row2"<?php echo $colspan ?>><span class="gen"><?php echo $forum_title ?></span><br /><span class="gensmall"><?php echo $forum_desc ?></span></td> - <?php echo $forum_stats ?> - <td class="row2" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=edit"><?php echo $user->lang['Edit'] ?></a></span></td> - <td class="row1" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=delete"><?php echo $user->lang['Delete'] ?></a></span></td> - <td class="row2" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=move_up&parent_id=<?php echo $parent_id ?>"><?php echo $user->lang['Move_up'] ?></a> <br /> <a href="admin_forums.<?php echo $url ?>&mode=move_down&parent_id=<?php echo $parent_id ?>"><?php echo $user->lang['Move_down'] ?></a></span></td> - <td class="row1" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=resync&parent_id=<?php echo $parent_id ?>"><?php echo ($sub_row['forum_status'] != ITEM_CATEGORY) ? $user->lang['Resync'] : ' ' ?></a></span></td> - </tr> -<?php - } -?> - <tr> - <td width="1" class="row3"></td> - <td width="100%" colspan="8" class="row2"><input type="text" name="forum_name[<? echo $row['forum_id'] ?>]" /> <input type="submit" class="liteoption" name="parent_id[<? echo $row['forum_id'] ?>]" value="<?php echo $user->lang['Create_forum'] ?>" /></td> - </tr> -<?php - } - else - { -?> - <tr> - <td width="40%" class="row2"<?php echo $colspan ?>><span class="gen"><?php echo $forum_title ?></span><br /><span class="gensmall"><?php echo $forum_desc ?></span></td> - <?php echo $forum_stats ?> - <td class="row2" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=edit"><?php echo $user->lang['Edit'] ?></a></span></td> - <td class="row1" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=delete"><?php echo $user->lang['Delete'] ?></a></span></td> - <td class="row2" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=move_up&parent_id=<?php echo $parent_id ?>"><?php echo $user->lang['Move_up'] ?></a> <br /> <a href="admin_forums.<?php echo $url ?>&mode=move_down&parent_id=<?php echo $parent_id ?>"><?php echo $user->lang['Move_down'] ?></a></span></td> - <td class="row1" align="center" valign="middle"><span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=resync&parent_id=<?php echo $parent_id ?>"><?php echo $user->lang['Resync'] ?></a></span></td> + <td class="row2" width="20%" align="center" valign="middle" nowrap="nowrap"> <span class="gen"><a href="admin_forums.<?php echo $url ?>&mode=edit"><?php echo $user->lang['Edit'] ?></a> | <a href="admin_forums.<?php echo $url ?>&mode=delete"><?php echo $user->lang['Delete'] ?></a> | <a href="admin_forums.<?php echo $url ?>&mode=sync"><?php echo $user->lang['Resync'] ?></a></span> </td> </tr> <?php - } + } ?> <tr> - <td width="100%" colspan="9" class="cat"><input type="text" name="forum_name[<? echo $parent_id ?>]" /> <input type="submit" class="liteoption" name="parent_id[<? echo $parent_id ?>]" value="<?php echo $user->lang['Create_forum'] ?>" /></td> + <td width="100%" colspan="6" class="cat"><input type="text" name="forum_name[<? echo $forum_id ?>]" /> <input type="submit" class="liteoption" name="parent_id[<? echo $forum_id ?>]" value="<?php echo $user->lang['Create_forum'] ?>" /></td> </tr> </table></form> <?php - page_footer(); // @@ -812,31 +772,34 @@ page_footer(); function get_forum_info($forum_id) { global $db; + $sql = 'SELECT * - FROM ' . FORUMS_TABLE . " - WHERE forum_id = $forum_id"; + FROM ' . FORUMS_TABLE . " + WHERE forum_id = $forum_id"; $result = $db->sql_query($sql); + if (!$row = $db->sql_fetchrow($result)) { - message_die(ERROR, "Forum #$forum_id does not exist"); + trigger_error("Forum #$forum_id does not exist", E_USER_ERROR); } return $row; } -function make_forums_list($mode='all', $selected_id=0, $exclude_id=array()) +function make_forums_list($mode = 'all', $selected_id = 0, $exclude_id = array()) { global $db; + if (!is_array($exclude_id)) { $exclude_id = array($exclude_id); } $sql = 'SELECT f2.* - FROM ' . FORUMS_TABLE . ' f1, ' . FORUMS_TABLE . ' f2 - WHERE f1.parent_id = 0 - AND f2.left_id BETWEEN f1.left_id AND f1.right_id - ORDER BY f2.left_id'; + FROM ' . FORUMS_TABLE . ' f1, ' . FORUMS_TABLE . ' f2 + WHERE f1.parent_id = 0 + AND f2.left_id BETWEEN f1.left_id AND f1.right_id + ORDER BY f2.left_id'; $result = $db->sql_query($sql); $list = ''; @@ -859,9 +822,9 @@ function make_forums_list($mode='all', $selected_id=0, $exclude_id=array()) $current_indent = $indent[$row['parent_id']]; } - if (($mode == 'forums' && $row['forum_status'] == ITEM_CATEGORY) - || ($mode == 'categories' && $row['forum_status'] != ITEM_CATEGORY) - || (in_array($row['forum_id'], $exclude_id))) + if (($mode == 'forums' && !$row['forum_postable']) + || ($mode == 'categories' && $row['forum_postable']) + || (in_array($row['forum_id'], $exclude_id))) { continue; } @@ -879,7 +842,7 @@ function make_forums_list($mode='all', $selected_id=0, $exclude_id=array()) return $list; } -function make_styles_list($selected_id=0) +function make_styles_list($selected_id = 0) { global $db; @@ -907,17 +870,13 @@ function move_forum($from_id, $to_id) $moved_ids[] = $moved_forums[$i]['forum_id']; } - // // Resync parents - // $sql = 'UPDATE ' . FORUMS_TABLE . " SET right_id = right_id - $diff, forum_parents = '' WHERE left_id < " . $from_data['right_id'] . " AND right_id > " . $from_data['right_id']; $db->sql_query($sql); - // // Resync righthand side of tree - // $sql = 'UPDATE ' . FORUMS_TABLE . " SET left_id = left_id - $diff, right_id = right_id - $diff, forum_parents = '' WHERE left_id > " . $from_data['right_id']; @@ -927,27 +886,21 @@ function move_forum($from_id, $to_id) { $to_data = get_forum_info($to_id); - // // Resync new parents - // $sql = 'UPDATE ' . FORUMS_TABLE . " SET right_id = right_id + $diff, forum_parents = '' WHERE " . $to_data['right_id'] . ' BETWEEN left_id AND right_id AND forum_id NOT IN (' . implode(', ', $moved_ids) . ')'; $db->sql_query($sql); - // // Resync the righthand side of the tree - // $sql = 'UPDATE ' . FORUMS_TABLE . " SET left_id = left_id + $diff, right_id = right_id + $diff, forum_parents = '' WHERE left_id > " . $to_data['right_id'] . ' AND forum_id NOT IN (' . implode(', ', $moved_ids) . ')'; $db->sql_query($sql); - // // Resync moved branch - // $to_data['right_id'] += $diff; if ($to_data['right_id'] > $from_data['right_id']) { @@ -977,7 +930,7 @@ function move_forum_content($from_id, $to_id) global $db; $db->sql_query('UPDATE ' . ACL_GROUPS_TABLE . " SET forum_id = $to_id WHERE forum_id = $from_id"); - $db->sql_query('UPDATE ' . ACL_PREFETCH_TABLE . " SET forum_id = $to_id WHERE forum_id = $from_id"); + $db->sql_query('UPDATE ' . MODERATOR_TABLE . " SET forum_id = $to_id WHERE forum_id = $from_id"); $db->sql_query('UPDATE ' . LOG_MOD_TABLE . " SET forum_id = $to_id WHERE forum_id = $from_id"); $db->sql_query('UPDATE ' . POSTS_TABLE . " SET forum_id = $to_id WHERE forum_id = $from_id"); $db->sql_query('UPDATE ' . TOPICS_TABLE . " SET forum_id = $to_id WHERE forum_id = $from_id"); @@ -986,9 +939,9 @@ function move_forum_content($from_id, $to_id) // TODO: untested yet // $sql = 'SELECT t1.topic_id - FROM ' .TOPICS_TABLE . ' t1 - LEFT JOIN ' . TOPICS_TABLE . " t2 ON t1.topic_moved_id = t2.topic_id AND t1.forum_id = t2.forum_id - WHERE t1.forum_id = $to_id"; + FROM ' .TOPICS_TABLE . ' t1 + LEFT JOIN ' . TOPICS_TABLE . " t2 ON t1.topic_moved_id = t2.topic_id AND t1.forum_id = t2.forum_id + WHERE t1.forum_id = $to_id"; $result = $db->sql_query($result); $topic_ids = array(); @@ -1013,12 +966,13 @@ function delete_forum_content($forum_id) global $db; $db->sql_query('DELETE FROM ' . ACL_GROUPS_TABLE . " WHERE forum_id = $forum_id"); - $db->sql_query('DELETE FROM ' . ACL_PREFETCH_TABLE . " WHERE forum_id = $forum_id"); + $db->sql_query('DELETE FROM ' . MODERATOR_TABLE . " WHERE forum_id = $forum_id"); $db->sql_query('DELETE FROM ' . LOG_MOD_TABLE . " WHERE forum_id = $forum_id"); $db->sql_query('DELETE FROM ' . FORUMS_WATCH_TABLE . " WHERE forum_id = $forum_id"); $ids = array(); $result = $db->sql_query('SELECT post_id FROM ' . POSTS_TABLE . " WHERE forum_id = $forum_id"); + while ($row = $db->sql_fetchrow($result)) { $ids[] = $row['post_id']; @@ -1035,6 +989,7 @@ function delete_forum_content($forum_id) $ids = array(); $result = $db->sql_query('SELECT topic_id FROM ' . TOPICS_TABLE . " WHERE forum_id = $forum_id"); + while ($row = $db->sql_fetchrow($result)) { $ids[] = $row['topic_id']; @@ -1044,7 +999,6 @@ function delete_forum_content($forum_id) if ($ids) { - $db->sql_query('DELETE FROM ' . TOPICS_RATING_TABLE . " WHERE topic_id IN ($ids)"); $db->sql_query('DELETE FROM ' . TOPICS_WATCH_TABLE . " WHERE topic_id IN ($ids)"); $db->sql_query('DELETE FROM ' . TOPICS_TABLE . " WHERE forum_id = $forum_id"); $db->sql_query('DELETE FROM ' . TOPICS_TABLE . " WHERE topic_moved_id IN ($ids)"); diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index cc321003ca..0138861b34 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -675,12 +675,12 @@ function validate_optional_fields(&$icq, &$aim, &$msnm, &$yim, &$website, &$loca // contains at least one dot. if ($website != '') { - if (!preg_match('#^http:\/\/#i', $website)) + if (!preg_match('#^http[s]?:\/\/#i', $website)) { $website = 'http://' . $website; } - if (!preg_match('#^http\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $website)) + if (!preg_match('#^http[s]?\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $website)) { $website = ''; } @@ -801,7 +801,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline) // This is a hack just to show something useful. // $msg_text won't contain anything if $user isn't there yet. // I ran into this problem when installing without makeing config_cache.php writable - if ( !class_exists($user) ) + if (!isset($user)) { die("Unable to show notice, \$user class hasn't been instantiated yet.<br />Error triggered in: " . $errfile .":". $errline); } diff --git a/phpBB/install/schemas/mysql_schema.sql b/phpBB/install/schemas/mysql_schema.sql index 12b1783eb5..7946b723a9 100644 --- a/phpBB/install/schemas/mysql_schema.sql +++ b/phpBB/install/schemas/mysql_schema.sql @@ -109,7 +109,7 @@ CREATE TABLE phpbb_disallow ( # Table structure for table 'phpbb_forums' # CREATE TABLE phpbb_forums ( - forum_id smallint(5) UNSIGNED NOT NULL, + forum_id smallint(5) UNSIGNED NOT NULL auto_increment, parent_id smallint(5) UNSIGNED NOT NULL, left_id smallint(5) UNSIGNED NOT NULL, right_id smallint(5) UNSIGNED NOT NULL, @@ -127,9 +127,10 @@ CREATE TABLE phpbb_forums ( forum_last_post_time int(11) DEFAULT '0' NOT NULL, forum_last_poster_name varchar(30), display_on_index tinyint(1) DEFAULT '1' NOT NULL, - post_count_inc tinyint(1) DEFAULT '1' NOT NULL, - moderated tinyint(1) DEFAULT '0' NOT NULL, - prune_enable tinyint(1) DEFAULT '0' NOT NULL, + enable_post_count tinyint(1) DEFAULT '1' NOT NULL, + enable_moderate tinyint(1) DEFAULT '0' NOT NULL, + enable_icons tinyint(1) DEFAULT '1' NOT NULL, + enable_prune tinyint(1) DEFAULT '0' NOT NULL, prune_next int(11) UNSIGNED, prune_days tinyint(4) UNSIGNED NOT NULL, prune_freq tinyint(4) UNSIGNED DEFAULT '0' NOT NULL, diff --git a/phpBB/language/en/lang_admin.php b/phpBB/language/en/lang_admin.php index c56a09d0f3..eebdd1926a 100644 --- a/phpBB/language/en/lang_admin.php +++ b/phpBB/language/en/lang_admin.php @@ -426,8 +426,8 @@ $lang = array_merge($lang, array( 'Max_sig_length' => 'Maximum signature length', 'Max_sig_length_explain' => 'Maximum number of characters in user signatures', 'Allow_name_change' => 'Allow Username changes', - 'Forum_admin' => 'Forum Administration', - 'Forum_admin_explain' => 'From this panel you can add, delete, edit, re-order and re-synchronise categories and forums', + + 'Forum_admin_explain' => 'In phpBB 2.2 there are no categories, everything is forum based. Each forum can have an unlimited number of sub-forums and you can determine whether each may be posted to or not (i.e. whether it acts like an old category). Here you can add, edit, delete, lock, unlock individual forums as well as set certain additional controls. If your posts and topics have got out of sync you can also resynchronise a forum.', 'Edit_forum' => 'Edit forum', 'Edit_category' => 'Edit category', 'Create_forum' => 'Create new forum', @@ -436,27 +436,32 @@ $lang = array_merge($lang, array( 'Edit' => 'Edit', 'Move_up' => 'Move up', 'Move_down' => 'Move down', - 'Resync' => 'Resync', + 'Resync' => 'Sync', 'Category_name' => 'Category name', - 'Forum_type' => 'Forum type', + 'FORUM_TYPE' => 'Forum Type', + 'FORUM_STATUS' => 'Forum Status', + 'FORUM_STYLE' => 'Forum Style', + 'FORUM_IMAGE' => 'Forum Image', 'Parent' => 'Parent', 'No_parent' => 'No parent', 'Locked' => 'Locked', 'Unlocked' => 'Unlocked', 'General_settings' => 'General settings', - 'Forum_settings' => 'Forum settings', - 'Disable_post_count' => 'Disable post count', - 'Forum_is_moderated' => 'Moderated forum', - 'Display_on_index' => 'Display a link to this forum on index', + 'Forum_settings' => 'Forum settings', + 'IS_POSTABLE' => 'Can Post', + 'NOT_POSTABLE' => 'Cannot Post', + 'ENABLE_TOPIC_ICONS' => 'Enable topic icons', + 'DISABLE_POST_COUNT' => 'Disable user post count incrementing', + 'FORUM_MODERATED' => 'Enable moderation queue', + 'Display_on_index' => 'Display link to forum on index', 'Forum_edit_delete_explain' => 'The form below will allow you to customize all the general board options. For User and Forum configurations use the related links on the left hand side', 'Forum_general' => 'General Forum Settings', 'Forum_name' => 'Forum name', 'Forum_desc' => 'Description', - 'Forum_status' => 'Forum status', 'Forum_pruning' => 'Auto-pruning', 'prune_freq' => 'Check for topic age every', 'prune_days' => 'Remove topics that have not been posted to in', - 'Set_as_category' => 'Set this forum as a category and', + 'SET_NON_POSTABLE' => 'Set this forum as non-postable and', 'Forum_delete' => 'Delete Forum', 'Update' => 'Update', 'Forum_delete_explain' => 'The form below will allow you to delete a forum (or category) and decide where you want to put all topics (or forums) it contained.', @@ -469,6 +474,7 @@ $lang = array_merge($lang, array( 'Forums_updated' => 'Forum and Category information updated successfully', 'Forum_deleted' => 'Forum successfully deleted', 'Click_return_forumadmin' => 'Click %sHere%s to return to Forum Administration', + 'Emoticons_explain' => 'From this page you can add, remove and edit the emoticons or emoticons users can use in their posts and private messages.', 'Import_smilies' => 'Import emoticons pak', 'Import_smilies_explain' => 'Unzip the emoticons package to your emoticons directory then select the correct information in this form to import it.', diff --git a/phpBB/posting.php b/phpBB/posting.php index a6eab7bb02..59476ccf1b 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -68,7 +68,7 @@ switch ($mode) trigger_error($user->lang['No_forum_id']); } - $sql = 'SELECT forum_id, forum_name, forum_parents, forum_status, forum_postable, post_count_inc + $sql = 'SELECT forum_id, forum_name, forum_parents, forum_status, forum_postable, enable_icons, enable_post_count, enable_moderate FROM ' . FORUMS_TABLE . ' WHERE forum_id = ' . intval($f); break; @@ -79,7 +79,7 @@ switch ($mode) trigger_error($user->lang['No_topic_id']); } - $sql = 'SELECT t.*, f.forum_name, f.forum_parents, f.forum_status, f.forum_postable, f.post_count_inc + $sql = 'SELECT t.*, f.forum_name, f.forum_parents, f.forum_status, f.forum_postable, f.enable_icons, f.enable_post_count, f.enable_moderate FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f WHERE t.topic_id = ' . intval($t) . ' AND f.forum_id = t.forum_id'; @@ -93,7 +93,7 @@ switch ($mode) trigger_error($user->lang['No_post_id']); } - $sql = 'SELECT t.*, p.*, pt.*, f.forum_name, f.forum_parents, f.forum_status, f.forum_postable, f.post_count_inc + $sql = 'SELECT t.*, p.*, pt.*, f.forum_name, f.forum_parents, f.forum_status, f.forum_postable, f.enable_icons, f.enable_post_count, f.enable_moderate FROM ' . POSTS_TABLE . ' p, ' . POSTS_TEXT_TABLE . ' pt, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f WHERE p.post_id = ' . intval($p) . ' AND t.topic_id = p.topic_id @@ -230,7 +230,7 @@ if (isset($post)) if ($row = $db->sql_fetchrow($result)) { - if (intval($row['last_post_time']) && ($current_time - intval($row['last_post_time'])) < intval($config['flood_interval'])) + if (intval($row['last_post_time']) && ($current_time - intval($row['last_post_time'])) < intval($config['flood_interval']) && !$auth->acl_gets('f_ignoreflood', 'm_', 'a_', intval($forum_id))) { $err_msg .= ((!empty($err_msg)) ? '<br />' : '') . $user->lang['FLOOD_ERROR']; } @@ -315,9 +315,9 @@ if (isset($post)) 'topic_title' => $subject, 'topic_poster' => intval($user->data['user_id']), 'topic_time' => $current_time, - 'topic_type' => intval($topic_type), + 'topic_type' => (!empty($enable_icons)) ? intval($topic_type) : 0, 'topic_icon' => intval($icon), - 'topic_approved'=> (!empty($forum_moderated) && !$auth->acl_gets('m_', 'a_', intval($forum_id))) ? 0 : 1, + 'topic_approved'=> (!empty($enable_moderate) && !$auth->acl_gets('f_ignorequeue', 'm_', 'a_', intval($forum_id))) ? 0 : 1, ); if (!empty($poll_options)) { @@ -341,7 +341,7 @@ if (isset($post)) 'post_username' => ($username != '') ? $username : '', 'poster_ip' => $user->ip, 'post_time' => $current_time, - 'post_approved' => (!empty($forum_moderated) && !$auth->acl_gets('m_', 'a_', intval($forum_id))) ? 0 : 1, + 'post_approved' => (!empty($enable_moderate) && !$auth->acl_gets('f_ignorequeue', 'm_', 'a_', intval($forum_id))) ? 0 : 1, 'post_edit_time' => ($mode == 'edit' && $poster_id == $user->data['user_id']) ? $current_time : 0, 'enable_sig' => $enable_html, 'enable_bbcode' => $enable_bbcode, @@ -457,7 +457,7 @@ if (isset($post)) $db->sql_query($sql); // Update user post count ... if appropriate - if (!empty($post_count_inc) && $user->data['user_id'] != ANONYMOUS) + if (!empty($enable_post_count) && $user->data['user_id'] != ANONYMOUS) { $sql = 'UPDATE ' . USERS_TABLE . ' SET user_posts = user_posts + 1 @@ -501,7 +501,7 @@ if (isset($post)) 'META' => '<meta http-equiv="refresh" content="5; url=' . "viewtopic.$phpEx$SID&f=$forum_id&p=$post_id#$post_id" . '">') ); - $message = (!empty($forum_moderated)) ? 'POST_STORED_MOD' : 'POST_STORED'; + $message = (!empty($enable_moderate)) ? 'POST_STORED_MOD' : 'POST_STORED'; trigger_error($user->lang[$message]); } @@ -563,28 +563,31 @@ get_moderators($moderators, intval($forum_id)); generate_smilies('inline'); // Topic icons -$sql = "SELECT * - FROM " . ICONS_TABLE . " - WHERE icons_id > 1"; -$result = $db->sql_query($sql); - $s_topic_icons = false; -if ($row = $db->sql_fetchrow($result)) +if (!empty($enable_icons)) { - $s_topic_icons = true; + $sql = "SELECT * + FROM " . ICONS_TABLE . " + WHERE icons_id > 1"; + $result = $db->sql_query($sql); - do + if ($row = $db->sql_fetchrow($result)) { - $template->assign_block_vars('topic_icon', array( - 'ICON_ID' => $row['icons_id'], - 'ICON_IMG' => $config['icons_path'] . '/' . $row['icons_url'], - 'ICON_WIDTH' => $row['icons_width'], - 'ICON_HEIGHT' => $row['icons_height'], + $s_topic_icons = true; - 'S_ICON_CHECKED' => ($row['icons_id'] == $topic_icon) ? ' checked="checked"' : '') - ); + do + { + $template->assign_block_vars('topic_icon', array( + 'ICON_ID' => $row['icons_id'], + 'ICON_IMG' => $config['icons_path'] . '/' . $row['icons_url'], + 'ICON_WIDTH' => $row['icons_width'], + 'ICON_HEIGHT' => $row['icons_height'], + + 'S_ICON_CHECKED' => ($row['icons_id'] == $topic_icon) ? ' checked="checked"' : '') + ); + } + while ($row = $db->sql_fetchrow($result)); } - while ($row = $db->sql_fetchrow($result)); } // Topic type selection ... only for first post in topic? |