Hello,
(I posted this in a similar form a few days ago)
I was wondering if anyone here could help.
I just upgraded a "staging" wiki running 1.23.8 to 1.24.1 and get no output (blank) and I see the log says it is due to a skin error. I do not know much PHP. which is a source of the problem I have. Looking through the release notes, I see the problem will be down to the skin "auto-discovery" changes.
I am running a custom skin "zeddocs" based on Vector. I "authored" this but without a proper understanding and with lots of help from mediawiki-l (http://thread.gmane.org/gmane.org.wikimedia.mediawiki/43017/focus=43019).
Looking at this help page about migrating skins to 1.24, I have tried to adjust my custom skin files but without success.
In 1.24.1 skins/ I have :
* CologneBlue/ * Modern/ * MonoBook/ * Vector/ * ZedDocs/
ZedDocs is the custom skin based on Vector.
The Apache error I was getting is :
Tue Jan 13 15:43:10 2015] [error] [client 192.168.0.124] PHP Warning: require_once(/home/user/mediawiki-1.24.1/skins/zeddocs/../Vector.php): failed to open stream: No such file or directory in /home/user/mediawiki-1.24.1/skins/zeddocs/ZedDocs.skin.php on line 9, referer: http://wpdev/w/index.php?title=Main_Page
On line 9 of zeddocs/ZedDocs.skin.php I had :
require_once( dirname( __FILE__ ) . '/../Vector.php' );
If I remove this line as per Daniel Friesen on last mediawiki-l thread, I get error :
[Tue Jan 13 16:38:50 2015] [error] [client 192.168.0.124] PHP Catchable fatal error: Argument 1 passed to SkinVector::__construct() must implement interface Config, string given, called in /home/user/mediawiki-1.24.1/includes/Setup.php on line 285 and defined in /home/user/mediawiki-1.24.1/skins/Vector/SkinVector.php on line 38, referer: http://wpdev/w/index.php?title=Main_Page
Unfortunately, I don't follow what to do from Daniel's suggestion about the way Vector now works. I have tried to set up my skin files (and renamed) as per the Skin_autodiscovery manual page.
skins/ZedDocs/ - css - images - ZedDocs.i18n.php - ZedDocs.php - ZedDocs.skin.php
I have made changes to files ZedDocs.php and ZedDocs.Skin.php but they are not working.
Can anyone see what's wrong or what I need to add? The files are here (added .txt extension) :
* http://www.sherringham.net/tmp/ZedDocs.php.txt * http://www.sherringham.net/tmp/ZedDocs.skin.php.txt * http://www.sherringham.net/tmp/ZedDocs.i18n.php.txt
Obviously, if this is not a small or basic job, I'll need to reconsider how I do things. Either stick with 1.23.8 for now or switch back to pure Vector skin in future. The only reason I modified it was to add a page "banner" and tweak a bit of CSS etc. I kike what I have but prefer being able to upgrade.
Many Thanks,
Alastair
Hi,
On 01/16/2015 12:08 AM, Alastair Sherringham wrote:
require_once( dirname( __FILE__ ) . '/../Vector.php' );
If I remove this line as per Daniel Friesen on last mediawiki-l thread, I get error :
[Tue Jan 13 16:38:50 2015] [error] [client 192.168.0.124] PHP Catchable fatal error: Argument 1 passed to SkinVector::__construct() must implement interface Config, string given, called in /home/user/mediawiki-1.24.1/includes/Setup.php on line 285 and defined in /home/user/mediawiki-1.24.1/skins/Vector/SkinVector.php on line 38, referer: http://wpdev/w/index.php?title=Main_Page
Unfortunately, I don't follow what to do from Daniel's suggestion about the way Vector now works. I have tried to set up my skin files (and renamed) as per the Skin_autodiscovery manual page.
Sorry, this is my fault. :/ I've uploaded a patch[1] to fix this.
For now you can add:
public function __construct() { parent::__construct( ConfigFactory::getDefaultInstance()->makeConfig( 'vector' ) ); }
to your SkinZedDocs class, which should fix the issue.
[1] https://gerrit.wikimedia.org/r/#/c/185695/
-- Legoktm
Thank you, I much appreciate you fixing this! I added your "public function" inside my :
class SkinZedDocs extends SkinVector { ... }
class and it seems to work again. I will have to cross my fingers and hope this doesn't break again because, not knowing PHP, I can't fix it myself. Luckily I test an upgrade first!
Many Thanks.
On Sun, Jan 18, 2015, at 07:48 PM, Legoktm wrote:
Hi,
On 01/16/2015 12:08 AM, Alastair Sherringham wrote:
require_once( dirname( __FILE__ ) . '/../Vector.php' );
If I remove this line as per Daniel Friesen on last mediawiki-l thread, I get error :
[Tue Jan 13 16:38:50 2015] [error] [client 192.168.0.124] PHP Catchable fatal error: Argument 1 passed to SkinVector::__construct() must implement interface Config, string given, called in /home/user/mediawiki-1.24.1/includes/Setup.php on line 285 and defined in /home/user/mediawiki-1.24.1/skins/Vector/SkinVector.php on line 38, referer: http://wpdev/w/index.php?title=Main_Page
Unfortunately, I don't follow what to do from Daniel's suggestion about the way Vector now works. I have tried to set up my skin files (and renamed) as per the Skin_autodiscovery manual page.
Sorry, this is my fault. :/ I've uploaded a patch[1] to fix this.
For now you can add:
public function __construct() { parent::__construct( ConfigFactory::getDefaultInstance()->makeConfig( 'vector' ) ); }
to your SkinZedDocs class, which should fix the issue.
[1] https://gerrit.wikimedia.org/r/#/c/185695/
-- Legoktm
MediaWiki-l mailing list To unsubscribe, go to: https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
mediawiki-l@lists.wikimedia.org