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.
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@gmod.org Date: Thu, 13 Mar 2014 14:18:54 -0700 To: mediawiki-l@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@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
mediawiki-l@lists.wikimedia.org