Arcane 21 <arcane <at> live.com> writes:
I recommend using the MW 1.22.4 tarball to base this on. The MW 1.22.3
extensions are the wrong branch and
produce errors, assuming you're using the Cite extension that was bundled
with the 1.22.3 tarball..
I've upgraded my MW installation and the extensions, but the problem remains. I would guess it's to do with passing references vs values, or there is some MediaWiki-specific thing that I am not aware of.
Perhaps someone can help me sort out the syntax for writing an event handler that modifies an existing value.
Here's where the hook is called:
wfRunHooks( 'CiteBeforeStackEntry', array( &$str, &$key, &$call ) );
Here's the hook:
$wgHooks['CiteBeforeStackEntry'][] = 'wfProcessCite';
Here's the function:
function wfProcessCite( $str, $key, $call ){
...
I want to change the value of $str, but leave $key and $call unchanged.
Can someone indicate the correct syntax?
Thank you! Amelia.
From: amelia.ireland <at> gmod.org Date: Thu, 13 Mar 2014 14:18:54 -0700 To: mediawiki-l <at> lists.wikimedia.org Subject: [MediaWiki-l] MediaWiki hooks and parameters
Hello,
I'm having a little trouble getting a custom hook to perform the
actions I
want it to after upgrading from PHP 5.3 / MW 1.19.2 to PHP 5.4 / MW 1.22.3.
I am hacking an existing extension, ProcessCite, that integrates into
the
Cite extension by adding a custom hook to one of Cite's functions:
# from Cite_body.php function stack( $str, $key = null, $group, $follow, $call ) { # add the call to the CiteBeforeStackEntry hook wfRunHooks( 'CiteBeforeStackEntry', array( &$str, &$call ) );
ProcessCite runs code that creates a value for $str based on the
contents of
$call. Here are the relevant parts of ProcessCite:
# Declare the hook: $wgHooks['CiteBeforeStackEntry'][] = 'wfProcessCite';
# the function itself function wfProcessCite($str, $call){
# process $call and $str to create a new version of $str # $call remains unchanged, $str is set to new value
$str = "new string";
return true; }
Debug statements reveal that wfProcessCite is creating the correct
value for
$str, but the value is not altered when wfProcessCite finishes. I am not sure if I am calling the hook in the wrong way, given that I want to alter
the
value of $str.
The MW manual page on hooks (http://www.mediawiki.org/wiki/Manual:Hooks)
is
somewhat confusing -- what is the difference between passing $someData
to a
function versus passing a set of parameters?!
Any help would be appreciated!
Thank you, Amelia.
-- Amelia Ireland GMOD Community Support Generic Model Organism Database project http://gmod.org || <at> gmodproject _______________________________________________ MediaWiki-l mailing list MediaWiki-l <at> lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
MediaWiki-l mailing list MediaWiki-l <at> lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-l