Modul:GetNumber/Doku
Dies ist eine nachgeordnete Seite der Dokumentation von Modul:GetNumber. Sie enthält Informationen zur Verwendung, Kategorisierung und zu anderem Inhalt, der nicht Bestandteil der originalen Modul-Seite ist. |
Dieses Modul ist getestet und für den projektweiten Gebrauch geeignet. Es kann in Vorlagen benutzt und auf Hilfeseiten erläutert werden. Entwicklungen an dem Modul sollten auf GetNumber/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
Dieses Modul benutzt die Wikidata-Eigenschaften:
|
Funktion
BearbeitenDas Modul bietet einige Funktionen, um numerische Wikidata-Eigenschaften (Datentyp quantity
) inklusive ihren Einheiten und Zeitpunkten anzuzeigen.
Abfrage mit Einheit: Sind gewünschte Einheiten nicht auf Wikidata am Objekt erfasst, kann vom Modul eine gewünschte Umrechung vorgenommen werden. Die abzurufenden Eigenschaften müssen dem Modul und dessen Submodul Modul:GetNumber/Units bekannt gemacht werden. Derzeit sind folgende Eigenschaften implementiert:
- Breite (P2049) standardmäßig in Kilometern
- Fläche (P2046) standardmäßig in Quadratkilometern
- Höhe eines Objektes (P2048) standardmäßig in Metern
- Höhe (geografisch) (P2044) standardmäßig in Metern
- Länge (P2043) standardmäßig in Kilometern
- Netzspannung (P2884) standardmäßig in Volt. Zusätzlich wird die Frequenz durch ein Komma getrennt angegeben.
- Preis (P2284) standardmäßig in Euro
- Tiefe (vertikal) (P4511) standardmäßig in Metern
Abfrage mit Zeitpunkt: Einige numerische Eigenschaften sind mit einen Zeitpunkt der Gültigkeit qualifiziert. Die abzurufenden Eigenschaften müssen ebenfalls dem Modul und dessen Submodul Modul:GetNumber/Units bekannt gemacht werden. Derzeit sind folgende Eigenschaften implementiert
Das Modul kann sowohl in anderen Modulen als auch in Vorlagen verwendet werden.
Qualifikatoren
BearbeitenQualifikatoren werden vom Modul mit abgefragt und genutzt, eine direkte Abfrage von Qualifikatoren per übergebenem Parameter ist aber derzeit nicht möglich. Qualifikatoren werden folgendermaßen genutzt:
- Eigenschaften bei denen eine Maßeinheit gewünscht bzw. gefordert ist, rufen diese mit ab und zeigen sie bei Bedarf über die Funktion
getNumbersWithUnit
an.- Die Eigenschaft Netzspannung (P2884) ruft zusätzlich die Frequenz ab und gibt sie zusätzlich mit aus.
- Eigenschaften bei denen ein Zeitpunkt der Gültigkeit erfasst ist, rufen diese mit ab und zeigen sie bei Bedarf über die Funktion
getNumbersWithDate
an.
Funktionen des Moduls
BearbeitengetNumbersWithUnit
BearbeitengetNumbersWithUnit ( id, property, unit, values, precision, show, delimiter )
- Aufruf in einer Vorlage:
{{#invoke:GetNumber|getNumbersWithUnit|id|property|unit|values|precision|show|delimiter}}
- Aufruf in einem Modul:
gn.GetNumber().getNumbersWithUnit(id,property,unit,values,precision,show,delimiter)
- Funktion: Liefert den/die numerischen Wert(e) mit ihren Einheiten.
- Aufruf in einer Vorlage:
Bei der Verwendung in anderen Modulen muss am Skriptanfang noch ein gn = require( 'Module:GetNumber' )
eingefügt werden.
Die Funktion arbeitet mit den folgenden Parametern
|id=
Wikidata-ID des Objektes, kann leer bleiben, wenn der eigene Artikel abgefragt werden soll.|property=
Angabe der Eigenschaft, die abgefragt werden soll.|unit=
Wikidata-ID der Maßeinheit, die abgefragt werden soll. Ist keine angegeben, wird die im Modul GetNumber/Units als Standard angegebene Einheit abgefragt. Ist der Wert nicht in der gewünschten Maßeinheit erfasst, versucht die Funktion, die gegebenen Werte in die gewünschte Einheit umzurechnen und bedient sich dabei der auf GetNumber/Units angegebenen Umrechnungsfaktoren.|values=
gibt an, ob der erste gelieferte Wert, oder, wenn vorhanden, alle erfassten Werte ausgegeben werden. Standardmäßig wird nur der erste gefundene Wert verwendet.|values=single
der erste Wert (Standard)|values=all
alle Werte
|precision=
gibt die gewünschte Anzahl Nachkommastellen an. Standardmößig wird auf ganze Zahlen gerundet.|show=
gibt die gewünschte Formatierung an.|show=number
gibt nur die Zahl in formatierter Form aus (mit Tausenderpunkten).|show=plain
gibt nur die Zahl unformatiert aus.|show=short
gibt nur die Zahl und die Maßeinheit als Abkürzung aus (Standard).|show=long
gibt nur die Zahl und die ausgeschriebene Maßeinheit aus.|delimiter=
gibt die gewünschte Trennung zwischen den Werten an. Standardmäßig ist das ein Komma gefolgt von einem ungeschützten Leerzeichen.
Beispiele Fläche:
- Brandenburg (Standard):
{{#invoke:GetNumber|getNumbersWithUnit|Q1208|P2046}}
– 29.479 km² - Brandenburg (Standard, 2 Kommastellen):
{{#invoke:GetNumber|getNumbersWithUnit|Q1208|P2046|||2}}
– 29.478,63 km² - Manhattan (Standard, lang):
{{#invoke:GetNumber|getNumbersWithUnit|Q11299|P2046|6=long}}
– 86.971.801 Quadratkilometer - Manhattan (km² angefordert, auf WD vorhanden):
{{#invoke:GetNumber|getNumbersWithUnit|Q11299|P2046|Q712226}}
– 86.971.801 km² - Manhattan (mi² angefordert, auf WD vorhanden):
{{#invoke:GetNumber|getNumbersWithUnit|Q11299|P2046|Q232291}}
– 34 mi² - Manhattan (ft² angefordert, auf WD nicht vorhanden):
{{#invoke:GetNumber|getNumbersWithUnit|Q11299|P2046|Q857027}}
– 936.156.672 - Manhattan (ha angefordert, auf WD nicht vorhanden):
{{#invoke:GetNumber|getNumbersWithUnit|Q11299|P2046|Q35852}}
– 8.697 ha - Manhattan (ft² angefordert, auf WD nicht vorhanden, aber beide Werte umgerechnet - sollten eigentlich gleich sein):
{{#invoke:GetNumber|getNumbersWithUnit|Q11299|P2046|Q857027|all}}
– 936.156.672
Beispiele Höhe:
- Cottbus (Standard):
{{#invoke:GetNumber|getNumbersWithUnit|Q3214|P2044}}
– 76 m - San Francisco (ft angefordert):
{{#invoke:GetNumber|getNumbersWithUnit|Q62|P2044|Q3710|6=long}}
– 98 Fuß
getNumbersWithDate
BearbeitengetNumbersWithDate ( id, property, values, show, delimiter )
- Aufruf in einer Vorlage:
{{#invoke:GetNumber|getNumbersWithDate|id|property|values|show|delimiter}}
- Aufruf in einem Modul:
gn.GetNumber().getNumbersWithDate(id,property,values,show,delimiter)
- Funktion: Liefert den/die numerischen Wert(e) mit ihren Gültigkeitsdatum. Nummern werden standardmäßig mit Tausenderstellen formatiert und die Funktion geht dabei von ganzen Zahlwerten aus.
- Aufruf in einer Vorlage:
Bei der Verwendung in anderen Modulen muss am Skriptanfang noch ein gn = require( 'Module:GetNumber' )
eingefügt werden.
Die Funktion arbeitet mit den folgenden 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 (Standard)|values=all
alle Werte
|show=
gibt die gewünschte Formatierung an.|show=number
gibt nur die Zahl in formatierter Form aus (mit Tausenderpunkten).|show=plain
gibt nur die Zahl unformatiert aus.|show=year
gibt die Zahl und das Jahr aus.|delimiter=
gibt die gewünschte Trennung zwischen den Werten an. Standardmäßig ist das ein Komma gefolgt von einem ungeschützten Leerzeichen.
Einwohnerzahl:
- Kleinmachnow (Einwohnerzahl):
{{#invoke:GetNumber|getNumbersWithDate|Q104192|P1082}}
– 20.152 - Kleinmachnow (Einwohnerzahl+Jahr):
{{#invoke:GetNumber|getNumbersWithDate|Q104192|P1082||year}}
– 20.152 (2023)
Passagierzahl:
- Flughafen Frankfurt am Main (Passagierzahl):
{{#invoke:GetNumber|getNumbersWithDate|Q46033|P3872}}
– 48.918.482 - Flughafen Frankfurt am Main (Passagierzahl+Jahr):
{{#invoke:GetNumber|getNumbersWithDate|Q46033|P3872||year}}
– 48.918.482 (2022)
getNumbersWithUnitQuickbar + getNumbersWithDateQuickbar
BearbeitenBeispiele von oben | |
Höhe | 76 m |
---|---|
Fläche | 166 km² |
Einwohnerzahl | 20.152 (2023) |
Passagierzahl | 48.918.482 (2022) |
getNumbersWithUnitQuickbar ( id, property, unit, precision, wikiValue )
getNumbersWithDateQuickbar ( id, property, wikiValue )
- Aufruf in einer Vorlage:
{{#invoke:GetNumber|getNumbersWithUnitQuickbar|id|wikiValue}}
- Aufruf in einem Modul:
gn.GetNumber().getNumbersWithUnitQuickbar(id,wikiValue)
- Funktion: Liefert den numerischen Wert mit dessen Einheit bzw. Zeitpunkz 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.
- Aufruf in einer Vorlage:
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. Einheiten oder Formatierungen im übergebenen Wert werden vor dem Vergleich gegebenenfalls entfernt.
Wartungskategorien
Bearbeiten- Wikidata:Fehlende Umrechnung (6)
- Wikidata:Fehlende Eigenschaft (2)
- Wikidata:Unbekannte Eigenschaft (4)
- Wikidata:Unbekannte Einheit (4)
- Fehlende Daten auf Wikidata: Fläche (63) – Höhe (0) – Höhe über dem Meeresspiegel (3.296) – Einwohnerzahl (2.444) – Passagierzahl (1)
- Identische Daten auf Wikidata: Fläche (18) – Höhe (0) – Höhe über dem Meeresspiegel (9) – Einwohnerzahl (19) – Passagierzahl (0)
- Abweichende Daten auf Wikidata: Fläche (96) – Höhe (0) – Höhe über dem Meeresspiegel (44) – Einwohnerzahl (424) – Passagierzahl (0)
HTML bei Nutzung in den Quickbars
BearbeitenFolgendes HTML wird erzeugt:
<!-- Eintrag für die Zeile: jeweils eine der folgenden Zeilen, je nach abgerufener Eigenschaft -->
<tr class="voy-qb-item voy-qb-item-altitude"> <!-- Eintrag für die Eigenschaft P2044 -->
<tr class="voy-qb-item voy-qb-item-area"> <!-- Eintrag für die Eigenschaft P2046 -->
<tr class="voy-qb-item voy-qb-item-population"> <!-- Eintrag für die Eigenschaft P1082 -->
<tr class="voy-qb-item voy-qb-item-passengers"> <!-- Eintrag für die Eigenschaft P3872 -->
<!-- Eintrag für die erste Spalte -->
<th class="voy-qb-item-key">Eigenschaft</th> <!-- Label aus: Modul:GetNumber/Units -->
<!-- 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
BearbeitenJedes 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 Klasseqb
. Über diese kann man jede Infobox beeinflussen.voy-qb-ort
- Alle Orts-Quickbars, die direkt oder indirekt über diese Vorlage eingebunden sind, besitzen diese Klassevoy-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 Klassevoy-qb-de
hinterlegt. Lässt sich keine TLD ermitteln, heißt die Klasseqb-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 Spaltevoy-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:
- Wikivoyage:CSS-Klassen – Dokumentation der CSS-Klassen auf Wikivoyage}}
Verwendung in Vorlagen
BearbeitenDas Modul wird von folgenden Vorlagen verwendet:
- {{Quickbar Flughafen}} – Quickbar für Flughäfen
- {{Quickbar Land}} – Quickbar für Länder
- {{Quickbar Ort}} – Quickbar für Orte
- {{Quickbar Region}} – Quickbar für Regionen
Submodule
Bearbeiten- GetNumber/Units – Submodul mit Voreinstellungen zu den einzelnen Eigenschaften sowie Umrechnungsfaktoren.
Verwendete Module
BearbeitenEs werden keine anderen Module verwendet
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:
- Quickbar Flughafen • Quickbar Land • Quickbar Ort • Quickbar Region
- Modul benötigt das Modul GetNumber – Wartungskategorie, in der nochmals alle Module gelistet sind, die von diesem Modul abhängig sind.
Verwandte Module
Bearbeiten- GetP856 – Liefert die Offizielle Webseite eines Objektes.
- GetString – Liefert alphanumerische Eigenschaften eines Objektes (Datentypen string und monolingualtext)
- 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.