From 836771cfb872215c9fa43c91f532382006ad25bf Mon Sep 17 00:00:00 2001 From: Meik Sievertsen Date: Sat, 6 Nov 2004 14:11:47 +0000 Subject: [PATCH] - adding recalc_btree (not used atm) git-svn-id: file:///svn/phpbb/trunk@5022 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/adm/admin_forums.php | 59 ++++++++++++++++++++++++++++++++++++ phpBB/adm/admin_viewlogs.php | 6 ++-- 2 files changed, 62 insertions(+), 3 deletions(-) diff --git a/phpBB/adm/admin_forums.php b/phpBB/adm/admin_forums.php index 37a926a14f..2315799c99 100644 --- a/phpBB/adm/admin_forums.php +++ b/phpBB/adm/admin_forums.php @@ -1581,6 +1581,65 @@ function delete_forum_content($forum_id) $db->sql_transaction('commit'); } +function recalc_btree() +{ + global $db; + + $sql = 'SELECT forum_id, parent_id, left_id, right_id + FROM ' . FORUMS_TABLE . ' + ORDER BY parent_id ASC'; + $f_result = $db->sql_query($sql); + + while ($forum_data = $db->sql_fetchrow($f_result)) + { + if ($forum_data['parent_id']) + { + $sql = 'SELECT left_id, right_id + FROM ' . FORUMS_TABLE . ' + WHERE forum_id = ' . $forum_data['parent_id']; + $result = $db->sql_query($sql); + + if (!$row = $db->sql_fetchrow($result)) + { + $sql = 'UPDATE ' . FORUMS_TABLE . ' SET parent_id = 0 WHERE forum_id = ' . $forum_data['forum_id']; + $db->sql_query($sql); + } + $db->sql_freeresult($result); + + $sql = 'UPDATE ' . FORUMS_TABLE . ' + SET left_id = left_id + 2, right_id = right_id + 2 + WHERE left_id > ' . $row['right_id']; + $db->sql_query($sql); + + $sql = 'UPDATE ' . FORUMS_TABLE . ' + SET right_id = right_id + 2 + WHERE ' . $row['left_id'] . ' BETWEEN left_id AND right_id'; + $db->sql_query($sql); + + $forum_data['left_id'] = $row['right_id']; + $forum_data['right_id'] = $row['right_id'] + 1; + } + else + { + $sql = 'SELECT MAX(right_id) AS right_id + FROM ' . FORUMS_TABLE; + $result = $db->sql_query($sql); + + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + $forum_data['left_id'] = $row['right_id'] + 1; + $forum_data['right_id'] = $row['right_id'] + 2; + } + + $sql = 'UPDATE ' . FORUMS_TABLE . ' + SET left_id = ' . $forum_data['left_id'] . ', right_id = ' . $forum_data['right_id'] . ' + WHERE forum_id = ' . $forum_data['forum_id']; + $db->sql_query($sql); + } + $db->sql_freeresult($f_result); +} + // // End function block // ------------------ diff --git a/phpBB/adm/admin_viewlogs.php b/phpBB/adm/admin_viewlogs.php index 952e17f371..620e423a47 100644 --- a/phpBB/adm/admin_viewlogs.php +++ b/phpBB/adm/admin_viewlogs.php @@ -87,8 +87,8 @@ $limit_days = array(0 => $user->lang['ALL_ENTRIES'], 1 => $user->lang['1_DAY'], $sort_by_text = array('u' => $user->lang['SORT_USERNAME'], 't' => $user->lang['SORT_DATE'], 'i' => $user->lang['SORT_IP'], 'o' => $user->lang['SORT_ACTION']); $sort_by_sql = array('u' => 'l.user_id', 't' => 'l.log_time', 'i' => 'l.log_ip', 'o' => 'l.log_operation'); -$s_limit_days = $s_sort_key = $s_sort_dir = ''; -gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir); +$s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = ''; +gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param); // Define where and sort sql for use in displaying logs $sql_where = ($sort_days) ? (time() - ($sort_days * 86400)) : 0; @@ -220,7 +220,7 @@ else } - echo generate_pagination("admin_viewlogs.$phpEx$SID&mode=$mode&st=$sort_days&sk=$sort_key&sd=$sort_dir", $log_count, $config['topics_per_page'], $start); + echo generate_pagination("admin_viewlogs.$phpEx$SID&mode=$mode&$u_sort_param", $log_count, $config['topics_per_page'], $start); ?>