From 5f62e8feda7a3b406ff8f3b7d82171491f34ce5a Mon Sep 17 00:00:00 2001 From: David M Date: Mon, 18 Jun 2007 13:08:48 +0000 Subject: #11313 git-svn-id: file:///svn/phpbb/trunk@7775 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/functions_admin.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'phpBB/includes/functions_admin.php') diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index 185b0d35d2..f522670e5d 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -257,11 +257,31 @@ function get_forum_list($acl_list = 'f_list', $id_only = true, $postable_only = $result = $db->sql_query($sql, $expire_time); $forum_rows = array(); + + $right = $padding = 0; + $padding_store = array('0' => 0); + while ($row = $db->sql_fetchrow($result)) { + if ($row['left_id'] < $right) + { + $padding++; + $padding_store[$row['parent_id']] = $padding; + } + else if ($row['left_id'] > $right + 1) + { + // Ok, if the $padding_store for this parent is empty there is something wrong. For now we will skip over it. + // @todo digging deep to find out "how" this can happen. + $padding = (isset($padding_store[$row['parent_id']])) ? $padding_store[$row['parent_id']] : $padding; + } + + $right = $row['right_id']; + $row['padding'] = $padding; + $forum_rows[] = $row; } $db->sql_freeresult($result); + unset($padding_store); } $rowset = array(); -- cgit v1.2.1