[aur-dev] [PATCH] Add direct links to each source file

Janne Heß jannehess at gmail.com
Tue Feb 7 06:16:21 UTC 2017


Currently, each source file which is an external link (http://,
https://, ...) is a clickable link.
This commit extends the behaviour by making files from the repository
clickable as well. The link brings the user to the corresponding cgit
page.

Also, the link to the PKGBUILD was altered to make the configuration
more consistent.
---
 conf/config.proto            | 2 +-
 web/lib/pkgfuncs.inc.php     | 6 ++++--
 web/template/pkg_details.php | 4 ++--
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/conf/config.proto b/conf/config.proto
index 63e2458..4cc294f 100644
--- a/conf/config.proto
+++ b/conf/config.proto
@@ -26,7 +26,7 @@ aur_request_ml = aur-requests at archlinux.org
 request_idle_time = 1209600
 auto_orphan_age = 15552000
 auto_delete_age = 86400
-pkgbuild_uri = https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=%s
+source_file_uri = https://aur.archlinux.org/cgit/aur.git/tree/%s?h=%s
 log_uri = https://aur.archlinux.org/cgit/aur.git/log/?h=%s
 snapshot_uri = /cgit/aur.git/snapshot/%s.tar.gz
 enable-maintenance = 1
diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index 4b0fdba..d4b3465 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -481,17 +481,19 @@ function pkg_rel_html($name, $cond, $arch) {
  *
  * @param string $url The URL of the source
  * @param string $arch The source architecture
+ * @param string $package The name of the package
  *
  * @return string The HTML code of the label to display
  */
-function pkg_source_link($url, $arch) {
+function pkg_source_link($url, $arch, $package) {
        $url = explode('::', $url);
        $parsed_url = parse_url($url[0]);

        if (isset($parsed_url['scheme']) || isset($url[1])) {
                $link = '<a href="' .
htmlspecialchars((isset($url[1]) ? $url[1] : $url[0]), ENT_QUOTES) .
'">' . htmlspecialchars($url[0]) . '</a>';
        } else {
-               $link = htmlspecialchars($url[0]);
+               $file_url = sprintf(config_get('options',
'source_file_uri'), htmlspecialchars($url[0]), $package);
+               $link = '<a href="' . $file_url . '">' .
htmlspecialchars($url[0]) . '</a>';
        }

        if ($arch) {
diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php
index b9c66d4..69f37e9 100644
--- a/web/template/pkg_details.php
+++ b/web/template/pkg_details.php
@@ -1,6 +1,6 @@
 <?php

-$pkgbuild_uri = sprintf(config_get('options', 'pkgbuild_uri'),
urlencode($row['BaseName']));
+$pkgbuild_uri = sprintf(config_get('options', 'source_file_uri'),
'PKGBUILD', urlencode($row['BaseName']));
 $log_uri = sprintf(config_get('options', 'log_uri'),
urlencode($row['BaseName']));
 $snapshot_uri = sprintf(config_get('options', 'snapshot_uri'),
urlencode($row['BaseName']));
 $git_clone_uri_anon = sprintf(config_get('options',
'git_clone_uri_anon'), htmlspecialchars($row['BaseName']));
@@ -299,7 +299,7 @@ endif;
                <div>
                        <ul id="pkgsrcslist">
                                        <?php while (list($k, $src) =
each($sources)): ?>
-                                       <li><?=
pkg_source_link($src[0], $src[1]) ?></li>
+                                       <li><?=
pkg_source_link($src[0], $src[1], urlencode($row['BaseName'])) ?></li>
                                        <?php endwhile; ?>
                        </ul>
                </div>
--
2.11.0


More information about the aur-dev mailing list