On 02/28/12 00:00, Daniel Friesen wrote:
One possibility why it stopped working on upgrade might be that the outdated css loading calls may not be loading the stylesheet. The near-guaranteed reason why copying Vector.php and editing it isn't working is because like everyone else you are changing `$out->addModuleStyle( 'skins.vector' );` to `$out->addModuleStyles( 'skins.resources' );` which naturally won't work because RL modules are not defined in skin files and hence the skins.resources module does not exist.
Exactly. I did wonder about this, but couldn't see what else to do. I don't know what an 'RL module' is.
In any case, trying to create a new skin by copying the core skins is a really bad idea. Core skins use the old autoloader and hence their resources are mixed in with the rest of core instead of properly isolated as a skin. They also may have bad practices in them to retain old behaviors that are expected of them, stuff which new skins have no reason to do. And most of all, by copying them your copy gets out of sync and when you upgrade you have to deal with the fact that the code you copied is out of date. You also duplicate what you don't need to duplicate.
If you want to create a skin that just makes css tweaks to a core skin, I suggest something like this: https://gist.github.com/1927993
I want to:
- hide most of the normal user options (I switch skin on login, non-logeddin users see an apparently static web site with no editing options or discussion pages)
- Add new logo & colour scheme to top of page
- Add some extra external links
You would put a yourskinname.php and YourSkinName.skin.php file inside `skins/yourskinname/` as in that "Scalar" skin example above. And then add a yourskinname/screen.css which would contain the css tweaks you want to vector. And then require_once that from your LocalSettings.php
This way you inherit everything from vector and don't have to copy anything.
Perfect. I'd far rather override only where necessary, just didn't know where to start. Thank you, I'll try this.
Graham