1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-10 17:45:18 +02:00

- adding recalc_btree (not used atm)

git-svn-id: file:///svn/phpbb/trunk@5022 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2004-11-06 14:11:47 +00:00
parent 87d4e80a77
commit 836771cfb8
2 changed files with 62 additions and 3 deletions

View File

@ -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
// ------------------

View File

@ -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);
?></span></td>
</tr>