summaryrefslogtreecommitdiffstats
path: root/web/html
diff options
context:
space:
mode:
authorLukas Fleischer <archlinux@cryptocrack.de>2014-04-05 02:06:54 +0200
committerLukas Fleischer <archlinux@cryptocrack.de>2014-04-05 12:21:36 +0200
commitf7d13b5b368f1432b9a1eb1798f94a70b9dc03b7 (patch)
tree5f6c1980ce15a5ddacba66bd80cbac9f5d6d4e24 /web/html
parentfb81bfd8dff66073de6704c1880fb921e58ef137 (diff)
downloadaurweb-f7d13b5b368f1432b9a1eb1798f94a70b9dc03b7.tar.xz
Add package base detail pages
This adds package base details pages, similar to the package details pages. Each package base details page contains general information (package base name, category, submitter, maintainer, ...) and links to all the corresponding packages. As on the package details pages, comments and links to several package actions are also provided. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Diffstat (limited to 'web/html')
-rw-r--r--web/html/index.php16
-rw-r--r--web/html/pkgbase.php55
2 files changed, 71 insertions, 0 deletions
diff --git a/web/html/index.php b/web/html/index.php
index 542d594..e79955e 100644
--- a/web/html/index.php
+++ b/web/html/index.php
@@ -70,6 +70,22 @@ if (!empty($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) {
}
include get_route('/' . $tokens[1]);
+} elseif (!empty($tokens[1]) && '/' . $tokens[1] == get_pkgbase_route()) {
+ if (!empty($tokens[2])) {
+ /* TODO: Create a proper data structure to pass variables from
+ * the routing framework to the individual pages instead of
+ * initializing arbitrary variables here. */
+ $pkgbase_name = $tokens[2];
+ $base_id = pkgbase_from_name($pkgbase_name);
+
+ if (!$base_id) {
+ header("HTTP/1.0 404 Not Found");
+ include "./404.php";
+ return;
+ }
+ }
+
+ include get_route('/' . $tokens[1]);
} elseif (!empty($tokens[1]) && '/' . $tokens[1] == get_user_route()) {
if (!empty($tokens[2])) {
$_REQUEST['ID'] = uid_from_username($tokens[2]);
diff --git a/web/html/pkgbase.php b/web/html/pkgbase.php
new file mode 100644
index 0000000..e0c9af6
--- /dev/null
+++ b/web/html/pkgbase.php
@@ -0,0 +1,55 @@
+<?php
+
+set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
+
+include_once("aur.inc.php");
+set_lang();
+include_once('pkgfuncs.inc.php');
+check_sid();
+
+/*
+ * Retrieve package base ID and name, unless initialized by the routing
+ * framework.
+ */
+if (!isset($base_id) || !isset($pkgbase_name)) {
+ if (isset($_GET['ID'])) {
+ $base_id = intval($_GET['ID']);
+ $pkgbase_name = pkgbase_name_from_id($_GET['ID']);
+ } else if (isset($_GET['N'])) {
+ $base_id = pkgbase_from_name($_GET['N']);
+ $pkgbase_name = $_GET['N'];
+ } else {
+ unset($base_id, $pkgbase_name);
+ }
+
+ if ($base_id == 0 || $base_id == NULL || $pkgbase_name == NULL) {
+ header("HTTP/1.0 404 Not Found");
+ include "./404.php";
+ return;
+ }
+}
+
+/* Set the title to package base name. */
+$title = $pkgbase_name;
+
+/* Retrieve account type. */
+if (isset($_COOKIE["AURSID"])) {
+ $atype = account_from_sid($_COOKIE["AURSID"]);
+} else {
+ $atype = "";
+}
+
+$details = get_pkgbase_details($base_id);
+html_header($title, $details);
+?>
+
+<?php
+include('pkg_search_form.php');
+if (isset($_COOKIE["AURSID"])) {
+ display_pkgbase_details($base_id, $details, $_COOKIE["AURSID"]);
+} else {
+ display_pkgbase_details($base_id, $details, null);
+}
+
+html_footer(AUR_VERSION);
+