Hilfe:DPL
|
In internen Diskussionen im Wikinewsprojekt taucht immer wieder die Abkürzung „DPL“ auf. Diese Hilfeseite soll einige Hinweise zur Verwendung der dahinter stehenden Technik geben und so dazu beitragen, dass die Benutzer von Wikinews bestimmte Zusammenhänge besser nachvollziehen können und die DPL-Technik für eigene Zwecke auch benutzen können.
Dabei geht es vor allem um die Nutzung von DPL bei Wikinews (deutschsprachige Ausgabe). Die Hilfe-Seite hat einführenden Charakter. Vertiefende Informationen zur Programmierung sind bei Media-Wiki zu finden: DynamicPageList.
Was ist DPL?
[Bearbeiten]- DPL bedeutet „Dynamic Page Listing“, also auf Deutsch etwa „Dynamische Auflistung von Seiten“.
- Was ist daran dynamisch? Im Unterschied zum Newsticker der Hauptseite, wo alle Artikel von Hand eingefügt und mit einem zusammenfassenden Text (Teaser) versehen und gespeichert werden müssen, funktioniert eine Seite mit DPL anders. Die Liste, die der Benutzer beim Aufrufen der Seite zu Gesicht bekommt, wird erst im Moment des Aufrufs erstellt, daher ist sie im Normalfall auch aktuell. Wenn man die Seite über die Bearbeiten-Funktion öffnet, sieht man keine Listen, sondern nur den kurzen Programmiercode der „DP-Liste“.
- Die gestellte Frage lässt sich auch so beantworten: DPL ist eine kleine Suchmaschine, die die Kategorien von Wikinews nach Artikeln durchsucht und ausgibt.
- Programmiertechnisch gesprochen: DPL ist eine Software-Erweiterung von MediaWiki.
Wozu wird DPL bei Wikinews benutzt?
[Bearbeiten]Die Softwareerweiterung DPL wird hauptsächlich zur Darstellung von Artikellisten in Portalen benutzt. Weiterhin wird DPL in der Artikelschmiede benutzt, um dort die Artikel aufzulisten, die sich gerade in der Entstehung befinden oder bearbeitet werden und so weiter.
Wie funktioniert DPL?
[Bearbeiten]DPL ist eine Programmierschleife mit folgendem Grundaufbau:
<DynamicPageList> ...Parameter... </DynamicPageList>
Als Parameter können verschiedene Ausdrücke eingebracht werden. Wichtig für uns ist, dass wir damit verschiedene Kategorien abfragen können.
Beispiel: eine Kategorie
[Bearbeiten]- Codebeispiel eine Kategorie
<DynamicPageList> category=Artikelstatus: Im Entstehen count=5 </DynamicPageList>
Mit count=5 wird die Anzahl der ausgegebenen Artikel auf fünf beschränkt. Als Kategorie wurden Artikel ausgewählt, die in der Entstehung sind.
- Ergebnis
Um mal bei dem Beispiel hier zu bleiben: Wie kommen die Artikel zu der Kategorie:Artikelstatus: Im Entstehen? Diese Kategorie wurde den Artikeln in dem Moment zugewiesen, in dem die entsprechende Vorlage eingesetzt wurde, in diesem Fall die Vorlage:Im Entstehen.
Beispiel: zwei Kategorien
[Bearbeiten]Im Portal:Iranisches Atomprogramm werden zwei Kategorien benutzt, um eine Artikelliste zu erstellen, die sowohl die Kategorie:Kernenergie als auch die Kategorie:Politik im Iran enthalten.
- Codebeispiel
<DynamicPageList> category=Kernenergie category=Politik im Iran count=3 </DynamicPageList>
- Ergebnis
- Brüssel: EU-Außenminister einigen sich auf harte Sanktionen gegen den Iran
- Haftbombe tötet iranischen Atomwissenschaftler
- Vereinte Nationen: Sanktionen gegen Iran verschärft
Zusätzliche Parameter
[Bearbeiten]Um die Ausgabe zu begrenzen, habe ich die Möglichkeit, weitere Parameter einzufügen.
- Parameter „namespace“
namespace=0
begrenzt die Ausgabe auf den Artikelnamensraum. 0 steht für den Artikelnamensraum, 1 für den Namensraum „Diskussion“ und so weiter. Eine Auflistung aller Namensräume findest du hier: Hilfe:Namensräume.
Es ist auch möglich den Namensraum durch die korrekte Namensraumbezeichnung anzugeben. Also statt „namespace=0“ kann man auch schreiben: „namespace=(Haupt-)“
- Parameter „notcategory“
Dieser Parameter stellt praktisch eine Umkehrung des Kategorieparameters dar. Dadurch lassen sich Artikel herausfiltern, die über eine bestimmte Kategorie verfügen. Will ich beispielsweise verhindern, dass Artikel ausgegeben werden, die sich in der Löschdiskussion befinden, so setze ich folgende Zeile in die DPL-Schleife:
notcategory=Löschkandidat
Einen Sinn hat das natürlich erst, wenn ich auch andere Kategorien abfrage. Ein Beispiel aus dem Portal:Luftfahrt:
- Codebeispiel
<DynamicPageList> category=Luftfahrt allg. notcategory=Löschkandidat namespace=0 count=5 </DynamicPageList>
- Ergebnis
- Mitflug verweigert aufgrund von „verdächtigem“ Verhalten
- Lufthansa, British Airways setzen Flüge nach Kairo aus
- Easyjet erwartet Gewinnsprung
- Nach Triebwerkschaden: Airbus A380 muss umkehren
- Liste der 10 schlimmsten Flughäfen der Welt veröffentlicht
- Parameter suppresserrors
DPL liefert eine eigene Fehlermeldung, wenn keine Artikel gefunden wurden: „DynamicPageList: No results!“ Um diese Fehlermeldung zu unterdrücken, wird der Parameter suppresserrors eingefügt. Das kann sinnvoll sein, wenn in Portalen bestimmte Kategorien leer sind und keine Fehlermeldung sichtbar werden soll.
suppresserrors=true
Kategorie:Unveröffentlicht
[Bearbeiten]Mit dieser Kategorie hat es eine besondere Bewandtnis. Sie erschließt sich aus der Frage:
- Wie kann ich in Portalen sicherstellen, dass keine unfertigen Artikel dort auftauchen?
Solange ein Artikel nicht fertig ist, führt er die Kategorie:Unveröffentlicht mit sich. Diese Kategorie gelangt über eine Vorlage hinein: die Vorlage:Im Entstehen, diese setzt dann ebenfalls die Kategorie:Unveröffentlicht in den Artikel. In Portalen kann ich folglich diese Kategorie benutzen, um Artikel auszufiltern, denen die Kategorie:Unveröffentlicht zugeordnet ist. Das sieht dann so aus:
- Codebeispiel aus dem Portal:Luftfahrt (allgemeiner Teil)
<DynamicPageList> category=Luftfahrt allg. notcategory=Löschkandidat notcategory=Unveröffentlicht addfirstcategorydate=true namespace=0 count=5 </DynamicPageList>
- Ergebnis
- 20. Juli 2024: Mitflug verweigert aufgrund von „verdächtigem“ Verhalten
- 20. Juli 2019: Lufthansa, British Airways setzen Flüge nach Kairo aus
- 10. Oktober 2014: Easyjet erwartet Gewinnsprung
- 12. November 2012: Nach Triebwerkschaden: Airbus A380 muss umkehren
- 15. Oktober 2012: Liste der 10 schlimmsten Flughäfen der Welt veröffentlicht
Ausgabe mit Datum
[Bearbeiten]Im letzten Beispiel tauchte bereits der Parameter „addfirstcategorydate“ auf. Was bewirkt dieser (optionale) Parameter?
Dieser Parameter setzt das Datum vor den Namen des Artikels. Dabei wird dasjenige Datum zugrunde gelegt, an dem die erste in der DPL-Schleife genannte Kategorie in den Artikel eingefügt wurde. Wenn dazu die Kategorie:Veröffentlicht benutzt wird, bewirkt der Parameter, dass die Artikel mit dem Datum ihrer Veröffentlichung in der Liste auftauchen. Als wir diese Kategorie noch nicht benutzt haben, änderte sich jedes Mal, wenn eine neue Kategorie in einen Artikel hineinkam, das Datum in den DP-Listen in den Portalen, was sehr unschön war. Deshalb ist es so wichtig, dass die Kategorie:Veröffentlicht bei der Veröffentlichung auf der Hauptseite in den Artikel eingesetzt wird (und auch bei Einsprüchen dort bleibt). Weitere Informationen zur Veröffentlichung gibt es auf der Hilfeseite:Veröffentlichung. Wenn ich verhindern will, dass das Datum erscheint, lasse ich den Parameter einfach weg. Die Grundeinstellung ist addfirstcategorydate=false.
- Code-Beispiel aus dem Portal:Recht
<DynamicPageList> category=Veröffentlicht category=Themenportal Recht notcategory=Löschkandidat notcategory=Unveröffentlicht addfirstcategorydate=false namespace=0 count=5 </DynamicPageList>
Dieser Code gibt eine Liste von fünf Artikeln aus, die veröffentlicht sind (Kategorie:Veröffentlicht) und die Kategorie:Themenportal Recht enthalten. Herausgefiltert werden dabei Artikel, die die Kategorie:Löschkandidat und die Kategorie:Unveröffentlicht enthalten. Am Schluss wird noch festgelegt, dass nur Artikel aus dem (Haupt-)Namensraum 0 (Artikelsnamensraum) ausgewählt werden.
- Ergebnis (ohne Datum)
- Erneute Ausschreitungen nach Messerangriff in Southport
- Gefangenenaustausch zwischen Russland, Belarus und westlichen Staaten
- Struktur des Bundesverfassungsgerichts soll im Grundgesetz verankert werden
- Erneuter Vorstoß: US-Präsident Obama will Guantanamo-Gefängnis schließen
- Mehr als 1.000 Messer in Laguiole mutmaßlich gestohlen