";
print __("Go back to %hpackage details view%h.",
array($url_data, ""));
print "\n
\n";
return;
}
# print out the 'return to search results' link
#
function pkgsearch_results_link() {
global $_REQUEST;
global $pkgsearch_vars;
$url_data = "";
print __("Go back to %hsearch results%h.",
array($url_data, ""));
print "\n
\n";
return;
}
# Make sure this visitor can delete the requested package comment
# They can delete if they were the comment submitter, or if they are a TU/Dev
#
function canDeleteComment($comment_id=0, $atype="", $SID="") {
if ($atype == "Trusted User" || $atype == "Developer") {
# A TU/Dev can delete any comment
#
return TRUE;
}
$uid = uid_from_sid($SID);
$dbh = db_connect();
$q = "SELECT COUNT(ID) AS CNT ";
$q.= "FROM PackageComments ";
$q.= "WHERE ID = " . intval($comment_id);
$q.= " AND UsersID = " . $uid;
$result = db_query($q, $dbh);
if ($result != NULL) {
$row = mysql_fetch_assoc($result);
if ($row['CNT'] > 0) {
return TRUE;
}
}
return FALSE;
}
# see if this Users.ID can manage the package
#
function canManagePackage($uid=0,$AURMUID=0, $MUID=0, $SUID=0, $managed=0) {
if (!$uid) {return 0;}
# The uid of the TU/Dev that manages the package
#
if ($uid == $AURMUID) {return 1;}
# If the package isn't maintained by a TU/Dev, is this the user-maintainer?
#
if ($uid == $MUID && !$managed) {return 1;}
# If the package isn't maintained by a TU/Dev, is this the user-submitter?
#
if ($uid == $SUID && !$managed) {return 1;}
# otherwise, no right to manage this package
#
return 0;
}
# grab the current list of PackageCategories
#
function pkgCategories() {
$cats = array();
$dbh = db_connect();
$q = "SELECT * FROM PackageCategories WHERE ID != 1 ";
$q.= "ORDER BY Category ASC";
$result = db_query($q, $dbh);
if ($result) {
while ($row = mysql_fetch_row($result)) {
$cats[$row[0]] = $row[1];
}
}
return $cats;
}
# grab the current list of PackageLocations
#
function pkgLocations() {
$locs = array();
$dbh = db_connect();
$q = "SELECT * FROM PackageLocations WHERE ID != 1 ";
$q.= "ORDER BY Location ASC";
$result = db_query($q, $dbh);
if ($result) {
while ($row = mysql_fetch_row($result)) {
$locs[$row[0]] = $row[1];
}
}
return $locs;
}
# check to see if the package name exists
#
function package_exists($name="") {
if (!$name) {return NULL;}
$dbh = db_connect();
$q = "SELECT ID FROM Packages ";
$q.= "WHERE Name = '".mysql_real_escape_string($name)."' ";
$q.= "AND DummyPkg = 0";
$result = db_query($q, $dbh);
if (!$result) {return NULL;}
$row = mysql_fetch_row($result);
return $row[0];
}
# grab package dependencies
#
function package_dependencies($pkgid=0) {
$deps = array();
if ($pkgid) {
$dbh = db_connect();
$q = "SELECT DepPkgID, Name, DummyPkg, DepCondition FROM PackageDepends, Packages ";
$q.= "WHERE PackageDepends.DepPkgID = Packages.ID ";
$q.= "AND PackageDepends.PackageID = ".mysql_real_escape_string($pkgid);
$q.= " ORDER BY Name";
$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
#
function create_dummy($pname="", $sid="") {
if ($pname && $sid) {
$uid = uid_from_sid($sid);
if (!$uid) {return NULL;}
$dbh = db_connect();
$q = "SELECT ID FROM Packages WHERE Name = '";
$q.= mysql_real_escape_string($pname)."'";
$result = db_query($q, $dbh);
if (!mysql_num_rows($result)) {
# Insert the dummy
#
$q = "INSERT INTO Packages (Name, Description, URL, SubmittedTS, ";
$q.= "SubmitterUID, DummyPkg) VALUES ('";
$q.= mysql_real_escape_string($pname)."', 'A dummy package', '/#', ";
$q.= "UNIX_TIMESTAMP(), ".$uid.", 1)";
$result = db_query($q, $dbh);
if (!$result) {
return NULL;
}
return mysql_insert_id($dbh);
} else {
$data = mysql_fetch_row($result);
return $data[0];
}
}
return NULL;
}
# grab package comments
#
function package_comments($pkgid=0) {
$comments = array();
if ($pkgid) {
$dbh = db_connect();
$q = "SELECT PackageComments.ID, UserName, UsersID, Comments, CommentTS ";
$q.= "FROM PackageComments, Users ";
$q.= "WHERE PackageComments.UsersID = Users.ID";
$q.= " AND PackageID = ".mysql_real_escape_string($pkgid);
$q.= " AND DelUsersID = 0"; # only display non-deleted comments
$q.= " ORDER BY CommentTS DESC";
$result = db_query($q, $dbh);
if (!$result) {return array();}
while ($row = mysql_fetch_assoc($result)) {
$comments[] = $row;
}
}
return $comments;
}
# grab package sources
#
function package_sources($pkgid=0) {
$sources = array();
if ($pkgid) {
$dbh = db_connect();
$q = "SELECT Source FROM PackageSources ";
$q.= "WHERE PackageID = ".mysql_real_escape_string($pkgid);
$q.= " ORDER BY Source";
$result = db_query($q, $dbh);
if (!$result) {return array();}
while ($row = mysql_fetch_row($result)) {
$sources[] = $row[0];
}
}
return $sources;
}
# grab array of Package.IDs that I've voted for: $pkgs[1234] = 1, ...
#
function pkgvotes_from_sid($sid="") {
$pkgs = array();
if (!$sid) {return $pkgs;}
$dbh = db_connect();
$q = "SELECT PackageID ";
$q.= "FROM PackageVotes, Users, Sessions ";
$q.= "WHERE Users.ID = Sessions.UsersID ";
$q.= "AND Users.ID = PackageVotes.UsersID ";
$q.= "AND Sessions.SessionID = '".mysql_real_escape_string($sid)."'";
$result = db_query($q, $dbh);
if ($result) {
while ($row = mysql_fetch_row($result)) {
$pkgs[$row[0]] = 1;
}
}
return $pkgs;
}
# display package details
#
function package_details($id=0, $SID="") {
global $_REQUEST;
global $pkgsearch_vars;
$q = "SELECT Packages.*,Location,Category ";
$q.= "FROM Packages,PackageLocations,PackageCategories ";
$q.= "WHERE Packages.LocationID = PackageLocations.ID ";
$q.= "AND Packages.CategoryID = PackageCategories.ID ";
$q.= "AND Packages.ID = ".intval($_REQUEST["ID"]);
$dbh = db_connect();
$results = db_query($q, $dbh);
if (!$results) {
print __("Error retrieving package details.")."
\n";
} else {
$row = mysql_fetch_assoc($results);
if (empty($row)) {
print __("Package details could not be found.")."
\n";
} else {
# print out package details
#
echo "
"; echo $row["Name"] . " " . $row["Version"]." | |||||
"; echo "".$row["URL"]." | |||||
".$row["Description"]; echo " | |||||
"; if ($row["Location"] == "unsupported" and ( uid_from_sid($SID) == $row["MaintainerUID"] or (account_from_sid($SID) == "Developer" or account_from_sid($SID) == "Trusted User"))) { $edit_cat = "".$row["Category"].""; $edit_cat .= " ("; $edit_cat .= __("change category").")"; } else { $edit_cat = $row["Category"]; } echo $row["Location"]." :: ".$edit_cat." | |||||
".__("Maintainer").": "; if ($row["MaintainerUID"]) { $maintainer = username_from_id($row["MaintainerUID"]); if ($SID) { echo ""; echo $maintainer . " | "; } else { echo $maintainer . ""; } } else { $maintainer = "None"; echo $maintainer . ""; } echo "|||||
".__("Votes").": "; echo $row["NumVotes"] . " | |||||
".__("License").": ".$license; echo " | |||||
";
echo __("Last Updated").": ".$updated_time." "; echo __("First Submitted").": ".$submitted_time." | |||||
"; if ($row["LocationID"] == 2) { global $URL_DIR; $urlpath = $URL_DIR.$row["Name"]."/".$row["Name"]; echo "".__("Tarball")." :: ".__("Files")." :: PKGBUILD | "; } elseif ($row["LocationID"] == 3) { echo "CVS"; } echo "|||||
"; if ($row["Safe"]) { echo "".__("The above files have been verified (by %s) and are safe to use.", array(username_from_id($row["VerifiedBy"])))." | "; } else { echo "".__("Be careful! The above files may contain malicious code that can damage your system.").""; } echo "|||||
\n";
echo "
| \n";
echo " \n";
echo "
| \n";
echo "
\n"; echo str_replace("\n", "
", str_replace('"',""", htmlspecialchars(strip_tags(stripslashes($carr["Comments"]))))); echo "