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..
From: amelia.ireland(a)gmod.org
Date: Thu, 13 Mar 2014 14:18:54 -0700
To: mediawiki-l(a)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, $argv){
# process $argv and $str to create a new version of $str
# $argv 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 || @gmodproject
_______________________________________________
MediaWiki-l mailing list
MediaWiki-l(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l