Manuel:$wgTitle
Cette fonctionnalité obsolète ne doit plus être utilisée, mais est encore disponible pour des raisons de compatibilité avec l'existant. Cette fonctionnalité est obsolète depuis la version 1.19.0. |
Objet global : $wgTitle | |
---|---|
Objet titre créé à partir de l’URL de la requête. | |
Obsolète depuis : | 1.19.0 |
Classe : | Title |
Situé dans : | Title.php |
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 se réfère toujours au même objet. Au lieu de cela, $wgTitle peut se référer à n’importe quel titre à un point donné, puisque vous ne pouvez pas prévoir ce qu’une extension pourrait avoir fait avec elle. 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 sous-classe quelque chose qui implémente IContextSource
) pour obtenir l’objet Title.
Quel objet contextuel est 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. le skin Vector fait ça), vous pouvez obtenir le titre avec$this->getSkin()->getTitle();
. - Comme autre exemple, si vous écrivez un [[[Special:MyLanguage/Manual:Tag extensions|Tag extension]]], le troisième argument de votre fonction de callback est l’analyseur. Ce n’est pas un ContextSource, mais il a une méthode
getTitle()
, d’où la manière appropriée d’obtenir le titre courant d’un tel callback 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 habillé un peu, et a tous les mêmes inconvénients. Si vous êtes désespéré, vous pouvez l’utiliser, mais vous ne devriez le faire que si vous le devez absolument.