[aur-dev] [PATCH 4/6] Display package groups on the details page

Lukas Fleischer archlinux at cryptocrack.de
Sat Apr 26 08:54:15 EDT 2014


The groups field is hidden if a package doesn't belong to any group.

Signed-off-by: Lukas Fleischer <archlinux at cryptocrack.de>
---
 web/lib/pkgfuncs.inc.php     | 26 ++++++++++++++++++++++++++
 web/template/pkg_details.php | 18 ++++++++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index f80d4b4..6811767 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -105,6 +105,32 @@ function pkg_from_name($name="") {
 }
 
 /**
+ * Get package groups for a specific package
+ *
+ * @param int $pkgid The package to get groups for
+ *
+ * @return array All package groups for the package
+ */
+function pkg_groups($pkgid) {
+	$grps = array();
+	$pkgid = intval($pkgid);
+	if ($pkgid > 0) {
+		$dbh = DB::connect();
+		$q = "SELECT g.Name FROM Groups g ";
+		$q.= "INNER JOIN PackageGroups pg ON pg.GroupID = g.ID ";
+		$q.= "WHERE pg.PackageID = ". $pkgid;
+		$result = $dbh->query($q);
+		if (!$result) {
+			return array();
+		}
+		while ($row = $result->fetch(PDO::FETCH_COLUMN, 0)) {
+			$grps[] = $row;
+		}
+	}
+	return $grps;
+}
+
+/**
  * Get package dependencies for a specific package
  *
  * @param int $pkgid The package to get dependencies for
diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php
index da90c9d..ff3f710 100644
--- a/web/template/pkg_details.php
+++ b/web/template/pkg_details.php
@@ -22,6 +22,8 @@ $out_of_date_time = ($row["OutOfDateTS"] == 0) ? $msg : gmdate("Y-m-d", intval($
 
 $urlpath = URL_DIR . substr($row['BaseName'], 0, 2) . "/" . $row['BaseName'];
 
+$grps = pkg_groups($row["ID"]);
+
 $deps = pkg_dependencies($row["ID"]);
 $requiredby = pkg_required($row["Name"]);
 
@@ -172,6 +174,22 @@ if ($SID && ($uid == $row["MaintainerUID"] ||
 			<th><?= __('License') . ': ' ?></th>
 			<td><?= htmlspecialchars($license) ?></td>
 		</tr>
+		<?php if (count($grps) > 0): ?>
+		<tr>
+			<th><?= __('Groups') . ': ' ?></th>
+			<td class="wrap">
+				<?php foreach($grps as $grp): ?>
+				<span class="related">
+					<?php if ($grp !== end($grps)): ?>
+					<?= htmlspecialchars($grp) ?>,
+					<?php else: ?>
+					<?= htmlspecialchars($grp) ?>
+					<?php endif; ?>
+				</span>
+				<?php endforeach; ?>
+			</td>
+		</tr>
+		<?php endif; ?>
 		<?php if (count($rels_c) > 0): ?>
 		<tr>
 			<th><?= __('Conflicts') . ': ' ?></th>
-- 
1.9.2



More information about the aur-dev mailing list