Modul:GetString/Doku

Aus Wikivoyage

Funktion[Bearbeiten]

Das Modul bietet einige Funktionen, um Wikidata-Eigenschaften anzuzeigen, die als Zeichenkette gespeichert sind. Das sind die Datentypen string (einfache Zeichenkette), monolingualtext (Zeichenkette mit Angabe der Sprache) und external-id (Objekt-IDs auf externen Webseite, z. B. bei Sozialen Medien). Dabei können sowohl ein Wert (der erste, den die Datenbank liefert) als auch alle Werte geliefert werden. Die Werte werden dabei in der Reihenfolge alphanumerisch sortiert. Gibt es viele Werte kann man das Modul anweisen, einen Bereich auszugeben. Das sind dann der kleinste Wert, gefolgt von drei Punkten und dem größten Wert (siehe z. B.  die Postleitzahl in der Infobox von Chiang Mai). Social-Media-IDs können auch als Symbol mit Link ausgegeben werden.

Im Submodul GetString/Properties können einzelne Eigenschaften parametriert werden. Dem Modul nicht bekannte Eigenschaften werden trotzdem ausgegeben. Derzeit sind folgende Eigenschaften implementiert:

getStrings[Bearbeiten]
  • getStrings ( id, property, values, show, delimiter, max )
    • Aufruf in einer Vorlage: {{#invoke:GetString|getStrings|id|property|values|show|delimiter|max}}
    • Aufruf in einem Modul: gs.GetString().getStrings(id,property,values,show,delimiter,max)
    • Funktion: Liefert den/die numerischen Werte als Tabelle mit ihren Einheiten

Bei der Verwendung in anderen Modulen muss am Skriptanfang noch ein gs = require( 'Module:GetString' ) eingefügt werden.

Die Funktion arbeitet mit den folgenden anonymen Parametern

  • |id= Wikidata-ID des Objektes, kann leer bleiben, wenn der eigene Artikel abgefragt werden soll.
  • |property= Angabe der Eigenschaft, die abgefragt werden soll.
  • |values= gibt an, ob der erste gelieferte Wert, oder, wenn vorhanden, alle erfassten Werte eusgegeben Werte, standardmäßig wird nur der erste gefundene Wert verwendet.
    • |values=single der erste Wert
    • |values=all alle Werte (Standard)
  • |show= gibt die gewünschte Formatierung an.
  • |show=text gibt nur die Zeichenkette aus (Standard).
  • |show=text_with_language gibt den Text und danach in Klammern den Sprachcode aus.
  • |show=symbol_with_link funktioniert nur bei externen Links. Dann wird anstatt der ID ein Symbol mit einem Link erzeugt.
  • |delimiter= gibt die gewünschte Trennung zwischen den Werten an. Standardmäßig ist das ein Komma gefolgt von einem ungeschützten Leerzeichen.
  • |max= gibt maximale Anzahl von Werten an, die separat ausgegeben werden. Liefert Wikidata mehr Werte werden nur der kleinste und der größte Wert mit einem Auslassungszeichen dazwischen ausgegeben.

Beispiele:

  • Sabah (Postleitzahl, ein Wert auf WD): {{#invoke:GetString|getStrings|Q179029|P281}} – 88000–91999
  • Sabah (Vorwahl, ein Wert auf WD): {{#invoke:GetString|getStrings|Q179029|P473}} – 087-089
  • Chiang Mai (Postleitzahl, mehrere Werte auf WD): {{#invoke:GetString|getStrings|Q233588|P281}} – 50000, 50110, 50120, 50130, 50140, 50150, 50160, 50170, 50180, 50190, 50210, 50220, 50230, 50240, 50250, 50260, 50270, 50280, 50310, 50320, 50350, 50360
  • Chiang Mai (Postleitzahl, mehrere Werte auf WD, nur einen ausgeben): {{#invoke:GetString|getStrings|Q233588|P281|single}} – 50000
  • Chiang Mai (Postleitzahl, mehrere Werte auf WD, anderes Trennzeichen): {{#invoke:GetString|getStrings|Q233588|P281||| - }} – 50000 - 50110 - 50120 - 50130 - 50140 - 50150 - 50160 - 50170 - 50180 - 50190 - 50210 - 50220 - 50230 - 50240 - 50250 - 50260 - 50270 - 50280 - 50310 - 50320 - 50350 - 50360
  • Chiang Mai (Postleitzahl, mehrere Werte auf WD, bei mehr als 3 einen Bereich ausgeben): {{#invoke:GetString|getStrings|Q233588|P281||||3}} – 50000…50360
  • Chiang Mai (Vorwahl, mehrere Werte auf WD): {{#invoke:GetString|getStrings|Q233588|P473}} – 52, 53
  • Wat Phra Singh (Name in Amts- oder Originalsprache): {{#invoke:GetString|getStrings|Q1657130|P1705}} – วัดพระสิงห์วรมหาวิหาร
  • Wat Phra Singh (Name in Amts- oder Originalsprache + Sprachangabe): {{#invoke:GetString|getStrings|Q1657130|P1705||text_with_language}} – วัดพระสิงห์วรมหาวิหาร (th)
  • Glas-Hotel (alle Adressen + Sprachangabe): {{#invoke:GetString|getStrings|Q95795329|P6375||text_with_language|<br />}}
    • Wincentego Witosa 50, 68-200 Żary, Polen (de-ch)
      Wincentego Witosa 50, 68-200 Żary, Polen (de)
      Wincentego Witosa 50, 68-200 Żary, Poland (en)
      Wincentego Witosa 50, 68-200 Żary, Polska (pl)
      Wincentego Witosa 50, 68-200 Żary, Polen (de-at)
getStringsQuickbar[Bearbeiten]
Sabah
Postleitzahl88000–91999
Vorwahl087-089
Chiang Mai
Postleitzahl50000…50360
Vorwahl52, 53
Wat Phra Singh
Name (lokal)วัดพระสิงห์วรมหาวิหาร
  • getStringsQuickbar ( id, property, values, wikiValue, label )
    • Aufruf in einer Vorlage: {{#invoke:GetString|getStringsQuickbar|id|property|values|wikiValue|label}}
    • Aufruf in einem Modul: gn.GetString().getStringsQuickbar(id, property, values, wikiValue, label)
    • Funktion: Liefert die Werte als Tabellenzeile zur Einbindung in einer Infobox (Quickbar). Es wird immer nur ein Wert abgerufen. Diese Funktion wird im Regelfall nur in anderen Modulen, speziell denen für die Quickbars, benutzt. Der Einsatz in individuell zusammengestellten Infoboxen direkt in Artikeln ist aber trotzdem möglich.

Dieser Funktion kann auch ein „Sollwert“ für die Ausgabe übergeben werden. Das bewirkt eine Ausgabe dieses Wertes und keine Ausgabe des auf Wikidata gespeicherten Wertes. Ungeachet dessen wird der übergebene Wert mit Wikidata verglichen. Das Ergebnis des Abgleich finden sich in einer Wartungskategorie sowie in zusätzlichen CSS-Klassen. Für den Leser gibt es ein zusätzliches Tooltip mit dem Ergebnis des Vergleichs und dem Wert von Wikidata.

Ein lokaler Wert kann hier auch angegeben werden. Er wird stattdessen ausgegeben aber trotzdem zusätzlich mit Wikidata verglichen. Mit dem optionalen Parameter label kann man eine den Text in der linken Spalte vorgeben. Ansonsten wird die hinterlegte Standardanzeige verwendet.

getSocialMediaQuickbar[Bearbeiten]
  • getSocialMediaQuickbar ( id )
    • Aufruf in einer Vorlage: {{#invoke:GetString|getStringsQuickbar|id}}
    • Aufruf in einem Modul: gn.GetString().getStringsQuickbar(id)
    • Funktion: Gibt die Social-Media-Links eines Objektes aus. Die Ausgabe erfolgt als Symbol mit Link. Bestimmt Social-Media-Links kann man nicht spezifizieren. Es werden grundsätzlich alle ausgegebne. Lokale ANgaben sind nicht möglich. Es wird immer Wikidata verwendet.

Wartungskategorien[Bearbeiten]

HTML bei Nutzung in den Quickbars[Bearbeiten]

Folgendes HTML wird erzeugt:

<!-- Eintrag für die Zeile -->
<tr class="voy-qb-item voy-qb-item-xxx"> <!-- xxx: Eintrag für die Eigenschaft, Einsehbar in Modul:GetString/Properties unter dem EIntrag "cssClass"-->

   <!-- Eintrag für die erste Spalte -->
   <th class="voy-qb-item-key">Eigenschaft</th>
   
   <!-- Je nach Auswertung der Daten wird eine der folgenden Zellen ausgegeben -->
   <!-- Ein Wikidata-Wert kann nicht ermittelt werden -->
   <td class="voy-qb-item-value1 voy-qb-item-value-nowikidata" data-wikidata-id="Wikidata-ID, wenn vorhanden" data-wikidata-value="Wert" title="Tooltip-Info">Wert</td>
   
   <!-- Wikidata-Wert und lokaler Wert sind identisch -->
   <td class="voy-qb-item-value1 voy-qb-item-value-wikidata-equal voy-wikidata-content" data-wikidata-id="Wikidata-ID" data-wikidata-value="Wert" title="Tooltip-Info">Wert</td>
   
   <!-- Wikidata-Wert und lokaler Wert unterscheiden sich -->
   <td class="voy-qb-item-value1 voy-qb-item-value-wikidata-noequal voy-wikidata-content" data-wikidata-id="Wikidata-ID" data-wikidata-value="Wert" title="Tooltip-Info">Wert</td>
   
   <!-- alle anderen Fälle -->
   <td class="voy-qb-item-value1 voy-wikidata-content" data-wikidata-id="Wikidata-ID, wenn vorhanden" data-wikidata-value="Wert">Wert</td>
   
</tr>

CSS-Klassen bei Nutzung in den Quickbars[Bearbeiten]

Jedes einzelne Informationsfeld der Quickbar lässt sich über CSS individuell gestalten, entweder zentral über die Systemdatei Mediawiki:common.css oder über benutzerspezifische Einstellungen Benutzer:<Dein Name>/common.css. Für Programmierer ist es damit auch möglich, an jedem Feld per Javascript Änderungen vorzunehmen und Werkzeuge zu programmieren.

Die gesamte Quickbar (<table>...</table>) besitzt drei Klassen.

  • voy-qb – Immer vorhanden ist die Klasse qb. Über diese kann man jede Infobox beeinflussen.
  • voy-qb-ort - Alle Orts-Quickbars, die direkt oder indirekt über diese Vorlage eingebunden sind, besitzen diese Klasse
  • voy-qb-<top-level-domain> – Zusätzlich gibt es eine landesspezifische Klasse, die die Top-Level-Domain beinhaltet. Alle Artikel über Deutschland haben in ihrer Quickbar somit zusätzlich die Klasse voy-qb-de hinterlegt. Lässt sich keine TLD ermitteln, heißt die Klasse qb-unknown-tld.

Jede Zeile einer Quickbar besitzt eine allgemeine und eine eigene Klasse.

  • voy-qb-item – Klasse, die alle Zeilen einer Infobox-Tabelle besitzen.

Jede Spalte einer Zeile der Quickbar (<tr>...</tr>) hat eine individuelle Klasse, über die die Formatierungen angewendet werden können. Zusätzlich haben alle Spalten jeder Zeile eine individuelle Klasse:

  • voy-qb-item-key – Erste Spalte mit der Eigenschaftsbezeichnung (standardmäßig fett geschrieben)
  • voy-qb-item-value1 – Erste (und in der jetzigen Quickbar Ort im Regelfall einzige) Spalte mit einem Wert.
  • voy-qb-item-value2 – weitere Spalte
  • voy-qb-item-value3 – weitere Spalte

Bei Bildern gibt es nur eine Tabellenzelle mit einem Div-Tag

  • voy-qb-item-image – Klasse des <div>...</div>. Die Positionierung der Bilder erfolgt dann über Flexboxen.

Die value-Spalten haben noch eine oder mehrere Klassen, wenn Daten aus Wikidata bezogen wurden.

  • voy-wikidata-content – Zusätzliche Klasse, wenn die angezeigten Daten aus Wikidata stammen. Diese Klasse ist nicht auf die Quickbars beschränkt und kann überall im Artikel auftauchen.
  • voy-qb-item-value-nowikidata – Über Wikidata konnten keine Daten ermittelt werden. Es ist kein Objekt vorhanden, oder die gewünschte Information ist im Objekt nicht verfügbar.
  • voy-qb-item-value-wikidata-equal – Es gibt die Information auf Wikidata und es wirde ein lokaler Wert in der Quickbar angegeben (der auch angezeigt wird). Diese Klasse zeigt an, dass beide Werte identisch sind.
  • voy-qb-item-value-wikidata-noequal – Es gibt die Information auf Wikidata und es wirde ein lokaler Wert in der Quickbar angegeben (der auch angezeigt wird). Diese Klasse zeigt an, dass sich beide Werte unterscheiden.

Beispiele:

  • .voy-qb-item-population .voy-qb-item-value1 { color:blue; font-style:italic; } – Die Einwohnerzahl wird blau und kursiv dargestellt.
  • .voy-qb-item-value-wikidata-equal { color:green; font-weight:bold; } – Einträge werden grün und fett dargestellt, wenn sie lokal angegeben wurden und identisch mit Wikidata sind.
  • .voy-qb-item-value-wikidata-noequal { color:red; font-weight:bold; } – Einträge werden rot und fett dargestellt, wenn sie lokal angegeben wurden sich von Wikidata unterscheiden.

Siehe auch:

Verwendung in Vorlagen[Bearbeiten]

Das Modul wird von folgenden Vorlagen verwendet:

Submodule[Bearbeiten]

  • GetString/Properties – Enthält Wartungkategorien und Voreinstellungen für die einzelnen Properties. Obwohl theoretisch jede Property ohne Voreinstellungen abgefragt werden kann, sollten häufig benutzte Properties hier konfiguriert werden.

Benötigte weitere Module

Dieses Modul benötigt folgende weitere Module: CountryData • LinkPhone

Verwendung in anderen Modulen

Dieses Modul ist notwendig für die Ausführung folgender Module. Bei Anpassungen sollte die Funktionstüchtigkeit der folgenden Module geprüft werden. Benutze dazu auch diese Tracking-Kategorie um Fehler zu finden, die sich dann auf Artikel auswirken:

Verwandte Module[Bearbeiten]

  • GetP856 – Liefert die Offizielle Webseite eines Objektes.
  • GetNumber – Liefert numerische Eigenschaften eines Objektes, wie z. B. Fläche, geografische Höhe und Einwohnerzahl von Regionen bzw. Orten.
  • GetImage – Liefert Dateinamen von Bildateien.
  • GetItem – Liefert Eigenschaften, die als Wikidata-Objekt erfasst sind. Das Ergebnis können Links auf Wikivoyage oder Wikipedia-Artikel sein.
  • GetProvince – Ermittelt rekursiv die erste Verwaltungsstufe eines Ortes (Bundesland, Provinz usw.).

Trackingkategorien und Spezialseiten[Bearbeiten]

  • Seiten mit Skriptfehlern – Listet Seiten auf, bei denen Lua-Skripte Fehler verursachen.
  • Gewünschte Kategorien – Gewünschte Kategorien. Hier tauche eine neue Kategorie der Art Seiten, die die Wikidata-Eigenschaft Pxxx benutzen auf, wenn eine bisher nicht genutzte Eigenschaft irgendwo verwendet wird.