summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <archlinux@cryptocrack.de>2012-03-22 09:38:18 +0100
committerLukas Fleischer <archlinux@cryptocrack.de>2012-03-24 10:34:35 +0100
commitcf2f66751238a5c956c69d3852df74c8e9bbbe52 (patch)
treeb50d764d9cfd11c1d4e0ef1b14e92807320cc57f
parent132856a9383776d7e7788620df656db9fbd9883a (diff)
downloadaurweb-cf2f66751238a5c956c69d3852df74c8e9bbbe52.tar.xz
Support canonical links to packages
This is more user-friendly than supporting package IDs only and can be used as a basis to support direct links to AUR packages in places where links are computer-produced (e.g. Wiki templates). Addresses FS#21600 and FS#28839. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
-rw-r--r--web/html/packages.php14
-rw-r--r--web/template/pkg_comments.php2
-rw-r--r--web/template/pkg_details.php8
3 files changed, 22 insertions, 2 deletions
diff --git a/web/html/packages.php b/web/html/packages.php
index dc06c7e..8f3b143 100644
--- a/web/html/packages.php
+++ b/web/html/packages.php
@@ -10,6 +10,8 @@ check_sid(); # see if they're still logged in
# Set the title to the current query if required
if (isset($_GET['ID']) && ($pkgname = pkgname_from_id($_GET['ID']))) {
$title = $pkgname;
+} else if (isset($_GET['N'])) {
+ $title = $pkgname = $_GET['N'];
} else if (!empty($_GET['K'])) {
$title = __("Search Criteria") . ": " . $_GET['K'];
} else {
@@ -98,6 +100,18 @@ if (isset($_GET['ID'])) {
package_details($_GET['ID'], null);
}
}
+} else if (isset($_GET['N'])) {
+ include('pkg_search_form.php');
+ if (!$pkgid = pkgid_from_name($_GET['N'])) {
+ print __("Error trying to retrieve package details.")."<br />\n";
+ } else {
+ if (isset($_COOKIE["AURSID"])) {
+ package_details($pkgid, $_COOKIE["AURSID"]);
+ }
+ else {
+ package_details($pkgid, null);
+ }
+ }
} else {
if (!isset($_GET['K']) && !isset($_GET['SB'])) {
$_GET['SB'] = 'v';
diff --git a/web/template/pkg_comments.php b/web/template/pkg_comments.php
index aed9ca8..ac6e1de 100644
--- a/web/template/pkg_comments.php
+++ b/web/template/pkg_comments.php
@@ -36,7 +36,7 @@ while (list($indx, $carr) = each($comments)) { ?>
</div>
<?php
-$count = package_comments_count($_GET['ID']);
+$count = package_comments_count(isset($_GET['ID']) ? $_GET['ID'] : pkgid_from_name($_GET['N']));
if ($count > 10 && !isset($_GET['comments'])) {
echo '<div class="pgbox">';
echo '<a href="'. $_SERVER['REQUEST_URI'] . '&comments=all">'. __('Show all %s comments', $count) . '</a>';
diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php
index 046f836..230cc2c 100644
--- a/web/template/pkg_details.php
+++ b/web/template/pkg_details.php
@@ -2,7 +2,13 @@
$atype = account_from_sid($SID);
$uid = uid_from_sid($SID);
-$pkgid = intval($_REQUEST['ID']);
+if (isset($_REQUEST['ID'])) {
+ $pkgid = intval($_REQUEST['ID']);
+}
+else {
+ $pkgid = pkgid_from_name($_REQUEST['N']);
+}
+
if ($uid == $row["MaintainerUID"] or
($atype == "Developer" or $atype == "Trusted User")) {