Difference between revisions of "Extension:DisplayFilter.php"
m |
m |
||
Line 1: | Line 1: | ||
<?php | <?php | ||
− | # Extension:Display Filter{{Category:Extensions}}{{#Security:*|dev}}{{#Security:view|*}}{{php}} | + | # Extension:Display Filter{{Category:Extensions|DisplayFilter}}{{#Security:*|dev}}{{#Security:view|*}}{{php}} |
# - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html) | # - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html) | ||
# - Author: [http://www.organicdesign.co.nz/nad User:Nad]{{Category:Extensions created with Template:Extension}} | # - Author: [http://www.organicdesign.co.nz/nad User:Nad]{{Category:Extensions created with Template:Extension}} |
Revision as of 03:06, 8 May 2007
<?php
- Extension:Display Filter
{{#Security:*|dev}}{{#Security:view|*}}Template:Php
- - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
- - Author: User:NadCategory:Extensions created with Template:Extension
$wgDisplayFilterVersion = "0.0.0/2007-05-07"; $wgDisplayFilterMagic = "filter"; $wgExtensionFunctions[] = 'wfSetupDisplayFilter'; $wgHooks['LanguageGetMagic'][] = 'wfDisplayFilterLanguageGetMagic';
$wgExtensionCredits['parserhook'][] = array( 'name' => 'Display Filter', 'author' => 'User:Nad', 'url' => 'http://www.mediawiki.org/wiki/Extension:Display_Filter' );
class DisplayFilter {
# Properties var $prop1: 'default value'; var $prop2: 'default value';
# Constructor function DisplayFilter() { global $wgHooks,$wgParser,$wgDisplayFilterMagic,$wgDisplay FilterTag,$wgJavaScriptFunctions;
# Add the parser-function $wgParser->setFunctionHook($wgDisplayFilterMagic,array($this,'magicFilter'));
# Add the tagHook $wgParser->setHook($wgDisplayFilterTag,array($this,'tagFoo'));
# This allows JS functions to be added to the global $wgJavaScriptFunctions array for inclusion in the output page if (!is_array($wgJavaScriptFunctions)) { $wgJavaScriptFunctions = array(); $wgHooks['OutputPageBeforeHTML'][] = $this; } }
# Expand the filter-magic function magicFilter(&$parser) {
# Populate $argv with both named and numeric parameters $argv = array(); foreach (func_get_args() as $arg) if (!is_object($arg)) { if (preg_match('/^(.+?)\\s*=\\s*(.+)$/',$arg,$match)) $argv[$match[1]] = $match[2]; else $argv[] = $arg; }
# Build text of expaded result $args = ; foreach ($argv as $k => $v) $args .= "*$k: $v\n"; $text = "=== magicFilter(): ===\n$args";
# Return result with available parser flags return array( $text, found => true, nowiki => false, noparse => false, noargs => false, isHTML => false );
}
# Add any JS functions to the output page function onOutputPageBeforeHTML(&$out) { global $wgJavaScriptFunctions; foreach ($wgJavaScriptFunctions as $js) $out->addScript("\n<script type=\"text/javascript\">$js</script>\n"); return true; }
# Needed in some versions to prevent Special:Version from breaking function __toString() { return 'Display Filter'; }
}
- Called from $wgExtensionFunctions array when initialising extensions
function wfSetupDisplayFilter() { global $wgDisplayFilter; $wgDisplay Filter = new DisplayFilter(); }
- Needed in MediaWiki >1.8.0 for magic word hooks to work properly
function wfDisplayFilterLanguageGetMagic(&$magicWords,$langCode = 0) { global $wgDisplayFilterMagic; $magicWords[$wgDisplayFilterMagic] = array(0,$wgDisplayFilterMagic); return true; } ?>