2016-02-01 1 views
0

Мне было интересно, есть ли способ показать некоторые части моего нижнего колонтитула, только в определенных категориях.MediaWiki Wiki Пользовательский нижний колонтитул в зависимости от категории

E.g. (mailto) только если в Category:FAQ

Я использую пользовательский скин.

ответ

1

С помощью this snippet класс CSS добавляется в ваш тег тела для каждой категории, к которой принадлежит текущая страница. Затем вы можете отображать или скрывать определенные элементы с помощью соответствующего класса.

+0

Как использовать фрагмент? У меня нет файлов .js в моем customSkin. Мой основной файл - customSkin.php. – Spacemoose

+0

Согласно https://www.mediawiki.org/wiki/Manual:Interface/JavaScript файл Common.js загружается во все скины. Поэтому я попытался бы добавить туда фрагмент. –

0

Если вы используете свой собственный пользовательский скин, вы можете просто проверить, к каким категориям принадлежит ваш текущий википаж, позвонив по номеру OutputPage::getCategories(). Это, вероятно, повлияет на кеширование.

if (in_array('FAQ', $out->getCategories()) { 
    // do something 
} 

редактировать: @Florian пункты ниже, которые вы должны использовать методы OutputPage для вывода материала, а не повторяя их, так что я удалил, что несчастный пример. И как @Florian также указывает, если вы хотите, чтобы этот эффект сохранялся также для пользователей, которые могли выбрать другой скин, чем ваш собственный, вам нужно будет использовать a hook, например. SkinTemplateOutputPageBeforeExec.

+0

Вы можете сделать это с помощью крючков, которые также вызывают в нижней части нижнего колонтитула и обеспечивают доступ к объекту OutputPage. Также я бы рекомендовал использовать OutputPage для добавления контента к выходу, а не с помощью эха или печати. – Florian

+0

Спасибо за этот ответ @leo & florian. Как именно я использовал бы крючок? И куда он идет? В мой customSkin.php? С наилучшими пожеланиями. – Spacemoose

+0

Вы должны создать расширение (или, если код действительно маленький, вы даже можете вызвать hook в LocalSettings.php). Взгляните на https://www.mediawiki.org/wiki/Manual:Developing_extensions – leo

Смежные вопросы