On 2014-05-20, 2:25 PM, Bartosz Dziewoński wrote:
- $IP/skins/SkinName/ for both assets and PHP files
($IP/skins/skinname/SkinName.php etc.), using require_once in LocalSettings like extensions to load the skin, manually adding an entry to $wgValidSkinNames in the main PHP file. This seems to be the preferred method among "modern" skins, for example Erudite [3] or Nimbus [4].
We've been discussing $IP/skins/skinname/skinname.php vs. $IP/skins/SkinName/SkinName.php for awhile, but it occurs to me now – after reading this patchset[1] – that it's possible some people in the discussion may actually not know or have a misunderstanding of what this file is.
$IP/skins/vector/vector.php or $IP/skins/Vector/Vector.php (whichever we go with) is NOT what is currently at $IP/skins/Vector.php.
$IP/skins/Vector.php (and the like) contain classes like SkinVector and VectorTemplate.
The proposed $IP/skins/vector/vector.php and $IP/skins/Vector/Vector.php are meta(?) files – like an extension's $IP/extensions/{name}/{name}.php file – which are responsible for setting things like the skin's credits, autoloading, i18n, resourceloader modules, and registering the skin inside $wgValidSkinNames.
For example my tutorial[1] describes 3 files in the skin structure:
* skins/myskin/myskin.php – The new skin file containing definitions for credits, $wgValidSkinNames, $wgAutoloadClasses, $ wgExtensionMessagesFiles, and $wgResourceModules. * skins/myskin/MySkin.skin.php – The file containing SkinMySkin and MySkinTemplate classes. The naming came from the FooBar.hooks.php pattern some extensions use but can be anything you want. * skins/myskin/MySkin.i18n.php – The old i18n for the skin (from the pre-json era of i18n). Likewise the name can be anything you want.
[1] https://gerrit.wikimedia.org/r/#/c/135384/ [2] https://www.mediawiki.org/wiki/Manual:Skinning/Tutorial#Creating_the_skin
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://danielfriesen.name/]