From 61ddbc18e7836a3b2e334b23ea637a2a0eea9006 Mon Sep 17 00:00:00 2001 From: tardo Date: Sat, 22 Sep 2007 17:09:26 -0400 Subject: Reverse dependency lookup. FS 4556, 5269. Ugly hack, could use beautification. Also includes english translation addition. If url sources are too long, page could ugly... Signed-off-by: tardo --- web/lang/en/pkgfuncs_po.inc | 4 +++- web/lib/pkgfuncs.inc | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/web/lang/en/pkgfuncs_po.inc b/web/lang/en/pkgfuncs_po.inc index 220cdb3..b6a704b 100644 --- a/web/lang/en/pkgfuncs_po.inc +++ b/web/lang/en/pkgfuncs_po.inc @@ -151,4 +151,6 @@ $_t["en"]["License"] = "License"; $_t["en"]["unknown"] = "unknown"; -?> \ No newline at end of file +$_t["en"]["Required by"] = "Required by"; + +?> diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc index cd339c1..395200b 100644 --- a/web/lib/pkgfuncs.inc +++ b/web/lib/pkgfuncs.inc @@ -152,6 +152,25 @@ function package_dependencies($pkgid=0) { return $deps; } +# reverse deps by tardo +# +function package_required($pkgid=0) { + $deps = array(); + if ($pkgid) { + $dbh = db_connect(); + $q = "SELECT PackageID, Name, DummyPkg from PackageDepends, Packages "; + $q.= "WHERE PackageDepends.PackageID = Packages.ID "; + $q.= "AND PackageDepends.DepPkgID = "; + $q.= mysql_real_escape_string($pkgid); + $result = db_query($q, $dbh); + if (!$result) {return array();} + while ($row = mysql_fetch_row($result)) { + $deps[] = $row; + } + } + return $deps; +} + # create a dummy package and return it's Packages.ID if it already exists, # return the existing ID # @@ -402,6 +421,32 @@ function package_details($id=0, $SID="") { } reset($pkgsearch_vars); + // $darr[3] is the DepCondition + + if ($darr[2] == 0) print $url."'>".$darr[1].$darr[3]."
\n"; + else print "".$darr[1].$darr[3]."
\n"; + } + print "\n"; + print ""; + + # reverse-deps by tardo - could use some beautification + print " "; + print ""; + print "\n"; + print "
"; + print __("Required by")."
"; + $deps = package_required($row["ID"]); + while (list($k, $darr) = each($deps)) { + $url = "".$darr[1].$darr[3]."
\n"; -- cgit v1.2.3-70-g09d2