Difference between revisions of "Extension:FormMailer"

From Organic Design wiki
m
m (Nad moved page Extension:FormMailer.php to Extension:FormMailer without leaving a redirect)
 
(4 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.1, 2007-08-08');
 
 
 
# 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>";
 
}
 
}
 

Latest revision as of 13:26, 30 April 2015

Info.svg This code is in our Git repository here.

Note: If there is no information in this page about this code and it's a MediaWiki extension, there may be something at mediawiki.org.