2016-04-30 2 views
2

Je me mets à chercher un habillage MediaWiki pour mon site. Pour le contenu de la page, j'utilise <?= $this->html('bodycontent'); ?> pour tout sortir. Une partie de cela, sur des pages plus longues, est la table des matières. Je souhaite déplacer l'emplacement de la table des matières hors du corps et dans la barre latérale, mais je ne sais pas comment empêcher l'affichage de la table des matières dans le bodycontent ou où obtenir les données brutes pour l'afficher dans la barre latérale. barre latéraleComment modifier l'emplacement de la table des matières dans un habillage MediaWiki

J'espère qu'il y aura un temps de données similaire à $this->data['sidebar']['navigation'] que je peux utiliser pour le formater comme je le souhaite.

Comment puis-je désactiver la table des matières dans le bodycontent?

Y a-t-il un emplacement $this->data qui a les données TOC?

Répondre

2

Le système MediaWiki écorcher est pas vraiment conçu pour cela, mais quelqu'un a créé une extension pour rendre votre travail plus facile: https://www.mediawiki.org/wiki/Extension:DeToc

En utilisant cette extension que vous feriez quelque chose comme ça (à l'intérieur 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; 

Vous pouvez également désactiver la table des matières en utilisant $parser->mShowToc = false;, puis créer vous-même la table des matières. MediaWiki utilise en interne une regex comme celle-ci pour trouver toutes les sections: '/^\={2,5}(.*?)\={2,5}$/m'