2016-04-30 17 views
2

Ich woking auf einem MediaWiki-Skin für meine Website. Für den Seiteninhalt verwende ich <?= $this->html('bodycontent'); ?>, um alles auszugeben. Ein Teil davon, auf längeren Seiten, ist das Inhaltsverzeichnis (TOC).So ändern Sie den Speicherort des Inhaltsverzeichnisses in einem MediaWiki-Skin

Ich möchte den Standort des TOC aus dem Körper heraus in die Seitenleiste verschieben, aber ich bin mir nicht sicher, wie verhindert werden kann, dass das Inhaltsverzeichnis in der bodycontent angezeigt wird oder wo Sie die Rohdaten in der anzeigen Seitenleiste.

Ich hoffe, es gibt eine Datenzeit ähnlich wie $this->data['sidebar']['navigation'], die ich verwenden kann, um es zu formatieren, wie ich will. Wie kann ich das Inhaltsverzeichnis im bodycontent ausschalten?

Gibt es einen $this->data Speicherort, der die TOC-Daten enthält?

Antwort

2

Das System MediaWiki Häutung ist wirklich nicht ausgelegt, aber jemand erstellt eine Erweiterung Ihrer Arbeit zu erleichtern: https://www.mediawiki.org/wiki/Extension:DeToc

diese Erweiterung verwenden Sie so etwas tun würde (innen function execute()):

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

/* Print body */ 
echo $new_body; 

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

Alternativ können Sie auch das Inhaltsverzeichnis mit $parser->mShowToc = false; deaktivieren und dann das Inhaltsverzeichnis selbst erstellen. MediaWiki verwendet intern eine Regex wie diese, um alle Abschnitte zu finden: '/^\={2,5}(.*?)\={2,5}$/m'