Difference between revisions of "Extension:DisplayFilter.php"
(start from template) |
m |
||
Line 4: | Line 4: | ||
# - 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}} | ||
− | $ | + | $wgDisplayFilterVersion = "0.0.0/2007-05-07"; |
− | $ | + | $wgDisplayFilterMagic = "filter"; |
− | $wgExtensionFunctions[] = ' | + | $wgExtensionFunctions[] = 'wfSetupDisplayFilter'; |
− | $wgHooks['LanguageGetMagic'][] = ' | + | $wgHooks['LanguageGetMagic'][] = 'wfDisplayFilterLanguageGetMagic'; |
$wgExtensionCredits['parserhook'][] = array( | $wgExtensionCredits['parserhook'][] = array( | ||
Line 15: | Line 15: | ||
); | ); | ||
− | class | + | class DisplayFilter { |
# Properties | # Properties | ||
Line 22: | Line 22: | ||
# Constructor | # Constructor | ||
− | function | + | function DisplayFilter() { |
− | global $wgHooks,$wgParser,$ | + | global $wgHooks,$wgParser,$wgDisplayFilterMagic,$wgDisplay FilterTag,$wgJavaScriptFunctions; |
# Add the parser-function | # Add the parser-function | ||
− | $wgParser->setFunctionHook($ | + | $wgParser->setFunctionHook($wgDisplayFilterMagic,array($this,'magicFilter')); |
# Add the tagHook | # Add the tagHook | ||
− | $wgParser->setHook($ | + | $wgParser->setHook($wgDisplayFilterTag,array($this,'tagFoo')); |
# This allows JS functions to be added to the global $wgJavaScriptFunctions array for inclusion in the output page | # This allows JS functions to be added to the global $wgJavaScriptFunctions array for inclusion in the output page | ||
Line 76: | Line 76: | ||
# Called from $wgExtensionFunctions array when initialising extensions | # Called from $wgExtensionFunctions array when initialising extensions | ||
− | function | + | function wfSetupDisplayFilter() { |
− | global $ | + | global $wgDisplayFilter; |
− | $wgDisplay Filter = new | + | $wgDisplay Filter = new DisplayFilter(); |
} | } | ||
# Needed in MediaWiki >1.8.0 for magic word hooks to work properly | # Needed in MediaWiki >1.8.0 for magic word hooks to work properly | ||
− | function | + | function wfDisplayFilterLanguageGetMagic(&$magicWords,$langCode = 0) { |
− | global $ | + | global $wgDisplayFilterMagic; |
− | $magicWords[$ | + | $magicWords[$wgDisplayFilterMagic] = array(0,$wgDisplayFilterMagic); |
return true; | return true; | ||
} | } | ||
?> | ?> |
Revision as of 01:18, 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; } ?>