diff options
Diffstat (limited to 'web/lib/pkgfuncs.inc')
-rw-r--r-- | web/lib/pkgfuncs.inc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc index bfdaa58..6ea3831 100644 --- a/web/lib/pkgfuncs.inc +++ b/web/lib/pkgfuncs.inc @@ -83,6 +83,20 @@ function pkgLocations() { 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_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) { @@ -102,6 +116,39 @@ function package_dependencies($pkgid=0) { 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_escape_string($pname)."'"; + $result = db_query($q, $dbh); + if (!$result) { + # Insert the dummy + # + $q = "INSERT INTO Packages (Name, CategoryID, Description, "; + $q.= "URL, LocationID, SubmittedTS, SubmitterUID) VALUES ('"; + $q.= mysql_escape_string($pname)."', 0, "; + $q.= "'A dummy package', '/#', 0, UNIX_TIMESTAMP(), "; + $q.= $uid.")"; + $result = db_query($q, $dbh); + if (!$result) { + return NULL; + } + return mysql_insert_id($result); + } else { + $data = mysql_fetch_row($result); + return $data['ID']; + } + } + return NULL; + +} + # grab package sources # function package_sources($pkgid=0) { |