On Thu, Mar 6, 2014 at 10:20 AM, Alastair Sherringham < alastair@sherringham.net> wrote:
Hello,
I have recently installed MediaWiki 1.22.3 and hope to use it to host some documentation. I like the Vector skin and have been using Common.css to add some local styling. All looks great so far and I am very impressed with Mediawiki.
But I would really like to be able to add a "banner" (or menu etc.) to the top of the site, before any standard elements (or possibly sit behind them). I would also like to have a basic idea on changing a few skin elements perhaps. I have little PHP experience (but some other programming languages) so my difficulties are probably stupid and/or basic.
Following Daniel Friesen's "subskin" tutorial (thanks Daniel!) :
http://blog.redwerks.org/2012/02/28/mediawiki-subskin-tutorial/
My site is now using my own skin "Zed Docs". Or so it seems to be - it is identical to Vector at the moment.
However, I can't seem to figure out how to insert any changes in my skin and have them picked up.
I have taken the very basic PHP skin file I created following the tutorial :
ZedDocs.skin.php :
require_once( dirname( __FILE__ ) . '/../Vector.php' );
class SkinZedDocs extends SkinVector {
var $skinname = 'zeddocs', $stylename = 'zeddocs'; function setupSkinUserCss( OutputPage $out ){ parent::setupSkinUserCss( $out ); $out->addModuleStyles( "skins.zeddocs" ); }
}
and copied much of the rest of the Vector.pnp code below it, changing :
class VectorTemplate extends BaseTemplate { ...
to :
class ZedDocsTemplate extends VectorTemplate { ...
(is this correct?)
I don't think this step is correct. To accomplish a similar end result to what you're looking for, I did basically the same as you in that I created a subskin based on the Vector skin. I did two things differently to get a header on my new subskin.
1. Following the php code in myskin.skin.php I simply pasted the HTML for my header. 2. I added the CSS to style the header html to screen.css and added a call to screen.css right after the addModuleStyles statement in the PHP above with:
$out->addStyle( 'myskin/css/screen.css', 'screen');
I suspect there's a better way to do this, but for now, it's working for me.
I also had to tweak the CSS to make my header fit correctly on the screen within the framework of the inherited Vector skin styling. I accomplished this using Firebug to play with the layout and then editing the CSS by hand afterward.
Then inside this, the whole of the "execute" function :
public function execute() { ...
But nothing I add or modify inside the "execute" function makes any difference to the page I see e.g. adding anything after :
<div id="mw-page-base" class="noprint"></div>
or anywhere else.
I almost certainly have a fundamental misunderstanding somewhere. No doubt coupled with my lack of PHP experience (I know I should really learn more about it).
What am I doing wrong and what do I need to do?
Many thanks for any help or advice.
Cheers,
-- Alastair Sherringham http://www.sherringham.net
MediaWiki-l mailing list MediaWiki-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-l