diff options
author | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-11-26 00:50:16 +0000 |
---|---|---|
committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-11-26 00:50:16 +0000 |
commit | 8f051f1b474fe8ede0540baca4ad1bc80742f4db (patch) | |
tree | c7c5725e29f4dfbe63b6002124a2310278f8c799 | |
parent | 5f4b283a3efcc48ca3e73aba707730fdc941cd6b (diff) | |
download | forums-8f051f1b474fe8ede0540baca4ad1bc80742f4db.tar forums-8f051f1b474fe8ede0540baca4ad1bc80742f4db.tar.gz forums-8f051f1b474fe8ede0540baca4ad1bc80742f4db.tar.bz2 forums-8f051f1b474fe8ede0540baca4ad1bc80742f4db.tar.xz forums-8f051f1b474fe8ede0540baca4ad1bc80742f4db.zip |
I know the jumpbox layout doesn't always match the real forum structure ... will fix
git-svn-id: file:///svn/phpbb/trunk@3099 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r-- | phpBB/admin/admin_forums.php | 2 | ||||
-rw-r--r-- | phpBB/admin/admin_permissions.php | 2 | ||||
-rw-r--r-- | phpBB/admin/admin_viewlogs.php | 92 | ||||
-rw-r--r-- | phpBB/includes/functions.php | 6 | ||||
-rw-r--r-- | phpBB/includes/functions_admin.php | 56 |
5 files changed, 80 insertions, 78 deletions
diff --git a/phpBB/admin/admin_forums.php b/phpBB/admin/admin_forums.php index ff73d57e3b..23ff74bb06 100644 --- a/phpBB/admin/admin_forums.php +++ b/phpBB/admin/admin_forums.php @@ -752,7 +752,7 @@ while ($row = $db->sql_fetchrow($result)) <form method="get" action="admin_forums.<?php echo $phpEx,$SID ?>"><table width="100%" cellpadding="1" cellspacing="1" border="0"> <tr> - <td align="right"><?php echo $user->lang['Select_forum']; ?>: <select name="f" onchange="this.form.submit()"><?php echo $forum_box; ?></select> <input class="liteoption" type="submit" value="<?php echo $user->lang['Go']; ?>" /><input type="hidden" name="sid" value="<?php echo $user->session_id; ?>" /></td> + <td align="right"><?php echo $user->lang['Select_forum']; ?>: <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit() }"><?php echo $forum_box; ?></select> <input class="liteoption" type="submit" value="<?php echo $user->lang['Go']; ?>" /><input type="hidden" name="sid" value="<?php echo $user->session_id; ?>" /></td> </tr> </table></form> diff --git a/phpBB/admin/admin_permissions.php b/phpBB/admin/admin_permissions.php index 73c7535e3f..9d629a4871 100644 --- a/phpBB/admin/admin_permissions.php +++ b/phpBB/admin/admin_permissions.php @@ -534,7 +534,7 @@ if (!empty($forum_id) || $mode == 'administrators' || $mode == 'supermoderators' else { - $select_list = make_forum_select(); + $select_list = make_forum_select(false, false, false); page_header($l_title); diff --git a/phpBB/admin/admin_viewlogs.php b/phpBB/admin/admin_viewlogs.php index f1506c9185..9aa8ce2be8 100644 --- a/phpBB/admin/admin_viewlogs.php +++ b/phpBB/admin/admin_viewlogs.php @@ -19,9 +19,9 @@ * ***************************************************************************/ -if ( !empty($setmodules) ) +if (!empty($setmodules)) { - if ( !$auth->acl_get('a_general') ) + if (!$auth->acl_get('a_general')) { return; } @@ -34,60 +34,36 @@ if ( !empty($setmodules) ) } define('IN_PHPBB', 1); -// // Include files -// $phpbb_root_path = '../'; require($phpbb_root_path . 'extension.inc'); require('pagestart.' . $phpEx); -// // Do we have styles admin permissions? -// -if ( !$auth->acl_get('a_general') ) +if (!$auth->acl_get('a_general')) { - message_die(MESSAGE, $user->lang['No_admin']); + trigger_error($user->lang['No_admin']); } -// // Set some variables -// -$start = ( isset($_GET['start']) ) ? intval($_GET['start']) : 0; - -if ( isset($_POST['mode']) || isset($_GET['mode']) ) -{ - $mode = ( isset($_POST['mode']) ) ? $_POST['mode'] : $_GET['mode']; -} -else -{ - $mode = 'admin'; -} - -if ( isset($_POST['f']) || isset($_GET['f']) ) -{ - $forum_id = ( isset($_POST['f']) ) ? $_POST['f'] : $_GET['f']; -} -else -{ - $forum_id = 0; -} +$forum_id = (isset($_REQUEST['f'])) ? intval($_REQUEST['f']) : 0; +$start = (isset($_GET['start'])) ? intval($_GET['start']) : 0; +$mode = (isset($_REQUEST['mode'])) ? $_REQUEST['mode'] : 'admin'; // Define some vars depending on which logs we're looking at -$log_table_sql = ( $mode == 'admin' ) ? LOG_ADMIN_TABLE : LOG_MOD_TABLE; -$l_title = ( $mode == 'admin' ) ? $user->lang['Admin_logs'] : $user->lang['Mod_logs']; -$l_title_explain = ( $mode == 'admin' ) ? $user->lang['Admin_logs_explain'] : $user->lang['Mod_logs_explain']; +$log_table_sql = ($mode == 'admin') ? LOG_ADMIN_TABLE : LOG_MOD_TABLE; +$l_title = ($mode == 'admin') ? $user->lang['Admin_logs'] : $user->lang['Mod_logs']; +$l_title_explain = ($mode == 'admin') ? $user->lang['Admin_logs_explain'] : $user->lang['Mod_logs_explain']; -// // Delete entries if requested and able -// -if ( ( isset($_POST['delmarked']) || isset($_POST['delall']) ) && $auth->acl_get('a_clearlogs')) +if ((isset($_POST['delmarked']) || isset($_POST['delall'])) && $auth->acl_get('a_clearlogs')) { $where_sql = ''; - if ( isset($_POST['delmarked']) && isset($_POST['mark']) ) + if (isset($_POST['delmarked']) && isset($_POST['mark'])) { - foreach ( $_POST['mark'] as $marked ) + foreach ($_POST['mark'] as $marked) { - $where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . intval($marked); + $where_sql .= (($where_sql != '') ? ', ' : '') . intval($marked); } $where_sql = "WHERE log_id IN ($where_sql)"; } @@ -99,23 +75,21 @@ if ( ( isset($_POST['delmarked']) || isset($_POST['delall']) ) && $auth->acl_get add_admin_log('log_' . $mode . '_clear'); } -// // Sorting ... this could become a function -// -if ( isset($_POST['sort']) || $start ) +if (isset($_POST['sort']) || $start) { - if ( !empty($_POST['sort_days']) || !empty($_GET['sort_days']) ) + if (!empty($_REQUEST['sort_days'])) { - $sort_days = ( !empty($_POST['sort_days']) ) ? intval($_POST['sort_days']) : intval($_GET['sort_days']); - $where_sql = time() - ( $sort_days * 86400 ); + $sort_days = intval($_REQUEST['sort_days']); + $where_sql = time() - ($sort_days * 86400); } else { $where_sql = 0; } - $sort_key = ( isset($_POST['sort_key']) ) ? $_POST['sort_key'] : $_GET['sort_key']; - $sort_dir = ( isset($_POST['sort_dir']) ) ? $_POST['sort_dir'] : $_GET['sort_dir']; + $sort_key = (isset($_REQUEST['sort_key'])) ? $_REQUEST['sort_key'] : ''; + $sort_dir = (isset($_REQUEST['sort_dir'])) ? $_REQUEST['sort_dir'] : ''; } else { @@ -131,22 +105,22 @@ $sort_by_text = array('u' => $user->lang['Sort_Username'], 't' => $user->lang['S $sort_by = array('u' => 'l.user_id', 't' => 'l.log_time', 'i' => 'l.log_ip', 'o' => 'l.log_operation'); $sort_day_options = ''; -foreach ( $previous_days as $day => $text ) +foreach ($previous_days as $day => $text) { - $selected = ( $sort_days == $day ) ? ' selected="selected"' : ''; + $selected = ($sort_days == $day) ? ' selected="selected"' : ''; $sort_day_options .= '<option value="' . $day . '"' . $selected . '>' . $text . '</option>'; } $sort_key_options = ''; -foreach ( $sort_by_text as $key => $text ) +foreach ($sort_by_text as $key => $text) { - $selected = ( $sort_key == $key ) ? ' selected="selected"' : ''; + $selected = ($sort_key == $key) ? ' selected="selected"' : ''; $sort_key_options .= '<option value="' . $key . '"' . $selected . '>' . $text . '</option>'; } -$sort_order_options = ( $sort_dir == 'a' ) ? '<option value="a" selected="selected">' . $user->lang['Sort_Ascending'] . '</option><option value="d">' . $user->lang['Sort_Descending'] . '</option>' : '<option value="a">' . $user->lang['Sort_Ascending'] . '</option><option value="d" selected="selected">' . $user->lang['Sort_Descending'] . '</option>'; +$sort_order_options = ($sort_dir == 'a') ? '<option value="a" selected="selected">' . $user->lang['Sort_Ascending'] . '</option><option value="d">' . $user->lang['Sort_Descending'] . '</option>' : '<option value="a">' . $user->lang['Sort_Ascending'] . '</option><option value="d" selected="selected">' . $user->lang['Sort_Descending'] . '</option>'; -$sort_sql = $sort_by[$sort_key] . ' ' . ( ( $sort_dir == 'd' ) ? 'DESC' : 'ASC' ); +$sort_sql = $sort_by[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC'); // Output page page_header($l_title); @@ -161,15 +135,15 @@ page_header($l_title); <?php // Define forum list if we're looking @ mod logs -if ( $mode == 'mod' ) +if ($mode == 'mod') { - include($phpbb_root_path . '/includes/functions_admin.'.$phpEx); +//include($phpbb_root_path . '/includes/functions_admin.'.$phpEx); $forum_box = make_forum_select($forum_id); ?> <table width="100%" cellpadding="1" cellspacing="1" border="0"> <tr> - <td align="right"><?php echo $user->lang['Select_forum']; ?>: <select name="f" onchange="this.form.submit()"><?php echo $forum_box; ?></select> <input class="liteoption" type="submit" value="<?php echo $user->lang['Go']; ?>" /></td> + <td align="right"><?php echo $user->lang['Select_forum']; ?>: <select name="f" onChange="if(this.options[this.selectedIndex].value != -1){ this.form.submit() }"><?php echo $forum_box; ?></select> <input class="liteoption" type="submit" value="<?php echo $user->lang['Go']; ?>" /></td> </tr> </table> <?php @@ -198,11 +172,11 @@ $log_data = array(); $log_count = 0; view_log($mode, $log_data, $log_count, $config['topics_per_page'], $start, $forum_id, $where_sql, $sort_sql); -if ( $log_count ) +if ($log_count) { for($i = 0; $i < sizeof($log_data); $i++) { - $row_class = ( $row_class == 'row1' ) ? 'row2' : 'row1'; + $row_class = ($row_class == 'row1') ? 'row2' : 'row1'; ?> <tr> @@ -216,7 +190,7 @@ if ( $log_count ) } - if ( $auth->acl_get('a_clearlogs') ) + if ($auth->acl_get('a_clearlogs')) { ?> @@ -245,7 +219,7 @@ else <td align="left" valign="top"> <span class="nav"><?php echo on_page($log_count, $config['topics_per_page'], $start); ?></span></td> <td align="right" valign="top" nowrap="nowrap"><?php - if ( $auth->acl_get('a_clearlogs') ) + if ($auth->acl_get('a_clearlogs')) { diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 18785b2939..729c1c8120 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -186,13 +186,13 @@ function make_jumpbox($action, $forum_id = false) $boxstring = '<select name="f" onChange="if(this.options[this.selectedIndex].value != -1){ forms[\'jumpbox\'].submit() }"><option value="-1">' . $user->lang['Select_forum'] . '</option><option value="-1">-----------------</option>'; - $sql = 'SELECT forum_id, forum_name, forum_postable, forum_status, left_id, right_id + $sql = 'SELECT forum_id, forum_name, forum_postable, left_id, right_id FROM ' . FORUMS_TABLE . ' ORDER BY left_id ASC'; $result = $db->sql_query($sql); $right = $cat_right = 0; - $padding = $forum_list = ''; + $padding = $forum_list = $holding = ''; while ($row = $db->sql_fetchrow($result)) { if (!$row['forum_postable'] && ($row['left_id'] + 1 == $row['right_id'])) @@ -225,7 +225,7 @@ function make_jumpbox($action, $forum_id = false) $holding = ''; } - if ($row['forum_status'] == ITEM_CATEGORY) + if ($row['right_id'] - $row['left_id'] > 1) { $cat_right = max($cat_right, $row['right_id']); diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index b6e10303f5..3b95658404 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -20,41 +20,69 @@ ***************************************************************************/ // Simple version of jumpbox, just lists authed forums -function make_forum_select($default_forum = false, $ignore_forum = false) +function make_forum_select($forum_id = false, $ignore_forum = false, $add_select = true) { - global $db, $userdata, $auth, $lang; + global $db, $user, $auth; $sql = "SELECT forum_id, forum_name, left_id, right_id FROM " . FORUMS_TABLE . " ORDER BY left_id ASC"; $result = $db->sql_query($sql); - $right = 0; - $subforum = ''; - $forum_list = ''; - while ( $row = $db->sql_fetchrow($result) ) + $right = $cat_right = 0; + $forum_list = $padding = $holding = ''; + + while ($row = $db->sql_fetchrow($result)) { - if ( $row['left_id'] < $right ) + if (!$auth->acl_gets('f_list', 'm_', 'a_', intval($row['forum_id'])) || $row['forum_id'] == $ignore_forum) + { + // if the user does not have permissions to list this forum skip + continue; + } + + if ($row['left_id'] < $right) { - $subforum .= ' '; + $padding .= ' '; } - else if ( $row['left_id'] > $right + 1 ) + else if ($row['left_id'] > $right + 1) { - $subforum = substr($subforum, 0, -18 * ( $row['left_id'] - $right + 1 )); + $padding = substr($padding, 0, -13 * ($row['left_id'] - $right + 1)); } $right = $row['right_id']; - if ( ( $auth->acl_get('f_list', $forum_id) || $auth->acl_get('a_') ) && $ignore_forum != $row['forum_id'] ) + $selected = ($row['forum_id'] == $forum_id) ? ' selected="selected"' : ''; + + if ($row['left_id'] > $cat_right) { - $selected = ( $row['forum_id'] == $default_forum ) ? ' selected="selected"' : ''; - $forum_list .= '<option value="' . $row['forum_id'] . '"' . $selected . '>' . $subforum . $row['forum_name'] . '</option>'; + $holding = ''; } + if ($row['right_id'] - $row['left_id'] > 1) + { + $cat_right = max($cat_right, $row['right_id']); + + $holding .= '<option value="' . $row['forum_id'] . '"' . $selected . '>' . $padding . '+ ' . $row['forum_name'] . '</option>'; + } + else + { + $forum_list .= $holding . '<option value="' . $row['forum_id'] . '"' . $selected . '>' . $padding . '- ' . $row['forum_name'] . '</option>'; + $holding = ''; + } + } + + if (!$right) + { + $forum_list .= '<option value="-1">' . $user->lang['No_forums'] . '</option>'; + } + else if ($add_select) + { + $forum_list = '<option value="-1">' . $user->lang['Select_forum'] . '</option><option value="-1">-----------------</option>' . $forum_list; } + $db->sql_freeresult($result); - return ( $forum_list == '' ) ? '<option value="-1">' . $lang['No_forums'] . '</option>' : $forum_list; + return $forum_list; } // Synchronise functions for forums/topics |