|
|
| (8 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| − | <?php
| + | {{svn|extensions|MediaWiki/FormMailer/FormMailer.php}} |
| − | # Extension:FORMMAILER{{php}}{{Category:Extensions|FormMailer}}
| |
| − | # - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
| |
| − | # - Author: [http://www.organicdesign.co.nz/nad User:Nad]
| |
| − | # - Started: 2007-06-17
| |
| − | # - See http://www.mediawiki.org/wiki/Extension:FormMailerfor installation and usage details
| |
| − | | |
| − | if (!defined('MEDIAWIKI')) die('Not an entry point.');
| |
| − | | |
| − | define('FORMMAILER_VERSION','1.0.0, 2007-06-17');
| |
| − | | |
| − | # A list of email addresses which should recieve posted forms
| |
| − | $wgFormMailerRecipients = array();
| |
| − | | |
| − | # If a variable of this name is posted, the data is assumed to be for mailing
| |
| − | $wgFormMailerVarName = "formmailer";
| |
| − | | |
| − | # Name of sender of forms
| |
| − | $wgFormMailerFrom = 'wiki@'.ereg_replace('^.+www.','',$wgServer);
| |
| − | | |
| − | # Don't post the following posted items
| |
| − | $wgFormMailerDontSend = array('title','action');
| |
| − | | |
| − | # Message to display after sending the form (can also be set in the form by posting formmailer_message
| |
| − | $wgFormMailerMessage = "Thanks, your enquiry has been submitted!";
| |
| − | | |
| − | # Message to display after sending the form (can also be set in the form by posting formmailer_subject
| |
| − | $wgFormMailerSubject = "Form submitted from $wgSitename";
| |
| − | | |
| − | | |
| − | $wgExtensionFunctions[] = 'wfSetupFormMailer';
| |
| − | | |
| − | $wgExtensionCredits['other'][] = array(
| |
| − | 'name' => 'FormMailer',
| |
| − | 'author' => '[http://www.organicdesign.co.nz/nad User:Nad]',
| |
| − | 'description' => 'Formats and sends posted form fields to email recipients',
| |
| − | 'url' => 'http://www.mediawiki.org/wiki/Extension:FormMailer',
| |
| − | 'version' => FORMMAILER_VERSION
| |
| − | );
| |
| − | | |
| − | function wfSetupFormMailer() {
| |
| − | global $wgFormMailerVarName,$wgFormMailerRecipients,$wgFormMailerMessage,$wgFormMailerSubject,
| |
| − | $wgFormMailerFrom,$wgFormMailerDontSend,$wgSimpleFormsRequestPrefix,$wgSiteNotice,$wgSitename;
| |
| − | | |
| − | if (isset($_REQUEST[$wgSimpleFormsRequestPrefix.$wgFormMailerVarName])) {
| |
| − | | |
| − | # Construct the message
| |
| − | $body = "Form posted from ".$_SERVER['REMOTE_ADDR']."\n\n";
| |
| − | $message = $wgFormMailerMessage;
| |
| − | $subject = $wgFormMailerSubject;
| |
| − | foreach (array_merge($_GET,$_POST) as $k => $v) if (!in_array($k,$wgFormMailerDontSend)) {
| |
| − | if ($wgSimpleFormsRequestPrefix) $k = ereg_replace("^$wgSimpleFormsRequestPrefix",'',$k$
| |
| − | $k = str_replace('_',' ',$k);
| |
| − | if ($k == 'formmailer_message') $message = $v;
| |
| − | elseif ($k == 'formmailer_subject') $subject = $v;
| |
| − | elseif ($k != $wgFormMailerVarName) $body .= "$k: $v\n\n";
| |
| − | }
| |
| − | | |
| − | # Send to recipients using the MediaWiki mailer
| |
| − | $err = '';
| |
| − | $user = new User();
| |
| − | $from = "\"$wgSitename\"<$wgFormMailerFrom>";
| |
| − | foreach ($wgFormMailerRecipients as $recipient) if (User::isValidEmailAddr($recipient)) {
| |
| − | $user->setName($recipient);
| |
| − | $user->setEmail($recipient);
| |
| − | if ($user->sendMail($subject,$body,$from) !== true) $err = 'Failed to send!';
| |
| − | }
| |
| − | $wgSiteNotice .= "<div class='usermessage'>".($err ? $err : $message)."</div>";
| |
| − | }
| |
| − | }
| |