function move_album() { global $cache, $db, $user; $album_id = request_var('album_id', 0); phpbb_gallery_album::check_user($album_id); $move = request_var('move', '', true); $moving = phpbb_gallery_album::get_info($album_id); $sql = 'SELECT album_id, left_id, right_id FROM ' . GALLERY_ALBUMS_TABLE . "\n\t\t\tWHERE parent_id = {$moving['parent_id']}\n\t\t\t\tAND album_user_id = {$user->data['user_id']}\n\t\t\t\tAND " . ($move == 'move_up' ? "right_id < {$moving['right_id']} ORDER BY right_id DESC" : "left_id > {$moving['left_id']} ORDER BY left_id ASC"); $result = $db->sql_query_limit($sql, 1); $target = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!sizeof($target)) { // The album is already on top or bottom return false; } if ($move == 'move_up') { $left_id = $target['left_id']; $right_id = $moving['right_id']; $diff_up = $moving['left_id'] - $target['left_id']; $diff_down = $moving['right_id'] + 1 - $moving['left_id']; $move_up_left = $moving['left_id']; $move_up_right = $moving['right_id']; } else { $left_id = $moving['left_id']; $right_id = $target['right_id']; $diff_up = $moving['right_id'] + 1 - $moving['left_id']; $diff_down = $target['right_id'] - $moving['right_id']; $move_up_left = $moving['right_id'] + 1; $move_up_right = $target['right_id']; } // Now do the dirty job $sql = 'UPDATE ' . GALLERY_ALBUMS_TABLE . "\n\t\t\tSET left_id = left_id + CASE\n\t\t\t\tWHEN left_id BETWEEN {$move_up_left} AND {$move_up_right} THEN -{$diff_up}\n\t\t\t\tELSE {$diff_down}\n\t\t\tEND,\n\t\t\tright_id = right_id + CASE\n\t\t\t\tWHEN right_id BETWEEN {$move_up_left} AND {$move_up_right} THEN -{$diff_up}\n\t\t\t\tELSE {$diff_down}\n\t\t\tEND,\n\t\t\talbum_parents = ''\n\t\t\tWHERE\n\t\t\t\tleft_id BETWEEN {$left_id} AND {$right_id}\n\t\t\t\tAND right_id BETWEEN {$left_id} AND {$right_id}\n\t\t\t\tAND album_user_id = {$user->data['user_id']}"; $db->sql_query($sql); $cache->destroy('sql', GALLERY_ALBUMS_TABLE); $cache->destroy('_albums'); phpbb_gallery_url::redirect('phpbb', 'ucp', 'i=gallery&mode=manage_albums&action=manage&parent_id=' . $moving['parent_id']); }
$phpEx = substr(strrchr(__FILE__, '.'), 1); include 'common.' . $phpEx; include $phpbb_root_path . 'common.' . $phpEx; phpbb_gallery::setup(array('mods/gallery', 'mods/gallery_mcp')); phpbb_gallery_url::_include(array('functions_display'), 'phpbb'); $mode = request_var('mode', 'album'); $action = request_var('action', ''); $option_id = request_var('option_id', 0); $image_id = request_var('image_id', 0); $album_id = request_var('album_id', 0); if (request_var('quickmod', 0) == 1 && $action == 'report_details') { $mode = 'report_details'; $option_id = (int) $image_data['image_reported']; } else { if (request_var('quickmod', 0) == 1 && $action == 'image_edit') { phpbb_gallery_url::redirect('posting', "mode=image&submode=edit&album_id={$album_id}&image_id={$image_id}"); } } if ($mode == 'whois' && $auth->acl_get('a_') && request_var('ip', '')) { phpbb_gallery_url::_include(array('functions_user'), 'phpbb'); $template->assign_var('WHOIS', user_ipwhois(request_var('ip', ''))); page_header($user->lang['WHO_IS_ONLINE']); $template->set_filenames(array('body' => 'viewonline_whois.html')); page_footer(); } //Basic-Information && Permissions if ($image_id) { $image_data = phpbb_gallery_image::get_info($image_id); $album_id = $image_data['image_album_id']; $user_id = $image_data['image_user_id']; }