Passing template parameters to parser hook extensions
Closed, ResolvedPublic

Description

Author: avarab

Description:
There should be some way to pass template parameters to parser hook extensions,
Tim Starling changed some stuff in rev 1.489 of Parser.php to allow for this but
reverted it in rev 1.498 because of some breakage with it.

There are two ways to solve this, one would be to add a flag to
Parser::setHook() that indicates that the extension being hooked returns
wikitext, it could then return stuff like "[[{{{foo}}}]]" and have the Parser
DWIM, the other way would be to bring something like the old hack back, the
former would work for most cases but it would also be nice to access template
parameters in hooks that don't return wikitext.

Relevant diffs:

Adding support

cvs diff -u -r 1.488 -r 1.489 Parser.php
http://cvs.sourceforge.net/viewcvs.py/wikipedia/phase3/includes/Parser.php?tr1=1.488&tr2=1.489&r1=text&r2=text&diff_format=u

Removing support

cvs diff -u -r 1.497 -r 1.498 Parser.php
http://cvs.sourceforge.net/viewcvs.py/wikipedia/phase3/includes/Parser.php?tr1=1.497&tr2=1.498&r1=text&r2=text&diff_format=u


Version: 1.6.x
Severity: normal

bzimport added projects: MediaWiki-Parser, Parser.Via ConduitNov 21 2014, 9:02 PM
bzimport added a subscriber: wikibugs-l.
bzimport set Reference to bz4529.
bzimport created this task.Via LegacyJan 8 2006, 2:26 AM
bzimport added a comment.Via ConduitJan 12 2006, 9:52 PM

avarab wrote:

*** Bug 4585 has been marked as a duplicate of this bug. ***

bzimport added a comment.Via ConduitMar 1 2006, 12:23 AM

dossy wrote:

See also: bug 2257

bzimport added a comment.Via ConduitMar 1 2006, 12:25 AM

dossy wrote:

I have a minimal change to MediaWiki 1.5.0 that lets me at least access the
template args from my extension (which is all I currently need). It's a
three-line change to includes/Parser.php:

107c107

< var $mOptions, $mTitle, $mOutputType,

var $mOptions, $mTitle, $mOutputType, $mTemplateArgs,

126a127

$this->mTemplateArgs = array();

2294a2296,2297

  1. Store a copy of template args so extensions

can use them.

$this->mTemplateArgs = $assocArgs;

In my extension, I can now do:

...
global $wgParser;
$text = $wgParser->replaceVariables($input, $wgParser->mTemplateArgs);
...

Any reason not to do this?

bzimport added a comment.Via ConduitMar 1 2006, 12:31 AM

dossy wrote:

minimal patch to expose template args for use in extension callbacks, etc.

With this patch, I can now do this from an extension:

...
global $wgParser;
$text = $wgParser->replaceVariables($input, $wgParser->mTemplateArgs);
...

Attached: bug-4529-dossy-parser-patch.txt

bzimport added a comment.Via ConduitMay 12 2006, 2:13 AM

emmiller wrote:

Fix for 1.7-svn

Same changes as #1423, but for 1.7-svn.

Attached: parser.patch

bzimport added a comment.Via ConduitOct 22 2006, 7:53 PM

emmiller wrote:

*** This bug has been marked as a duplicate of 2257 ***

Add Comment