2016-04-30 14 views
2

私は自分のサイトのMediaWikiスキンでウォーキングしています。私は<?= $this->html('bodycontent'); ?>を使ってそれをすべて出力しています。これの一部は、長いページで目次(TOC)です。MediaWikiスキンでTOCの位置を変更する方法

ボディのTOCの位置をサイドバーに移動したいのですが、TOCがbodycontentに表示されないようにする方法や、生データをどこに表示するのかわからないサイドバー。

$this->data['sidebar']['navigation']と同様のデータ時間がありたいと思っています。私はそれをどのようにフォーマットすることができますか?

bodycontentで目次をオフにするにはどうすればよいですか?

TOCデータがある場所は$this->dataですか?

答えて

2

MediaWikiのスキニングシステムは本当にこのために設計された、誰かがあなたの仕事を容易にするために拡張機能を作成されていません:あなたは(function execute()内側)このような何かをするだろうという拡張子を使用してhttps://www.mediawiki.org/wiki/Extension:DeToc

$body = $this->data['bodycontent']; 
$new_body = DeToc::RemoveToc($body, $extracted_toc); 

/* Print body */ 
echo $new_body; 

/* Print TOC somewhere else */ 
echo $extracted_toc; 

また、$parser->mShowToc = false;を使用してTOCをオフにして、目次を自分で作成することもできます。 MediaWikiはこのような正規表現を内部的に使用してすべてのセクションを見つけます:'/^\={2,5}(.*?)\={2,5}$/m'

関連する問題