我在一个代码库上设置了一堆不同语言的 mediawiki。到目前为止,大部分都在工作,但我想使用一个看起来与其他页面不同的主页。为此,我最初只是添加了一些仅适用于 main_page 类的 CSS 规则:
body .page-Main_Page { <rules> }
问题是在其他语言中,主页的调用方式不同(并且类会相应更改),因此我要么必须为所有可能的主页标题添加 css 规则(不会发生),要么在皮肤内部进行检查以添加如果当前页面是主页面,则归类到正文。
不幸的是,没有办法检查。我搜索的大多数解决方案都基于“主页”或设置您自己的标题。我希望皮肤自动检测标题。
到目前为止,我想到的唯一解决方案是将 mediawiki 的变量作为主页 url 并将其与当前页面标题进行比较:
$mainurl = $this->data['nav_urls']['mainpage']['href'];
$ismain = $this->data['thispage'] == substr($mainurl,'6');
(['href'] 以 /wiki/ 开头,因此偏移量为 6)
然后
<body class="<?php echo ($ismain ? 'mainpage' : ''); ?>">
(当然还有更多的课程,但你明白了)
但这给了我另一个问题。在西班牙语中,该页面称为 Página Principal。数据['thispage'] 没有问题,但 ['href'] 保存为 /wiki/P%C3%A1gina_Principal
所以......谁能告诉我如何 1. 以当前使用的语言查找“主页”的翻译或 2. 将 P%C3%A1gina_Principal 转换为 Página Principal(以及其他语言的类似语言)或 3 . 告诉我另一种方法来检查我是否在主页上?