Handbuch:$wgArticle

This page is a translated version of the page Manual:$wgArticle and the translation is 100% complete.

Details

Das Article-Objekt fasst den Zugang zur "page" Tabelle der Datenbank zusammen. Das Objekt stellt einen Artikel dar und hält den Zustand, wie den text (im Wikitext Format), Flags, etc., des Artikels vor.

[CategoryPage CategoryPage] und [ImagePage ImagePage] sind Kind-Objekte vom Article Objekt und werden speziell für Kategorie- und Bilderseiten verwendet.

Ersatz

Nutze das Context Objekt, um zu bekommen, was du benötigst. Seit 1.19 enthält das Context-Objekt die Funktion getWikiPage(), um auf das aktuelle WikiPage-Objekt zuzugreifen. Woher du das Context-Objekt beziehen kannst, hängt davon ab, wo dein Code ausgeführt wird. Viele der wichtigsten Klassen erweitern ContextSource, was bedeutet, dass du einfach $someObject->getContext() nutzen kannst, um das Context-Objekt zu erhalten und $someObject->getWikiPage() für das WikiPage-Objekt. Zum Zeitpunkt, als dieses Handbuch verfasst wurde, gilt dies u.A. für die Klassen ApiBase, CategoryViewer, ChangesList, DerivativeContext, DifferenceEngine, HTMLForm, ImportReporter, IndexPager, OutputPage, RevisionListBase, Skin. Einige andere Klassen, welche nicht ContextSource als Eltern-Klasse haben, wie bspw. SpecialPage, bieten eine Funktion getContext() an, um das Context-Objekt zu erhalten (daher kannst du beim Erstellen einer SpecialPage $this->getContext() verwenden, um das Context-Objekt zu erhalten).

Wenn du eine Methode aus der Klasse Article benötigst, die nicht in WikiPage enthalten ist und du Zugriff auf das Context-Objekt hast, kannst du Article::newFromTitle( $context->getTitle(), $context ); verwenden, doch beachte folgendes:

  • Die angezeigte Revisions-ID ist über OutputPage->getRevisionId() oder Skin->getRevisionId() erreichbar und um zu prüfen, ob dies die aktuelle Revision der Seite ist, kannst du Skin->isRevisionCurrent() verwenden (anstelle von Article->isCurrent())
  • Der Text der letzten Revision der aktuellen Seite (nicht unbedingt die derzeit angezeigte Revision) ist über WikiPage->getRawText() erreichbar; abhängig für was du Article->getContent() verwendest, bevorzugst du möglicherweise diese.

Beispielcode

Verwende $article->getPage()->getContent()->getNativeData(), um dies zu ersetzen.

Einzelnachweise