Feedback Action Upgrade
Last Updated: 2004-11-22 - RewriteRules bug fixedThis is action extends the basic FeedbackAction. It allows not only to send feedback to the Wikka administrator but also to any other registered user via a user GET variable
This action is meant as a module to integrate the FeedbackAction into the UserAdmin tool.
To use it as a standalone action simply add {{userfeedback}} in one of your pages.
To use it as a standalone action simply add {{userfeedback}} in one of your pages.
Save the following code as actions/userfeedback.php.
-- DarTar
actions/userfeedback.php
<?php
// USER FEEDBACK ACTION
// Displays a form to send feedback to the site administrator, as specified in the configuration file,
// or to a registered user as specified by a "user" GET variable
// Build feedback form
if ($_REQUEST["user"]) {
$form = "<p>Send feedback to :".$this->Link($_REQUEST["user"])."</p>".
$this->FormOpen().
"<input type=\"hidden\" name=\"mail\" value=\"result\">".
"<input type=\"hidden\" name=\"user\" value=\"".$_REQUEST["user"]."\">".
"Comments:<br />\n".
"<textarea name=\"comments\" rows=\"15\" cols=\"40\">".$_POST["comments"]."</textarea><br />".
"<input type=\"submit\" />".
$this->FormClose();
} else {
$form = "<p>Fill in the form below to send us your comments:</p>".
$this->FormOpen().
"Name: <input name=\"name\" value=\"".$_POST["name"]."\" type=\"text\" /><br />".
"<input type=\"hidden\" name=\"mail\" value=\"result\">".
"Email: <input name=\"email\" value=\"".$_POST["email"]."\" type=\"text\" /><br />".
"Comments:<br />\n<textarea name=\"comments\" rows=\"15\" cols=\"40\">".$_POST["comments"]."</textarea><br />\n".
"<input type=\"submit\" />".
$this->FormClose();
}
// Results
if ($_REQUEST["mail"]=="result") {
$comments = $_POST["comments"];
if ($_REQUEST["user"]) {
// Sender
$name = $this->GetUserName();
$senderdata = $this->LoadSingle("select email from ".$this->config["table_prefix"]."users WHERE name =\"".$name."\"");
$email = $senderdata["email"];
// Recipient
$recipient = $_REQUEST["user"];
$recipientdata = $this->LoadSingle("select email from ".$this->config["table_prefix"]."users WHERE name =\"".$recipient."\"");
$recipientmail = $recipientdata["email"];
if (!$recipientmail) {
echo $this->Format("== User ".$recipient." unknown == --- ");
echo $this->Format("Sorry, the recipient of your message (**".$recipient."**) is unknown --- --- --- ");
echo $this->Format("Return to the [[".$this->GetConfigValue("root_page")." | main page]]");
} elseif (!$comments) {
// some text must be entered
echo "<p class=\"error\">Please enter some text</p>";
echo $alert;
echo $form;
}
} else {
$name = $_POST["name"];
$email = $_REQUEST["email"];
$recipient = $this->GetConfigValue("admin_users");
$recipientmail = $this->GetConfigValue("admin_email");
list($user, $host) = sscanf($email, "%[a-zA-Z0-9._-]@%[a-zA-Z0-9._-]");
if (!$name) {
// a valid name must be entered
echo "<p class=\"error\">Please enter your name</p>";
echo $form;
} elseif (!$email || !strchr($email, "@") || !$user || !$host) {
// a valid email address must be entered
echo "<p class=\"error\">Please enter a valid email address</p>";
echo $form;
} elseif (!$comments) {
// some text must be entered
echo "<p class=\"error\">Please enter some text</p>";
echo $alert;
echo $form;
}
}
if ($name && $email && $comments && $recipientmail) {
// send email and display message
$msg = "Name:\t".$name."\n";
$msg .= "Email:\t".$email."\n";
$msg .= "Comments:".$comments."\n";
$subject = "Feedback from ".$this->GetConfigValue("wakka_name");
$mailheaders = "From:".$email."\n";
$mailheaders .= "Reply-To:".$email."\n\n";
mail($recipientmail, $subject, $msg, $mailheaders);
echo $this->Format("== Feedback sent! == --- ");
echo $this->Format("Thanks for your interest: your message has been sent to [[".$recipient."]] --- --- ");
// optionally displays the feedback text
echo $this->Format("---- ''**Your name:** ".$name."---**Your email:** ".$email."---**Your comments:**".$comments."'' ---- ");
echo $this->Format(" --- Return to the [[".$this->GetConfigValue("root_page")." | main page]]");
}
} else {
// Display initial form
echo $form;
}
?>
// USER FEEDBACK ACTION
// Displays a form to send feedback to the site administrator, as specified in the configuration file,
// or to a registered user as specified by a "user" GET variable
// Build feedback form
if ($_REQUEST["user"]) {
$form = "<p>Send feedback to :".$this->Link($_REQUEST["user"])."</p>".
$this->FormOpen().
"<input type=\"hidden\" name=\"mail\" value=\"result\">".
"<input type=\"hidden\" name=\"user\" value=\"".$_REQUEST["user"]."\">".
"Comments:<br />\n".
"<textarea name=\"comments\" rows=\"15\" cols=\"40\">".$_POST["comments"]."</textarea><br />".
"<input type=\"submit\" />".
$this->FormClose();
} else {
$form = "<p>Fill in the form below to send us your comments:</p>".
$this->FormOpen().
"Name: <input name=\"name\" value=\"".$_POST["name"]."\" type=\"text\" /><br />".
"<input type=\"hidden\" name=\"mail\" value=\"result\">".
"Email: <input name=\"email\" value=\"".$_POST["email"]."\" type=\"text\" /><br />".
"Comments:<br />\n<textarea name=\"comments\" rows=\"15\" cols=\"40\">".$_POST["comments"]."</textarea><br />\n".
"<input type=\"submit\" />".
$this->FormClose();
}
// Results
if ($_REQUEST["mail"]=="result") {
$comments = $_POST["comments"];
if ($_REQUEST["user"]) {
// Sender
$name = $this->GetUserName();
$senderdata = $this->LoadSingle("select email from ".$this->config["table_prefix"]."users WHERE name =\"".$name."\"");
$email = $senderdata["email"];
// Recipient
$recipient = $_REQUEST["user"];
$recipientdata = $this->LoadSingle("select email from ".$this->config["table_prefix"]."users WHERE name =\"".$recipient."\"");
$recipientmail = $recipientdata["email"];
if (!$recipientmail) {
echo $this->Format("== User ".$recipient." unknown == --- ");
echo $this->Format("Sorry, the recipient of your message (**".$recipient."**) is unknown --- --- --- ");
echo $this->Format("Return to the [[".$this->GetConfigValue("root_page")." | main page]]");
} elseif (!$comments) {
// some text must be entered
echo "<p class=\"error\">Please enter some text</p>";
echo $alert;
echo $form;
}
} else {
$name = $_POST["name"];
$email = $_REQUEST["email"];
$recipient = $this->GetConfigValue("admin_users");
$recipientmail = $this->GetConfigValue("admin_email");
list($user, $host) = sscanf($email, "%[a-zA-Z0-9._-]@%[a-zA-Z0-9._-]");
if (!$name) {
// a valid name must be entered
echo "<p class=\"error\">Please enter your name</p>";
echo $form;
} elseif (!$email || !strchr($email, "@") || !$user || !$host) {
// a valid email address must be entered
echo "<p class=\"error\">Please enter a valid email address</p>";
echo $form;
} elseif (!$comments) {
// some text must be entered
echo "<p class=\"error\">Please enter some text</p>";
echo $alert;
echo $form;
}
}
if ($name && $email && $comments && $recipientmail) {
// send email and display message
$msg = "Name:\t".$name."\n";
$msg .= "Email:\t".$email."\n";
$msg .= "Comments:".$comments."\n";
$subject = "Feedback from ".$this->GetConfigValue("wakka_name");
$mailheaders = "From:".$email."\n";
$mailheaders .= "Reply-To:".$email."\n\n";
mail($recipientmail, $subject, $msg, $mailheaders);
echo $this->Format("== Feedback sent! == --- ");
echo $this->Format("Thanks for your interest: your message has been sent to [[".$recipient."]] --- --- ");
// optionally displays the feedback text
echo $this->Format("---- ''**Your name:** ".$name."---**Your email:** ".$email."---**Your comments:**".$comments."'' ---- ");
echo $this->Format(" --- Return to the [[".$this->GetConfigValue("root_page")." | main page]]");
}
} else {
// Display initial form
echo $form;
}
?>
CategoryUserContributions