[aur-dev] [PATCH] Convert package notification to a function
Loui
louipc.ist at gmail.com
Fri Oct 31 08:54:05 EDT 2008
On Sun, Oct 05, 2008 at 03:26:53AM +0800, Callan Barrett wrote:
> Signed-off-by: Callan Barrett <wizzomafizzo at gmail.com>
> ---
> web/html/packages.php | 46 ++---------------------------------------
> web/lib/pkgfuncs.inc | 53 +++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 56 insertions(+), 43 deletions(-)
Alright. I found it necessary to make a lot of changes to this one.
The notify/unnotify wasn't being reported correctly, and the function
was actually printing the content rather than returning a string.
That's corrected in the attached patch. Please check it out!
Cheers.
-------------- next part --------------
>From 58b28f4b147ab396dad38e79c621c3662276cf54 Mon Sep 17 00:00:00 2001
From: Loui Chang <louipc.ist at gmail.com>
Date: Fri, 31 Oct 2008 01:28:14 -0400
Subject: [PATCH] Move package notification into a function.
Signed-off-by: Loui Chang <louipc.ist at gmail.com>
---
web/html/packages.php | 46 +++-------------------------------------------
web/lib/pkgfuncs.inc | 44 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 43 deletions(-)
diff --git a/web/html/packages.php b/web/html/packages.php
index 91b0e6e..f06aaa1 100644
--- a/web/html/packages.php
+++ b/web/html/packages.php
@@ -78,49 +78,9 @@ if ($_POST['action'] == "do_Flag" || isset($_POST['do_Flag'])) {
}
} elseif ($_POST['action'] == "do_Notify" || isset($_POST['do_Notify'])) {
- # I realize that the implementation here seems a bit convoluted, but we want to
- # ensure that everything happens as it should, even if someone called this page
- # without having clicked a button somewhere (naughty naughty). This also leaves
- # room to someday expand and allow to add oneself to multiple lists at once. -SL
- if (!$atype) {
- print __("You must be logged in before you can get notifications on comments.");
- print "<br />\n";
- } else {
- if (!empty($ids)) {
- $dbh = db_connect();
- $uid = uid_from_sid($_COOKIE["AURSID"]);
- # There currently shouldn't be multiple requests here, but the format in which
- # it's sent requires this
- while (list($pid, $v) = each($ids)) {
- $q = "SELECT Name FROM Packages WHERE ID = " . $pid;
- $pkgname = mysql_result(db_query($q, $dbh), 0);
-
- $q = "SELECT * FROM CommentNotify WHERE UserID = ".$uid;
- $q.= " AND PkgID = ".$pid;
-
- if (!mysql_num_rows(db_query($q, $dbh))) {
- $q = "INSERT INTO CommentNotify (PkgID, UserID) VALUES (".$pid.', '.$uid.')';
- db_query($q, $dbh);
- print '<p>';
- print __("You have been added to the comment notification list for %s.",
- array("<b>" . $pkgname . "</b>"));
- print '<br /></p>';
- } else {
- $q = "DELETE FROM CommentNotify WHERE PkgID = ".$pid;
- $q.= " AND UserID = ".$uid;
- db_query($q, $dbh);
- print '<p>';
- print __("You have been removed from the comment notification list for %s.",
- array("<b>" . $pkgname . "</b>"));
- print '<br /></p>';
- }
- }
- } else {
- print '<p>';
- print __("Couldn't add to notification list.");
- print '<br /></p>';
- }
- }
+ print "<p>";
+ print pkg_notify($atype, $ids);
+ print "</p>";
} else {
# just do a search
#
diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc
index 7fe3f31..9267ec0 100644
--- a/web/lib/pkgfuncs.inc
+++ b/web/lib/pkgfuncs.inc
@@ -1266,3 +1266,47 @@ function pkg_vote ($atype, $ids, $action = True) {
return __("Your votes have been removed from the selected packages.");
}
}
+
+function pkg_notify ($atype, $ids) {
+ if (!$atype) {
+ # return __("You must be logged in before you can get notifications on comments.");
+ return;
+ }
+
+ if (empty($ids)) {
+ return __("Couldn't add to notification list.");
+ }
+
+ $dbh = db_connect();
+ $uid = uid_from_sid($_COOKIE["AURSID"]);
+
+ $output = "";
+
+ # There currently shouldn't be multiple requests here, but the
+ # format in which it's sent requires this.
+ foreach ($ids as $pid => $v) {
+ $q = "SELECT Name FROM Packages WHERE ID = $pid";
+ $pkgname = mysql_result(db_query($q, $dbh), 0);
+
+ $q = "SELECT * FROM CommentNotify WHERE UserID = $uid";
+ $q .= " AND PkgID = $pid";
+
+ if (!mysql_num_rows(db_query($q, $dbh))) {
+ $q = "INSERT INTO CommentNotify (PkgID, UserID) VALUES ($pid, $uid)";
+ db_query($q, $dbh);
+
+ $output .= __("You have been added to the comment notification list for %s.", $pkgname);
+ }
+ else {
+ $q = "DELETE FROM CommentNotify WHERE PkgID = $pid";
+ $q .= " AND UserID = $uid";
+ db_query($q, $dbh);
+
+ $output .= __("You have been removed from the comment notification list for %s.", $pkgname);
+ }
+ $output .= "<br />";
+ }
+
+ return $output;
+}
+
--
1.6.0.3
More information about the aur-dev
mailing list