Modul:Marker utilities/Doku
Dies ist eine nachgeordnete Seite der Dokumentation von Modul:Marker utilities. Sie enthält Informationen zur Verwendung, Kategorisierung und zu anderem Inhalt, der nicht Bestandteil der originalen Modul-Seite ist. |
Dieses Modul wird auf vielen Seiten benutzt, und Änderungen werden projektweit sofort wahrgenommen. Bitte teste Änderungen vorher im /Sandkasten oder in deinem Benutzernamensraum. Die getestete Änderung sollte dann in einem einzigen Edit auf dieser Seite eingefügt werden. Bitte diskutiere Änderungen zuerst auf der Diskussionsseite bevor du sie implementierst. |
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 Marker utilities/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
Dieses Modul benutzt eine oder mehrere Wikidata-Eigenschaften. |
Anwendung
BearbeitenDas Modul stellt gemeinsame Funktionen für das Modul:Marker und das Modul:vCard zur Verfügung. Im Projektnamensraum befindet sich die technische Dokumentation.
Benötigte weitere Module
Dieses Modul benötigt folgende weitere Module: Coordinates • Marker utilities/Groups • Marker utilities/i18n • Marker utilities/Maki icons • Marker utilities/Types • UrlCheck • Wikidata utilities
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:
- Marker • vCard • VCard/Params
- Modul benötigt das Modul Marker utilities – Wartungskategorie, in der nochmals alle Module gelistet sind, die von diesem Modul abhängig sind.
Wartungsfunktionen
Bearbeitenfunction mu.initMaintenance( name )
Die Funktion initialisiert die Zeichenkettenverwaltung für die Ausgabe von Fehlermeldungen. name
ist der zugehörige Modulname ohne die Namensraumbezeichnung. Diese Funktion setzt auch die Tabellen fehlerhafter Paramter und der Fehlermeldungen/Hinweise zurück.
function mu.addMaintenance( key, value )
Diese Funktion fügt die Fehlermeldung mit dem Schlüssel key
in die Tabelle der Fehlermeldungen und Hinweise ein. value
dient als Ersatz für einen Platzhalter %s
. Ein Teil der oben genannten Funktionen befüllt ebenfalls diese Tabelle.
function mu.makeMaintenance( page, modules )
Diese Funktion liefert eine Zeichenkette mit allen Fehlermeldungen und Hinweisen zurück. modules
ist eine Tabelle mit den Modulvariablen, aus denen weitere Wartungskategorien erhalten werden sollen.
function mu.getCategories( formatStr )
- Liefert eine Zeichenkette mit den Kategorie-Links aller verwendeten Wikidata-Eigenschaften zurück.
Funktionen für allgemeine Nutzung
Bearbeitenfunction mu.isSet( arg )
liefert true
oder false
, je nachdem, ob das Argument arg
gesetzt ist oder nicht. arg
muss existieren und einen Wert ungleich ''
enthalten.
function mu.convertForSort( s )
Wandelt die Zeichenkette s
so um, dass eine korrekte Sortierung ermöglicht wird. Die auszutauschenden Buchstaben sind in der sprachabhängigen Tabelle substitutes
im Modul Marker utilities/i18n enthalten.
function mu.formatNumber( num )
Die Funktion ersetzt in der als Zeichenkette vorliegenden Zahl das Dezimalzeichen und fügt Tausendertrennzeichen ein.
function mu.tableInsert( tab, value )
fügt den Wert value
zur Tabelle tab
hinzu, wenn er existiert und nicht leer ist.
function mu.textSplit( s, sep )
trennt die Zeichenkette s
an Trennzeichen sep
auf und legt sie in einer Tabelle ab, die aber keine leeren Zeichenketten enthält. sep
muss genau die Länge von einem Zeichen (ein Byte) haben und darf kein magisches Pattern-Zeichen sein. Die Funktion ist deutlich schneller als mw.text.split()
.
function mu.split( s )
liefert eine assoziative Tabelle kommaseparierter Werte der Zeichenkette s
. Die Teilzeichenketten werden in Kleinbuchstaben umgewandelt, und Leerräume werden durch den Unterstrich ersetzt.
function mu.makeSpan( s, class, isBdi, attr, css )
liefert eine Zeichenkette, die von einem <span>
-Tag oder <bdi>
-Tag umschlossen ist. class
ist das Klassenattribut des Tags, während die Tabellen attr
und css
weitere Tap-parameter liefern.
function mu.languageSpan( s, titleHint, args, country, addClass )
fügt den Text in ein span-Tag, in dem die Sprache und Textrichtung des des Texts s
angegeben ist. titleHint
ist das title-Attribut des span-Tags, args
die Vorlagenparamtetertabelle und country
eine Tabelle mit landesspezifischen Angaben. addClass
stellt einen zusätzlichen Klassenbezeichner dar.
function mu.addWdClass( isFromWikidata )
liefert den Klassenbezeichner wikidata-content
, wenn isFromWikidata
auf true
gesetzt ist, ansonsten eine leere Zeichenkette.
function mu.getAliases( tab, key )
erstellt aus der Tabelle tab
eine Alias-Tabelle, die in tab
unter dem Schlüssel key
notiert sind.
function mu.yesno( val )
gibt y
oder n
zurück, wenn val
einen entsprechenden Wert besitzt, anderenfalls nil
.
Prüffunktionen
Bearbeitenfunction mu.checkArguments( templateArgs, validKeys )
prüft, ob im Vorlagenaufruf unbekannte oder durch Aliase entstandene doppelte Parameternamen verwendet werden. Diese unbekannten bzw. doppelten Parameter werden in die Tabelle fehlerhafter bzw. doppelter Parameter eingefügt. templateArgs
ist die Tabelle der Vorlagenparamter, validKeys
die Tabelle der erlaubten Parameter (siehe z. B. Modul:VCard/i18n). Die Funktion liefert eine Tabelle der gültigen Argumente zurück.
function mu.checkCommonsCategory( args )
Die Funktion löscht eine evtl. vorhandene Namensraumangabe in der Commons-Kategorie args.commonscat
und fügt eine Wartungskategorie hinzu, wenn die Commons-Kategorie gesetzt wurde.
function mu.checkCoordinates( lat, long )
liefert die überprüften Koordinaten lat, long
. Im Fehlerfall sind lat
und long
leere Zeichenketten. Die Fehlermeldungstabelle enthält zusätzlich einen entsprechenden Eintrag (siehe unten).
function mu.checkZoom( args )
ersetzt args.zoom
mit einem Standardwert, falls args.zoom
nicht im Intervall von [0, 19] liegt.
function mu.checkImage( image, entity )
liefert den überprüften Wert für das image
oder eine leere Zeichenkette zurück. Im Fehlerfall enthält die Fehlermeldungstabelle zusätzlich einen entsprechenden Eintrag (siehe unten). Die Variable mi.options.imageCheck
legt fest, ob überhaupt einen rechenzeitintensive Prüfung vorgenommen wird.
function mu.checkStatus( args )
prüft die übergebenen Werte im Parameter status
und legt die gültigen Werte in args.statusTable
ab. Im Fehlerfall enthält die Fehlermeldungstabelle zusätzlich einen entsprechenden Eintrag (siehe unten).
function mu.checkStyles( args )
ersetzt Stil-Aliase durch CSS-Stile.
function mu.checkTypeAndGroup( args )
liefert die überprüften Werte für den Typ und die Gruppen in args
zurück. Im Fehlerfall enthält die Fehlermeldungstabelle zusätzlich einen entsprechenden Eintrag (siehe unten).
function mu.checkUrl( args )
liefert die überprüfte Internetaddresse url
in der Argumenttabelle args
zurück. Im Fehlerfall enthält die Fehlermeldungstabelle zusätzlich einen entsprechenden Eintrag (siehe unten).
Typ- und Gruppenfunktionen
Bearbeitenfunction mu.getTypeParams( aType )
liefert den Parametersatz aus Module:Marker utilities/Types für den Typ aType
oder nil
zurück.
function mu.getTypeLabel( id )
liefert das erste Label aus der Typenliste zum id
. id
kann ein Marker- oder vCard-Typ bzw. eine Wikidata-Id sein. Im Fehlerfall wird eine leere Zeichenkette oder der id
selbst zurückgegeben.
function mu.typeExists( aType )
liefert den Typ aType
oder nil
zurück, je nachdem, ob der Typ in der Typentabelle enthalten ist. Aliase werden in den zugehörigen Typ umgewandelt.
function mu.groupWithEvents( group )
prüft, ob in der angegebenen Gruppe group
Ereignisse als Typen vorgesehen sind.
function mu.getColor( args )
fügt color
und inverse
zu den Argumenten args
aus der Gruppe group
hinzu. color
ist die zur Gruppe gehörende Farbe und wird aus der Tabelle Modul:Marker utilities/Groups bezogen.
function mu.idToType( id )
liefert zur Wikidata-Id den zugehörigen Typ oder nil
zurück.
Funktionen zur Parameteraufbereitung
Bearbeitenfunction mu.getShow( default, args, validValues )
liefert eine assoziierte Tabelle mit den übergebenen kommaseparierten show
-Attributen, wobei der überschreibbare Standardwert default
berücksichtigt wird. args
ist die Parametertabelle. Die args.show
-Attribute werden auf Gültigkeit hin überprüft.
function mu.removeCtrls( s, onlyInline )
Die Funktion entfernt Steuerzeichen und die HTML-Tags für den Zeilenumbruch und Zeilenwechsel aus der Zeichenkette s
. Wenn onlyInline = false
, dann bleiben Zeilenumbruch und Zeilenwechsel erhalten. Deren Vorkommen wird in der Variablen descrDiv
mitgeteilt. Die Funktion liefert zwei Werte zurück:
s
bereinigte Zeichenkette.descrDiv
Der Container für die Beschreibung muss ein<div>
-Tag sein.
Wikidata-Abfragefunktionen
Bearbeitenfunction mu.getCoordinatesFromWikidata( entity )
liefert die im Wikidata-Datensatz mit der Einität entity
enthaltene Koordinate zurück. Zuerst wird versucht, die Zentrumskoordinate aus der Eigenschaft P5140
zu erhalten, danach die Koordinate aus der Eigenschaft P625
.
function mu.typeSearch( p31 )
Sucht in mehreren P31-P279-Ketten nach Q-ids, deren Werte in der Tabelle Module:Marker utilities/Types enthalten sein könnten. Die Tabelle p31
enthält die vorgefunden P31-Werte. Der erste Treffer wird als Zeichenkette zurückgegeben, im Fehlerfall die Zeichenkette error. Die Maximalanzahl höherer Ebenen für die Suche ist mit mi.searchLimit
vorgegeben, dies sind üblicherweise 4. Es wird nur jeweils die erste P279-Id ausgewertet, also nicht die gesamte Baumstruktur.
function mu.getCommonsCategory( args, entity )
Die Funktion versucht, eine Commons-Kategorie aus Wikidata über die Wikidata-Entität entity
zu beziehen. Zuerst wird der Commons-Site-Link analysiert, dann die Eigenschaft P373 und zuletzt die Eigenschaft P910.
function mu.getLangTable( wikiLang, localLang )
erstellt eine Tabelle mit Sprachbezeichnern unter Nutzung von wikiLang, localLang (country.lang) und den Sprachen langs aus dem Modul Marker utilities/i18n.
function mu.getNamesFromWikidata( args, fromWikidata, country, entity )
Die Funktion befüllt die Tabelle args
mit dem Namen der Einrichtung in der Wiki-Sprache und in der Landessprache mit den Angaben aus Wikidata. Die Tabelle fromWikidata
enthält die Information (fromWikidata.name
, fromWikidata.nameLocal
), ob der Name aus Wikidata stammt.
function mu.getArticleLink( args, entity )
Die Funktion übergibt den Sitelink zum zugehörigen Arikel an args.thisWiki
, außer der Vorlagenaufruf wurde in diesem Arikel vorgenommen.
Marker-Funktionen
Bearbeitenfunction mu.makeMarkerSymbol( args, title, frame, show )
liefert r
: HTML-Quellcode des Marker-Symbols.
Symbolfunktionen
Bearbeitenfunction mu.makeStatusIcons( args )
liefert eine Zeichenkette mit der Bildersyntax gemäß der Tabelle args.statusTable
zurück.
function mu.addLinkIcon( classes, link, title, text )
erstellt den HTML-Code für die Anzeige eines verlinkten Symbolbildes. Die Darstellung erfolgt im Zusammenspiel mit Stilvorlagen. Gefordert werden zu listing-icon
hinzuzufügende CSS-Klassen classes
, ein Link link
(entweder Internet- oder Artikellink), ein Tooltip-Text title
und der meist nicht sichtbare Linktext text
.
function mu.makeIcons( args, page, country, entity, show, fromWikidata )
liefert die verlinkten Schwesterprojekt-Symbole und die verlinkten Symbole von Social-Media-Diensten zurück. Die Angaben stammen meist aus den Sitelinks der Wikidata-Entity entity
. args
ist die Tabelle der übergebenen Vorlagenparameter. Die Tabelle country
enthält länderspezifische Daten wie die Sprachangabe. fromWikidata
die Tabelle der Parameter, die aus Wikidata bezogen wurden.
Ausgabefunktionen
Bearbeitenfunction mu.prepareNames( args )
fügt der Argumente-Tabelle den Tabellen displayName
und givenName
hinzu, die aus den Parametern name
und nameMap
gebildet werden. Hauptaufgabe ist es, den eigentlichen Namen aus einem möglichen Link in Wikiyntax herauszulösen. Beide Tabellen bestehen aus folgenden drei Elementen:
name
:string
, nur der Name.all
:string
, verlinkter Name oder nur der Name, falls kein Link vorliegt.pageTitle
:string
, Artikel, auf den verlinkt wird. Der Titel kann vonname
verschieden sein.
function mu.makeName( result, args, show, page, country, nameClass, localClass )
fügt den Namen und Namensergänzungen zur Tabelle result
hinzu. Zu den Namensergänzungen gehören der alternative Name, der lokale Name, Kommentar und Flughafencodes, die in Klammern geschrieben und mit einem span
-Tag umschlossen werden. nameClass
und localClass
sind zusätzliche Klassenattribute für den Namen und den lokalen Namen.
function mu.parentheses( s, trim )
fügt die Zeichenkette s
in Klammern ein. Wenn trim = true
wird die Formatierungszeichenkette (üblicherweise ' (%s)') getrimmt.
function mu.dmsCoordinates( lat, long, name, fromWD, extraParams, noBrackets )
liefert die Zeichenkette r
, die eine zu den Kartenwerkzeugen verlinkte Dezimalkoordinate enthält, die wahlweise in Klammern gesetzt werden kann. name
ist der Name der Einrichtung, fromWD = true
besagt, dass die Koordinate aus Wikidata stammt und extraParams
enthält zusätzliche Parameter wird Maßstab und Region, die in den Kartenwerkzeugen ausgewertet werden.
function mu.makeWrapper( result, args, country, show, list, aClass, frame )
umgibt zum Inhalt eines Markers oder einer vCard mit einem umschließenden Tag (span, div).
Sonstige Funktionen
Bearbeitenfunction mu.getPageData()
stellt seitenbezogene Daten zur Verfügung.