Extension:FormMailer

From Organic Design wiki
Revision as of 23:09, 16 June 2007 by Nad (talk | contribs) (general structure)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

<?php

  1. Extension:FORMMAILER
  2. - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
  3. - Author: User:Nad
  4. - Started: 2007-06-17
  5. - See http://www.mediawiki.org/wiki/Extension:FormMailerfor installation and usage details

if (!defined('MEDIAWIKI')) die('Not an entry point.');

define('FORMMAILER_VERSION','0.0.0, 2007-06-17');

  1. A list of email addresses which should recieve posted forms

$wgFormMailerRecipients = array();

  1. If a variable of this name is posted, the data is assumed to be for mailing

$wgFormMailerVarName = "formmailer";

  1. Name of sender of forms

$wgFormMailerFrom = "wiki@$wgServer";

  1. Don't post the following posted items

$wgFormMailerDontSend = array('title','action');

  1. 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!";

  1. 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' => '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;

if (isset($_REQUEST[$wgFormMailerVarName])) {

# Construct the message $body = "Form posted from ".$_SERVER['REMOTE_ADDR']."\n\n"; $message = $wgFormMailerMessage; $subject = $wgFormMailerSubject; $wgFormMailerDontSend[] = $wgFormMailerVarName; foreach (array_merge($_GET,$_POST) as $k => $v) if (!in_array($k,$wgFormMailerDontSend)) { if ($k == 'formmailer_message') $message = $v; elseif ($k == 'formmailer_subject') $subject = $v; else { if ($wgSimpleFormsRequestPrefix) $k = ereg_replace("^$wgSimpleFormsRequestPrefix",,$k); $body .= "$k: $v\n\n"; } }

# Send to recipients using the MediaWiki mailer $err = ; foreach ($wgFormMailerRecipients as $recipient) if (User::isValidEmailAddr($recipient)) { $err .= userMailer(new MailAddress($recipient),new MailAddress($wgFormMailerFrom),$subject,$body); }

$wgSiteNotice .= "

".($err ? $err : $message)."

";

} }