Difference between revisions of "Extension:EmailToWiki"
(this script is only needed for version info) |
(add {{EMAILTOWIKI}} which gets email address of page) |
||
Line 11: | Line 11: | ||
if (!defined('MEDIAWIKI')) die('Not an entry point.'); | if (!defined('MEDIAWIKI')) die('Not an entry point.'); | ||
− | define('EMAILTOWIKI_VERSION',' | + | define('EMAILTOWIKI_VERSION','1.0.1, 2007-06-15'); |
$wgExtensionCredits['other'][] = array( | $wgExtensionCredits['other'][] = array( | ||
Line 20: | Line 20: | ||
'version' => EMAILTOWIKI_VERSION | 'version' => EMAILTOWIKI_VERSION | ||
); | ); | ||
+ | |||
+ | # Add a MediaWiki variable to get the page's email address | ||
+ | $wgCustomVariables = array('EMAILTOWIKI'); | ||
+ | |||
+ | $wgHooks['MagicWordMagicWords'][] = 'wfAddCustomVariable'; | ||
+ | $wgHooks['MagicWordwgVariableIDs'][] = 'wfAddCustomVariableID'; | ||
+ | $wgHooks['LanguageGetMagic'][] = 'wfAddCustomVariableLang'; | ||
+ | $wgHooks['ParserGetVariableValueSwitch'][] = 'wfGetCustomVariable'; | ||
+ | |||
+ | function wfAddCustomVariable(&$magicWords) { | ||
+ | foreach($GLOBALS['wgCustomVariables'] as $var) $magicWords[] = "MAG_$var"; | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | function wfAddCustomVariableID(&$variables) { | ||
+ | foreach($GLOBALS['wgCustomVariables'] as $var) $variables[] = constant("MAG_$var"); | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | function wfAddCustomVariableLang(&$langMagic, $langCode = 0) { | ||
+ | foreach($GLOBALS['wgCustomVariables'] as $var) { | ||
+ | $magic = "MAG_$var"; | ||
+ | $langMagic[defined($magic) ? constant($magic) : $magic] = array(0,$var); | ||
+ | } | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | function wfGetCustomVariable(&$parser,&$cache,&$index,&$ret) { | ||
+ | if ($index == MAG_EMAILTOWIKI) { | ||
+ | global $wgTitle,$wgServer; | ||
+ | $url = parse_url($wgServer); | ||
+ | $ret = $wgTitle->getPrefixedURL(); | ||
+ | $ret = str_replace(':','&3A'); | ||
+ | $ret = eregi_replace('%([0-9a-z]{2})','&$1',$ret); | ||
+ | $ret = "$ret@".$url['host']; | ||
+ | } | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
?> | ?> |
Revision as of 03:37, 15 June 2007
<?php
- Extension:EmailToWiki
Template:PhpCategory:Extensions created with Template:Extension
- - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
- - Author: User:Nad
- - Started: 2007-05-25
- - See http://www.mediawiki.org/wiki/Extension:EmailToWiki for installation and usage details
- NOTE: This script just adds the version and extension information to Special:version,
- the actual work is done by EmailToWiki.pl which should be run from the crontab
if (!defined('MEDIAWIKI')) die('Not an entry point.');
define('EMAILTOWIKI_VERSION','1.0.1, 2007-06-15');
$wgExtensionCredits['other'][] = array( 'name' => 'EmailToWiki', 'author' => 'User:Nad', 'description' => 'Allows emails to be sent to the wiki and added to an existing or new article', 'url' => 'http://www.mediawiki.org/wiki/Extension:EmailToWiki', 'version' => EMAILTOWIKI_VERSION );
- Add a MediaWiki variable to get the page's email address
$wgCustomVariables = array('EMAILTOWIKI');
$wgHooks['MagicWordMagicWords'][] = 'wfAddCustomVariable'; $wgHooks['MagicWordwgVariableIDs'][] = 'wfAddCustomVariableID'; $wgHooks['LanguageGetMagic'][] = 'wfAddCustomVariableLang'; $wgHooks['ParserGetVariableValueSwitch'][] = 'wfGetCustomVariable';
function wfAddCustomVariable(&$magicWords) { foreach($GLOBALS['wgCustomVariables'] as $var) $magicWords[] = "MAG_$var"; return true; }
function wfAddCustomVariableID(&$variables) { foreach($GLOBALS['wgCustomVariables'] as $var) $variables[] = constant("MAG_$var"); return true; }
function wfAddCustomVariableLang(&$langMagic, $langCode = 0) { foreach($GLOBALS['wgCustomVariables'] as $var) { $magic = "MAG_$var"; $langMagic[defined($magic) ? constant($magic) : $magic] = array(0,$var); } return true; }
function wfGetCustomVariable(&$parser,&$cache,&$index,&$ret) { if ($index == MAG_EMAILTOWIKI) { global $wgTitle,$wgServer; $url = parse_url($wgServer); $ret = $wgTitle->getPrefixedURL(); $ret = str_replace(':','&3A'); $ret = eregi_replace('%([0-9a-z]{2})','&$1',$ret); $ret = "$ret@".$url['host']; } return true; }
?>