action_form.php: Pull out DB code

* Create new functions in pkgfuncs.inc.php with SQL queries from
action_form.php
* Centralization of DB code important in a future transition to PDO interface
* Flip logic of vote and notify XHTML button to use function return rather
than a more confusing NOT (!) logical operator statement

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
canyonknight 2012-05-23 15:22:51 -04:00 committed by Lukas Fleischer
parent 1eea2951fb
commit c2b65f2b7b
2 changed files with 48 additions and 24 deletions

View file

@ -973,6 +973,46 @@ function getvotes($pkgid, $dbh=NULL) {
return $votes;
}
# Determine if a user has already voted for a specific package
function user_voted($uid, $pkgid, $dbh=NULL) {
if(!$dbh) {
$dbh = db_connect();
}
$uid = db_escape_string($uid);
$pkgid = db_escape_string($pkgid);
$q = "SELECT * FROM PackageVotes WHERE UsersID = ". $uid;
$q.= " AND PackageID = ".$pkgid;
$result = db_query($q, $dbh);
if (mysql_num_rows($result)) {
return true;
}
else {
return false;
}
}
# Determine if a user wants notifications for a specific package
function user_notify($uid, $pkgid, $dbh=NULL) {
if(!$dbh) {
$dbh = db_connect();
}
$uid = db_escape_string($uid);
$pkgid = db_escape_string($pkgid);
$q = "SELECT * FROM CommentNotify WHERE UserID = ". $uid;
$q.= " AND PkgID = ".$pkgid;
$result = db_query($q, $dbh);
if (mysql_num_rows($result)) {
return true;
}
else {
return false;
}
}
/**
* Toggle notification of packages
*

View file

@ -3,33 +3,17 @@
<fieldset>
<input type="hidden" name="IDs[<?php echo $row['ID'] ?>]" value="1" />
<input type="hidden" name="ID" value="<?php echo $row['ID'] ?>" />
<?php
# Voting Button
#
$q = "SELECT * FROM PackageVotes WHERE UsersID = ". $uid;
$q.= " AND PackageID = ".$row["ID"];
$result = db_query($q, $dbh);
if ($result):
if (!mysql_num_rows($result)):
?>
<input type="submit" class="button" name="do_Vote" value="<?php echo __("Vote") ?>" />
<?php else: ?>
<?php if (user_voted($uid, $row['ID'])): ?>
<input type="submit" class="button" name="do_UnVote" value="<?php echo __("UnVote") ?>" />
<?php endif; ?>
<?php else: ?>
<input type="submit" class="button" name="do_Vote" value="<?php echo __("Vote") ?>" />
<?php endif; ?>
<?php
# Comment Notify Button
#
$q = "SELECT * FROM CommentNotify WHERE UserID = ". $uid;
$q.= " AND PkgID = ".$row["ID"];
$result = db_query($q, $dbh);
if ($result):
if (!mysql_num_rows($result)):
?>
<input type="submit" class="button" name="do_Notify" value="<?php echo __("Notify") ?>" title="<?php echo __("New Comment Notification") ?>" />
<?php else: ?>
<?php if (user_notify($uid, $row['ID'])): ?>
<input type="submit" class="button" name="do_UnNotify" value="<?php echo __("UnNotify") ?>" title="<?php echo __("No New Comment Notification") ?>" />
<?php endif; ?>
<?php else: ?>
<input type="submit" class="button" name="do_Notify" value="<?php echo __("Notify") ?>" title="<?php echo __("New Comment Notification") ?>" />
<?php endif; ?>
<?php if ($row["OutOfDateTS"] === NULL): ?>