Manuel:$wgTitle

From mediawiki.org
This page is a translated version of the page Manual:$wgTitle and the translation is 100% complete.

Détails

L’objet Titre représente le titre d’un article, et fait tout le travail de traduction entre différentes formes telles que le texte brut, l’URL, la clé de base de données, etc. Pour des raisons de commodité, et pour des raisons historiques, il représente également quelques caractéristiques des articles qui n’impliquent pas leur texte, tels que les droits d’accès.

L’objet Title est initialisé par l’objet MediaWiki, $mediaWiki.

La plupart des endroits dans le code MediaWiki ont déjà un titre sous la main (ou un sain d’esprit peut être facilement créé). En règle générale, n’utilisez pas $wgTitle si ce n’est pas absolument nécessaire. Le problème avec $wgTitle est que ce n’est pas un global statique comme $wgRequest qui référence toujours le même objet. Au lieu de cela, $wgTitle peut référencer n’importe quel titre à un point donné, puisque vous ne pouvez pas prévoir ce qu’une extension pourrait en avoir fait. Un bon exemple est dans SpecialPages, où vous pouvez facilement appeler la méthode getTitle(), qui renvoie une version localisée du titre de la page spéciale, plutôt que d’espérer que $wgTitle se réfère à la page spéciale en question. En bref: Ne l’utilisez pas. Jamais.

Remplacement

En général, on utiliserait un objet Context (quelque chose qui implémente, ou qui sous-classe quelque chose qui implémente IContextSource) pour obtenir l’objet Title.

L'objet contexte disponible varie selon l’endroit où votre code est exécuté :

  • Par exemple, la classe Skin étend ContextSource, donc si votre code est une méthode d’une sous-classe de la classe Skin, vous utiliseriez $this->getTitle() dans votre méthode pour obtenir le titre courant.
  • Si vous êtes dans une classe Skin, qui étend la classe BaseTemplate (par ex. l'habillage Vector fait ça), vous pouvez obtenir le titre avec $this->getSkin()->getTitle();.
  • Comme autre exemple, si vous écrivez une extension de balise, le troisième argument de votre fonction de rappel représente l'analyseur. Ce n'est pas une ContextSource, mais il possède une méthode getTitle(), depuis que que la manière pratique pour obtenir the titre actuel à partir de la fonction de rappel est $parser->getTitle().

Aucun remplacement

Autres choses que vous pourriez être tenté de faire, mais que vous devriez éviter :

  • Title::newFromText( $wgRequest->getVal( 'title' ) ) - Il est tout à fait possible que vous fassiez quelque chose dans cette demande liée à un titre différent de celui réellement demandé (aka JobQueue, etc.). Vous devriez utiliser $wgTitle plutôt que de faire cela.
  • RequestContext::getMain()->getTitle() - C’est essentiellement $wgTitle, juste maquillé un peu, et a tous les mêmes des inconvénients. Si vous êtes désespéré, vous pouvez l’utiliser, mais vous ne devriez le faire que si vous le devez absolument.

Voir aussi