Display package groups on the details page

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

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2014-04-26 14:21:43 +02:00
parent cc3244ea8a
commit 38eb8d2a3a
2 changed files with 44 additions and 0 deletions

View file

@ -104,6 +104,32 @@ function pkg_from_name($name="") {
return $row[0];
}
/**
* 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
*

View file

@ -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>