Я настраиваю кучу медиавики на разных языках на одной кодовой базе. Пока большая часть работает, но я хочу использовать главную страницу, которая выглядит иначе, чем остальные страницы. Для этого я изначально просто добавил несколько правил css, которые применялись только к классу main_page:
body .page-Main_Page { <rules> }
Проблема в том, что в других языках главная страница называется по-другому (и соответственно меняется класс), поэтому мне либо нужно добавить правила css для всех возможных заголовков главной страницы (этого не произойдет), либо сделать проверку внутри скина, которая добавляет класс в тело, если текущая страница является главной страницей.
К сожалению, нет возможности это проверить. Большинство решений, которые я искал в Google, основаны либо на «Главной странице», либо на установке собственного заголовка. Я хочу, чтобы скин автоматически определял название.
Единственное решение, о котором я подумал до сих пор, это взять переменную 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. У data['thispage'] нет проблем с этим, но ['href'] сохраняется как /wiki/P%C3%A1gina_Principal
Итак ... может ли кто-нибудь сказать мне, как 1. найти перевод «Главной страницы» на языке, который используется в настоящее время ИЛИ 2. преобразовать P% C3% A1gina_Principal в Página Principal (и т.п. для других языков) ИЛИ 3 .покажите мне другой способ проверить, нахожусь ли я на главной странице?