diff options
Diffstat (limited to 'web/html')
-rw-r--r-- | web/html/index.php | 16 | ||||
-rw-r--r-- | web/html/pkgbase.php | 55 |
2 files changed, 71 insertions, 0 deletions
diff --git a/web/html/index.php b/web/html/index.php index 542d594c..e79955ec 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 00000000..e0c9af69 --- /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); + |