Manual:Skinning/Vector/zh

From mediawiki.org

Mediawiki1.17及以后版本,如何基于vector皮肤创建一个名叫MoeGirl的皮肤(当然除了MoeGirl以外的任何名字都可以)

复制 vector 的文件[edit]

  • 把目录 ./skins/vector ,改名成 ./skins/moegirl
  • 复制 ./skins/Vector.php ,改名成 ./skins/MoeGirl.php
  • 复制 ./skins/Vector.deps.php ,改名成 ./skins/MoeGirl.deps.php
  • 在文件 ./skins/MoeGirl.php里, 替换如下代码:
    把每一个 SkinVector 替换成 SkinMoeGirl
    把每一个 VectorTemplate 替换成 MoeGirlTemplate
    $skinname = 'vector', $stylename = 'vector' 替换成 $skinname = 'moegirl', $stylename = 'moegirl'
    'skins.vector' 替换成 'skins.moegirl'
    其他的“vector”就不要动了,除非你需要添加与vector相关的系统信息
  • 编辑: ./resources/Resources.php
    添加下面这一行(建议写在/* Skins */的正下方):
   'skins.moegirl' => array(
        'styles' => array( 'moegirl/screen.css' => array( 'media' => 'screen' ) ),
        'remoteBasePath' => $GLOBALS['wgStylePath'],
        'localBasePath' => $GLOBALS['wgStyledirectory'],
   ),

译者注明[edit]

改resourceloader.php的缺点是:升级后需要重新修改,如果不想修改,可以把

/**
* Load skin and user CSS files in the correct order
* fixes bug 22916
* @param $out OutputPage object
*/
function setupSkinUserCss( OutputPage $out ){
parent::setupSkinUserCss( $out );
$out->addModuleStyles( 'skins.moegirl' );
}

这段代码直接用

<link rel="stylesheet" href="你的CSS的路径/style.css" type="text/css" media="screen" />

替换,当然这样也有缺点,文件不通过resourceloader加载,不能自动压缩代码,没法统一设置过期刷新时间,会增加一个http请求。

颜色[edit]

vector的配色方案主要是通过 ./skins/moegirl/images 里的图实现的, 这些图片由 ./skins/moegirl/screen.css 加载。

border.png
内容区边界的颜色(就是正文区和左边从LOGO开始的那个L型区域的交界线)
page-base.png
内容区的颜色
page-fade.png
页面顶部的白渐变灰色

改变未登录时的样式[edit]

To change the site's layout/view when not logged in:

<?php if ( $this->data['loggedin'] ) { ?>
/* code to be used only when logged in */
<?php } ?>