From 6249c40e9417aff0ab8eb6f84c1f6693771c7b81 Mon Sep 17 00:00:00 2001 From: eric Date: Tue, 29 Jun 2004 00:56:31 +0000 Subject: fleshing out the package logic, renamed pkg include files for consistency --- web/lib/pkgfuncs.inc | 421 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 421 insertions(+) create mode 100644 web/lib/pkgfuncs.inc (limited to 'web/lib/pkgfuncs.inc') diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc new file mode 100644 index 00000000..c8427ab8 --- /dev/null +++ b/web/lib/pkgfuncs.inc @@ -0,0 +1,421 @@ +\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + print "\n"; + + print "
\n"; + print "\n"; + print "\n"; + print " \n"; + print "\n"; + print "\n"; + print " \n"; + print "\n"; + print "
\n"; + print " ".__("Search Criteria")."\n"; + print "
\n"; + print "\n"; + + print "\n"; + print "\n"; + + print "\n"; + + print "\n"; + + print "\n"; + + print "\n"; + + print "\n"; + + if ($SID) { + print "\n"; + } + + print "\n"; + print "
\n"; + print " ".__("Location"); + print "
\n"; + print " \n"; + print "
\n"; + print " ".__("Category"); + print "
\n"; + print " \n"; + print "
\n"; + print " ".__("Keywords"); + print "
\n"; + print " \n"; + print "
\n"; + print " ".__("Sort by"); + print "
\n"; + print " \n"; + print "
\n"; + print " ".__("Per page"); + print "
\n"; + print " \n"; + print "
 \n"; + print " \n"; + print " \n"; + print " \n"; + print "
\n"; + + print "
\n"; + print "
\n"; + print "
\n"; + + # query to pull out package info + # +# $q = "SELECT Packages.*, IF(ISNULL(PackageID), 0, COUNT(*)) AS Votes "; +# $q.= "FROM Packages LEFT JOIN PackageVotes "; +# $q.= "ON Packages.ID = PackageVotes.PackageID "; + $q = "SELECT * FROM Packages "; + $has_where = 0; + if (isset($_REQUEST["L"]) && $_REQUEST["L"]) { + $q.= "WHERE LocationID = ".mysql_escape_string($_REQUEST["L"])." "; + $has_where = 1; + } + if (isset($_REQUEST["C"]) && $_REQUEST["C"]) { + if (!$has_where) { + $q.= "WHERE CategoryID = ".mysql_escape_string($_REQUEST["C"])." "; + $has_where = 1; + } else { + $q.= "AND CategoryID = ".mysql_escape_string($_REQUEST["C"])." "; + } + } + if ($K) { + if (!$has_where) { + $q.= "WHERE (Name LIKE '".mysql_escape_string($K)."%' OR "; + $q.= "Description LIKE '%".mysql_escape_string($K)."%') "; + $has_where = 1; + } else { + $q.= "AND (Name LIKE '".mysql_escape_string($K)."%' OR "; + $q.= "Description LIKE '%".mysql_escape_string($K)."%') "; + } + } + if (isset($_REQUEST["M"]) && $_REQUEST["M"] && $SID) { + if ($myuid) { + if (!$has_where) { + $q.= "WHERE MaintainerUID = ".$myuid." "; + $has_where = 1; + } else { + $q.= "AND MaintainerUID = ".$myuid." "; + } + } + } + + switch (isset($_REQUEST["SB"])) { + case 'c': + $q.= "ORDER BY CategoryID ASC, Name ASC, LocationID ASC "; + break; + case 'l': + $q.= "ORDER BY LocationID ASC, Name ASC, CategoryID ASC "; + break; + case 'v': + $q.= "ORDER BY NumVotes DESC, Name ASC, CategoryID ASC "; + break; + default: + $q.= "ORDER BY Name ASC, LocationID ASC, CategoryID ASC "; + break; + } + $q.= "LIMIT ".$O.", ".$PP; + + print $q."
\n"; + + $result = db_query($q, $dbh); + if (!$result) { + print __("Error retrieving package list."); + + } elseif (!mysql_num_rows($result)) { + print __("No packages matched your search criteria."); + + } else { + # TODO need an "action" table in here like on /devel? It would + # allow the visitor to flag packages out-of-date, vote, adopt/disown? + # Probably need to think about the overall UI of this - the package + # name will be a link that goes to 'details'. There should also be + # a column for 'manage/edit' + + if ($SID) { + print "
\n"; + print "\n"; + print "\n"; + print " \n"; + print "\n"; + print "\n"; + print " \n"; + print "\n"; + print "
\n"; + print " ".__("Actions")."\n"; + print "
\n"; + print "\n"; + print "\n"; + print " \n"; + print " \n"; + print " \n"; + print " \n"; + print "\n"; + print "
"; + print ""; + print ""; + print ""; + print "
\n"; + print "
\n"; + print "
\n"; + print "
\n"; + } + + # print out package search results + # + print "
\n"; + print "\n"; + print "\n"; + print " \n"; + print "\n"; + print "\n"; + print " \n"; + print "\n"; + print "
\n"; + print " Package Listing\n"; + print "
\n"; + print "\n"; + print "\n"; + if ($SID) { + print " \n"; + } + print " \n"; + print " \n"; + print " \n"; + print " \n"; + print " \n"; + print " \n"; + if ($SID) { + print " \n"; + } + print "\n"; + + for ($i=0; $row = mysql_fetch_assoc($result); $i++) { + (($i % 2) == 0) ? $c = "data1" : $c = "data2"; + print "\n"; + if ($SID) { + print " \n"; + } + print " \n"; + print " \n"; + print " \n"; + print " \n"; + print " \n"; + print " \n"; + if ($myuid == $row["MaintainerUID"] || $not_managed) { + $manage_url = "Manage"; + print " \n"; + } else { + print "\n"; + } + + print "\n"; + + } + print "
 ".__("Location")."".__("Category")."".__("Name")."".__("Votes")."".__("Description")."".__("Maintainer")."".__("Manage")."
"; + if ($row["OutOfDate"]) { + print ""; + } + print ""; + if ($i == 0) { + $all_ids = $row["ID"]; + } else { + $all_ids .= ":".$row["ID"]; + } + if ($row["OutOfDate"]) { + print ""; + } + print ""; + print $locs[$row["LocationID"]].""; + print $cats[$row["CategoryID"]].""; + $details_url = "".$row["Name"]; + $details_url.= "-".$row["Version"].""; + print $details_url.""; + print "   ".$row["NumVotes"].""; + print $row["Description"].""; + $not_managed = 0; + if (isset($devs[$row["MaintainerUID"]])) { + print $devs[$row["MaintainerUID"]]["Username"]; + } elseif (isset($tus[$row["MaintainerUID"]])) { + print $tus[$row["MaintainerUID"]]["Username"]; + } else { + print "None"; + $not_managed = 1; + } + print ""; + print $manage_url." 
\n"; + print "
\n"; + print "\n"; + + print "\n"; + print "\n"; + print " \n"; + print "\n"; + print "
\n"; + print " \n"; + print " \n"; + print " \n"; + print " \n"; + print " \n"; + print "
"; + print " \n"; + print " "; + print " \n"; + print "
\n"; + print "
\n"; + print "
\n"; + } + print "\n"; + + return; +} + +# vim: ts=2 sw=2 noet ft=php +?> -- cgit v1.2.3-24-g4f1b