gpt4 book ai didi

php - MediaWiki 自定义皮肤 : check if current page is main page

转载 作者:行者123 更新时间:2023-12-04 22:35:01 25 4
gpt4 key购买 nike

我正在一个代码库上设置一堆不同语言的 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' : ''); ?>">    

(当然还有更多的类(class),但你明白了)

但这给了我另一个问题。在西类牙语中,该页面称为 Página Principal。 data['thispage'] 没有问题,但是 ['href'] 保存为/wiki/P%C3%A1gina_Principal

所以...谁能告诉我怎么做1. 以当前使用的语言查找“主页”的翻译或2. 将 P%C3%A1gina_Principal 转换为 Página Principal(其他语言类似)或3. 告诉我另一种方法来检查我是否在主页上?

最佳答案

其实还有更简单的方法:

if ($this->getSkin()->getTitle()->isMainPage())

返回一个 bool 值

关于php - MediaWiki 自定义皮肤 : check if current page is main page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com