Junliano,
Thanks for the help. The suggested approach is excellent, but limited to
usage for particular class of hooks and versions of MW, in this case
$wgExtParserFunctions.
For all function hooks, the following syntax works without having to worry
about different versions and classes of MW (at least I think it does - it
does on the ones I've tested). This example (parser function 'replace_e')
extends the parser function 'replace' by interpreting escaped characters.
<source lang=php>
function runReplace_e( $parser, $inStr = '', $inReplaceFrom = '',
$inReplaceTo = '' ) {
global $wgParser;
list($callback,$flags) = $wgParser->mFunctionHooks['replace'];
return @call_user_func_array( $callback,
array_merge(array($parser),array($inStr,
stripcslashes($inReplaceFrom), stripcslashes($inReplaceTo)) ));
}
</source>
If someone knows a cleaner/more efficient way, I'd love to hear it!
Jack D. Pond
"Believe those who are seeking the truth. Doubt those who find it." -- Andre
Gide(1869-1951)
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> Juliano F. Ravasi
> Sent: Tuesday, September 08, 2009 3:14 PM
> To: MediaWiki announcements and site admin list
> Subject: Re: [Mediawiki-l] Extending an existing
> ParserFunction extension
>
> Jack D. Pond wrote:
> > function runReplace_e( &$parser, $inStr = '', $inReplaceFrom = '',
> > $inReplaceTo = '' ) {
> > return (runReplace( &$parser, $inStr,
> stripcslashes($inReplaceFrom)
> > , stripcslashes($inReplaceFrom))); }
>
> Recheck your parameters, $inReplaceFrom is used twice.
>
> What you want is probably this:
>
> {
> global $wgExtParserFunctions;
> return $wgExtParserFunctions->runReplace( ...etc... );
> }
>
>
> --
> Juliano F. Ravasi .. http://juliano.info/
> 5105 46CC B2B7 F0CD 5F47 E740 72CA 54F4 DF37 9E96
>
> "A candle loses nothing by lighting another candle." -- Erin Majors
>
> * NOTE: Don't try to reach me through this address, use
> "contact@" instead.
>
> _______________________________________________
> MediaWiki-l mailing list
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
>
_______________________________________________
MediaWiki-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l