If you find one instead of copying all of execute you can use a hack where you extend execute(), modify $this->data (which is used by ->html and ->text), then just let the parent skin's normal execute() method run with the modified ->data instead of duplicating it.
function execute() { // Modify $this->data['somekey'] parent::execute(); }
Then you keep all the advantages.
Thanks Daniel. That's all quite interesting, although starting to stretch my PHP and Mediawiki understanding a little (I'm learning a lot ...). I may try and have a play and see what happens. My concern is for maintainability and upgrades working, so doing less is attractive.
Right now, I have a very simple file though - your basic "MySkin.skin.php" file with this at the bottom :
<div id="zeddocs-banner"></div>
This seems to work (I'm overriding some CSS positioning in zeddocs/css/screen.css) and I'm tempted to leave it like that for now. Anyway - it's good to have this sort of knowledge around and I'm definitely less "scared" of touching this stuff now.
Thanks again for your help. If it wasn't for your guide, I'd be lost.
Cheers,