Feedback Action Upgrade
Last Updated: 2004-11-22 - RewriteRules bug fixed
This 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.
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;
}
?>
CategoryUserContributions