mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
pkg_comment_form.php: Pull out DB code
* Move DB code and e-mail code from pkg_comment_form.php to new function in pkgfuncs.inc.php * Centralization of DB code important in a future transition to PDO interface Signed-off-by: canyonknight <canyonknight@gmail.com> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
parent
84d21e6f30
commit
d3de667901
2 changed files with 54 additions and 51 deletions
|
@ -200,6 +200,56 @@ function package_comments($pkgid, $dbh=NULL) {
|
||||||
return $comments;
|
return $comments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Add a comment to a package page and send out appropriate notifications
|
||||||
|
# TODO: Move notification logic to separate function where it belongs
|
||||||
|
function add_package_comment($pkgid, $uid, $comment, $dbh=NULL) {
|
||||||
|
if(!$dbh) {
|
||||||
|
$dbh = db_connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$q = 'INSERT INTO PackageComments ';
|
||||||
|
$q.= '(PackageID, UsersID, Comments, CommentTS) VALUES (';
|
||||||
|
$q.= intval($pkgid) . ', ' . $uid . ', ';
|
||||||
|
$q.= "'" . db_escape_string($comment) . "', ";
|
||||||
|
$q.= 'UNIX_TIMESTAMP())';
|
||||||
|
db_query($q, $dbh);
|
||||||
|
|
||||||
|
# Send email notifications
|
||||||
|
$q = 'SELECT CommentNotify.*, Users.Email ';
|
||||||
|
$q.= 'FROM CommentNotify, Users ';
|
||||||
|
$q.= 'WHERE Users.ID = CommentNotify.UserID ';
|
||||||
|
$q.= 'AND CommentNotify.UserID != ' . $uid . ' ';
|
||||||
|
$q.= 'AND CommentNotify.PkgID = ' . intval($pkgid);
|
||||||
|
$result = db_query($q, $dbh);
|
||||||
|
$bcc = array();
|
||||||
|
|
||||||
|
if (mysql_num_rows($result)) {
|
||||||
|
while ($row = mysql_fetch_assoc($result)) {
|
||||||
|
array_push($bcc, $row['Email']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$q = 'SELECT Packages.* ';
|
||||||
|
$q.= 'FROM Packages ';
|
||||||
|
$q.= 'WHERE Packages.ID = ' . intval($pkgid);
|
||||||
|
$result = db_query($q, $dbh);
|
||||||
|
$row = mysql_fetch_assoc($result);
|
||||||
|
|
||||||
|
# TODO: native language emails for users, based on their prefs
|
||||||
|
# Simply making these strings translatable won't work, users would be
|
||||||
|
# getting emails in the language that the user who posted the comment was in
|
||||||
|
$body =
|
||||||
|
'from ' . $AUR_LOCATION . '/packages.php?ID='
|
||||||
|
. $pkgid . "\n"
|
||||||
|
. username_from_sid($_COOKIE['AURSID'], $dbh) . " wrote:\n\n"
|
||||||
|
. $comment
|
||||||
|
. "\n\n---\nIf you no longer wish to receive notifications about this package, please go the the above package page and click the UnNotify button.";
|
||||||
|
$body = wordwrap($body, 70);
|
||||||
|
$bcc = implode(', ', $bcc);
|
||||||
|
$headers = "Bcc: $bcc\nReply-to: nobody@archlinux.org\nFrom: aur-notify@archlinux.org\nX-Mailer: AUR\n";
|
||||||
|
@mail('undisclosed-recipients: ;', "AUR Comment for " . $row['Name'], $body, $headers);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# grab package sources
|
# grab package sources
|
||||||
#
|
#
|
||||||
function package_sources($pkgid, $dbh=NULL) {
|
function package_sources($pkgid, $dbh=NULL) {
|
||||||
|
@ -345,6 +395,10 @@ function package_details($id=0, $SID="", $dbh=NULL) {
|
||||||
# Actions Bar
|
# Actions Bar
|
||||||
if ($SID) {
|
if ($SID) {
|
||||||
include('actions_form.php');
|
include('actions_form.php');
|
||||||
|
if (isset($_REQUEST['comment'])) {
|
||||||
|
$uid = uid_from_sid($SID, $dbh);
|
||||||
|
add_package_comment($id, $uid, $_REQUEST['comment'], $dbh);
|
||||||
|
}
|
||||||
include('pkg_comment_form.php');
|
include('pkg_comment_form.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,54 +1,3 @@
|
||||||
<?php
|
|
||||||
# Add a comment to this package
|
|
||||||
if (isset($_REQUEST['comment'])) {
|
|
||||||
|
|
||||||
# Insert the comment
|
|
||||||
$dbh = db_connect();
|
|
||||||
$q = 'INSERT INTO PackageComments ';
|
|
||||||
$q.= '(PackageID, UsersID, Comments, CommentTS) VALUES (';
|
|
||||||
$q.= intval($_REQUEST['ID']) . ', ' . uid_from_sid($_COOKIE['AURSID']) . ', ';
|
|
||||||
$q.= "'" . db_escape_string($_REQUEST['comment']) . "', ";
|
|
||||||
$q.= 'UNIX_TIMESTAMP())';
|
|
||||||
db_query($q, $dbh);
|
|
||||||
|
|
||||||
# Send email notifications
|
|
||||||
$q = 'SELECT CommentNotify.*, Users.Email ';
|
|
||||||
$q.= 'FROM CommentNotify, Users ';
|
|
||||||
$q.= 'WHERE Users.ID = CommentNotify.UserID ';
|
|
||||||
$q.= 'AND CommentNotify.UserID != ' . uid_from_sid($_COOKIE['AURSID']) . ' ';
|
|
||||||
$q.= 'AND CommentNotify.PkgID = ' . intval($_REQUEST['ID']);
|
|
||||||
$result = db_query($q, $dbh);
|
|
||||||
$bcc = array();
|
|
||||||
|
|
||||||
if (mysql_num_rows($result)) {
|
|
||||||
while ($row = mysql_fetch_assoc($result)) {
|
|
||||||
array_push($bcc, $row['Email']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$q = 'SELECT Packages.* ';
|
|
||||||
$q.= 'FROM Packages ';
|
|
||||||
$q.= 'WHERE Packages.ID = ' . intval($_REQUEST['ID']);
|
|
||||||
$result = db_query($q, $dbh);
|
|
||||||
$row = mysql_fetch_assoc($result);
|
|
||||||
|
|
||||||
# TODO: native language emails for users, based on their prefs
|
|
||||||
# Simply making these strings translatable won't work, users would be
|
|
||||||
# getting emails in the language that the user who posted the comment was in
|
|
||||||
$body =
|
|
||||||
'from ' . $AUR_LOCATION . '/packages.php?ID='
|
|
||||||
. $_REQUEST['ID'] . "\n"
|
|
||||||
. username_from_sid($_COOKIE['AURSID'], $dbh) . " wrote:\n\n"
|
|
||||||
. $_POST['comment']
|
|
||||||
. "\n\n---\nIf you no longer wish to receive notifications about this package, please go the the above package page and click the UnNotify button.";
|
|
||||||
$body = wordwrap($body, 70);
|
|
||||||
$bcc = implode(', ', $bcc);
|
|
||||||
$headers = "Bcc: $bcc\nReply-to: nobody@archlinux.org\nFrom: aur-notify@archlinux.org\nX-Mailer: AUR\n";
|
|
||||||
@mail('undisclosed-recipients: ;', "AUR Comment for " . $row['Name'], $body, $headers);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Prompt visitor for comment
|
|
||||||
?>
|
|
||||||
<div id="generic-form" class="box">
|
<div id="generic-form" class="box">
|
||||||
<h2><?php echo __("Add Comment"); ?></h2>
|
<h2><?php echo __("Add Comment"); ?></h2>
|
||||||
<form call="general-form" action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post">
|
<form call="general-form" action="<?php echo $_SERVER['REQUEST_URI'] ?>" method="post">
|
||||||
|
|
Loading…
Add table
Reference in a new issue