$i) { $id = intval($id); if ($id > 0) { $ids[] = $id; } } } /* Perform package base actions. */ $via = isset($_POST['via']) ? $_POST['via'] : NULL; $return_to = isset($_POST['return_to']) ? $_POST['return_to'] : NULL; $ret = false; $output = ""; $fragment = ""; if (check_token()) { if (current_action("do_Flag")) { list($ret, $output) = pkgbase_flag($ids, $_POST['comments']); } elseif (current_action("do_UnFlag")) { list($ret, $output) = pkgbase_unflag($ids); } elseif (current_action("do_Adopt")) { list($ret, $output) = pkgbase_adopt($ids, true, NULL); } elseif (current_action("do_Disown")) { if (isset($_POST['confirm'])) { list($ret, $output) = pkgbase_adopt($ids, false, $via); } else { $output = __("The selected packages have not been disowned, check the confirmation checkbox."); $ret = false; } } elseif (current_action("do_DisownComaintainer")) { $uid = uid_from_sid($_COOKIE["AURSID"]); list($ret, $output) = pkgbase_remove_comaintainer($base_id, $uid); } elseif (current_action("do_Vote")) { list($ret, $output) = pkgbase_vote($ids, true); } elseif (current_action("do_UnVote")) { list($ret, $output) = pkgbase_vote($ids, false); } elseif (current_action("do_Delete")) { if (isset($_POST['confirm'])) { if (!isset($_POST['merge_Into']) || empty($_POST['merge_Into'])) { list($ret, $output) = pkgbase_delete($ids, NULL, $via); unset($_GET['ID']); unset($base_id); } else { $merge_base_id = pkgbase_from_name($_POST['merge_Into']); if (!$merge_base_id) { $output = __("Cannot find package to merge votes and comments into."); $ret = false; } elseif (in_array($merge_base_id, $ids)) { $output = __("Cannot merge a package base with itself."); $ret = false; } else { list($ret, $output) = pkgbase_delete($ids, $merge_base_id, $via); unset($_GET['ID']); unset($base_id); } } } else { $output = __("The selected packages have not been deleted, check the confirmation checkbox."); $ret = false; } } elseif (current_action("do_Notify")) { list($ret, $output) = pkgbase_notify($ids); } elseif (current_action("do_UnNotify")) { list($ret, $output) = pkgbase_notify($ids, false); } elseif (current_action("do_DeleteComment")) { list($ret, $output) = pkgbase_delete_comment(); } elseif (current_action("do_UndeleteComment")) { list($ret, $output) = pkgbase_delete_comment(true); if ($ret && isset($_POST["comment_id"])) { $fragment = '#comment-' . intval($_POST["comment_id"]); } } elseif (current_action("do_PinComment")) { list($ret, $output) = pkgbase_pin_comment(); } elseif (current_action("do_UnpinComment")) { list($ret, $output) = pkgbase_pin_comment(true); } elseif (current_action("do_SetKeywords")) { list($ret, $output) = pkgbase_set_keywords($base_id, preg_split("/[\s,;]+/", $_POST['keywords'], -1, PREG_SPLIT_NO_EMPTY)); } elseif (current_action("do_FileRequest")) { list($ret, $output) = pkgreq_file($ids, $_POST['type'], $_POST['merge_into'], $_POST['comments']); } elseif (current_action("do_CloseRequest")) { list($ret, $output) = pkgreq_close($_POST['reqid'], $_POST['reason'], $_POST['comments']); } elseif (current_action("do_EditComaintainers")) { list($ret, $output) = pkgbase_set_comaintainers($base_id, explode("\n", $_POST['users'])); } elseif (current_action("do_AddComment")) { $uid = uid_from_sid($_COOKIE["AURSID"]); list($ret, $output) = pkgbase_add_comment($base_id, $uid, $_REQUEST['comment']); if ($ret && isset($_REQUEST['enable_notifications'])) { list($ret, $output) = pkgbase_notify(array($base_id)); } $fragment = '#news'; } elseif (current_action("do_EditComment")) { list($ret, $output) = pkgbase_edit_comment($_REQUEST['comment']); if ($ret && isset($_POST["comment_id"])) { $fragment = '#comment-' . intval($_POST["comment_id"]); } } if ($ret) { if (current_action("do_CloseRequest") || (current_action("do_Delete") && $via)) { /* Redirect back to package request page on success. */ header('Location: ' . get_pkgreq_route()); exit(); } elseif ((current_action("do_DeleteComment") || current_action("do_UndeleteComment")) && $return_to) { header('Location: ' . $return_to); exit(); } elseif (current_action("do_PinComment") && $return_to) { header('Location: ' . $return_to); exit(); } elseif (isset($base_id)) { /* Redirect back to package base page on success. */ header('Location: ' . get_pkgbase_uri($pkgbase_name) . $fragment); exit(); } else { /* Redirect back to package search page. */ header('Location: ' . get_pkg_route()); exit(); } } } if (isset($base_id)) { $pkgs = pkgbase_get_pkgnames($base_id); if (!$output && count($pkgs) == 1) { /* Not a split package. Redirect to the package page. */ if (empty($_SERVER['QUERY_STRING'])) { header('Location: ' . get_pkg_uri($pkgs[0]) . $fragment); } else { header('Location: ' . get_pkg_uri($pkgs[0]) . '?' . $_SERVER['QUERY_STRING'] . $fragment); } } $details = pkgbase_get_details($base_id); } else { $details = array(); } html_header($title, $details); ?>