[aur-dev] [PATCH] Convert package notification to a function
Signed-off-by: Callan Barrett <wizzomafizzo@gmail.com> --- web/html/packages.php | 46 ++--------------------------------------- web/lib/pkgfuncs.inc | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 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 6d8b1a7..5c179fa 100644 --- a/web/lib/pkgfuncs.inc +++ b/web/lib/pkgfuncs.inc @@ -1266,3 +1266,56 @@ 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."); + } + + if (empty($ids)) { + return __("Couldn't add to notification list."); + } + + $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 + $list = array(); + + 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))) { + $action = True; + + $q = "INSERT INTO CommentNotify (PkgID, UserID) VALUES (".$pid.', '.$uid.')'; + db_query($q, $dbh); + + $list[] = $pkgname; + } else { + $action = False; + + $q = "DELETE FROM CommentNotify WHERE PkgID = ".$pid; + $q.= " AND UserID = ".$uid; + db_query($q, $dbh); + + $list[] = $pkgname; + } + } + + $msg = "<b>" . array_shift($list) . "</b>"; + foreach ($list as $i) { + $msg .= ", <b>" . $i . "</b>"; + } + + if ($action) { + print __("You have been added to the comment notification list for %s.", $msg); + } else { + print __("You have been removed from the comment notification list for %s.", $msg); + } +} -- 1.6.0.2
This is the last of the functions, feels like we're getting somewhere! -- Callan Barrett
On Sun, Oct 05, 2008 at 03:26:53AM +0800, Callan Barrett wrote:
Signed-off-by: Callan Barrett <wizzomafizzo@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.
participants (2)
-
Callan Barrett
-
Loui