Wikipedia:Lua/Modul/UserGroups/de
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
UserGroups
– Modul zur Verwaltung und Darstellung von Gruppenzugehörigkeiten (auch außerhalb der Software-definierten) und Mandaten.
Funktionen für Vorlagen
[Quelltext bearbeiten]- f
- Arbeitsfunktion
- Der Rückgabewert ist leer, wenn sich keine Treffer ergeben, ansonsten eine Zahl oder Zeichenkette oder ein HTML-Element.
- Die nachstehenden Parameter beeinflussen das Ergebnis:
- source
- Seite mit JSON-Quelltext gemäß Datenstruktur
- Beispiel: MediaWiki:Gadget-markAdmins/userGroups.json
- Vorgabe: gemäß Projekt-Konfiguration
- JSON
- JSON-Quelltext gemäß Datenstruktur; Vorrang vor
source
- account
- Filterbedingung; Benutzerkonto
- Vorgabe: alle
- pattern
- Filterbedingung; Lua-Muster für Benutzerkonten
- Vorgabe: alle
- codes
- Filterbedingung; Leerzeichen-getrennte Liste der Gruppen-Kürzel
- Vorgabe: alle
- active.state
0
– nur ehemalige Zugehörigkeit1
– nur aktive Mandate- Vorgabe: alle
- type
- Art der Ausgabe
- gender – Gender-Abfrage
graph– zurzeit keine Implementierungnumber
– Anzahl der Treffer als Zahlol
– nummerierte Liste verlinkter Nicksping
– Sammel-Pingplain
– HTML-Darstellung als unformatierte Listeraw
– reiner Texttable
– Tabelletarget
– Versandliste für Massennachrichttimeline
– Zeitleisteul
– unnummerierte Liste verlinkter NicksLua– kein Zugang aus Vorlagenprogrammierung
- Vorgabe:
table
- class
class
für äußeres HTML-Element- style
style
für äußeres HTML-Element- id
id
für äußeres HTML-Element- caption
- Überschrift für Tabelle oder Zeitleiste
- table.columns
- Spaltendefinition für
type=table
- Vorgabe: eine Spalte mit Nick
- table.number
1
– beitype=table
die Anzahl der Nicks anzeigen- table.THclass
class
für Kopfzeile beitype=table
- table.THstyle
style
für Kopfzeile beitype=table
- timeline.template
- Seite mit Musterumgebung für Zeitleiste
- Beispiel und Vorgabe: Wikipedia:Lua/Modul/UserGroups/Timeline
- timeline.elected
- Beschriftung für aktive Mandate der Zeitleiste
- timeline.previous
- Beschriftung für ehemalige Zugehörigkeit in der Zeitleiste
- failsafe
- Versionsbezeichnung:
2022-12-12
Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung
- sicherzustellen, dass eine von einer Vorlage oder einem Modul benötigte Funktion in der lokalen Kopie eines Bibliotheksmoduls vorhanden ist, und ggf. auch in einer erforderlichen Mindestversion;
- die globale Aktualisierung und Verknüpfung von Modulen über Wikidata zu verwalten.
Die Failsafe-Schnittstelle liegt sowohl auf Ebene der Vorlagen wie auch in direktem Lua-Zugriff vor.
Die Funktionen sind im Einzelnen (nicht alle werden bereits überall in vollem Umfang unterstützt):
Wert | Ergebnis | aktuell |
---|---|---|
nichtsfalse
|
lokale Version | »2022-12-12« |
Mindestversion | Mindestversionsbezeichnung Datum im ISO-Format Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
|
|
wikidata
|
Versionsbezeichnung der globalen Mutter (d:Q115663308)
|
»2022-12-12« |
item
|
ID des Wikidata-Items
|
»Q115663308« |
~
|
Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
|
»« |
@
|
Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
|
»Q115663308« |
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false ; andernfalls die angegebene Zeichenkette.
|
Datenstruktur
[Quelltext bearbeiten]Siehe hier.
Filtern nach Gruppenzugehörigkeit
[Quelltext bearbeiten]Es kann eine Liste von Gruppen-Bezeichnern und Operatoren angegeben werden.
- Mehrere Gruppen-Bezeichner werden durch ODER verknüpft.
Wenn der Status active.state
auf „aktiv“ gesetzt ist, gibt es weitere Möglichkeiten:
- Ein (oder mehrere) Elemente
&
bewirken eine Verknüpfung mit UND. - Ein dem Kürzel vorangestelltes
-
bewirkt einen Ausschluss, wenn diese Funktion zurzeit aktiv ausgeübt wird.
Gender-Abfrage
[Quelltext bearbeiten]Ein account
ist Pflichtparameter. Dann wird zu diesem Konto eines der folgenden angezeigt:
f
– explizit weiblichm
– explizit männlich-
– Konto bekannt, nichts hinterlegt- leer – Konto unbekannt
Tabelle
[Quelltext bearbeiten]Die Darstellung einer Tabelle ergibt sich aus der Spaltendefinition.
Die Spaltendefinition ist eine durch Leerzeichen und/oder Zeilenumbrüche getrennte Aufzählung von Schlüsselwörtern im Parameter table.columns
, deren Reihenfolge auch den dargestellten Spalten entspricht.
Innerhalb einiger Grundregeln können die gewünschten Spalten für die ausgewählten (gefilterten) Einträge frei zusammengestellt werden.
Spaltendefinition
[Quelltext bearbeiten]Es gibt zwei Typen von Spalten-Schlüsselwörtern:
#
als erstes Zeichen des Schlüsselworts: Festgelegtes Kennwort (bis zu einem ggf. innerhalb folgenden weiteren#
)- Sonst: Kürzel für eine Gruppe, gemäß individueller Definitionen.
An das Basis-Kennwort oder Kürzel können mit #
weitere Deskriptoren angehängt werden.
Die festgelegten Basis-Kennwörter sind:
#account
– Konto-Spalte#codes
– Aufzählung der Kürzel zu diesem Konto#gender
– Geschlechtszugehörigkeit zu diesem Konto#details
– Anmerkungen zu diesem Konto#groups
– Sammel-Kennwort für einzelne Mandate (nicht direkt anzugeben):#groups#code
– Kennwort für Kürzel (Gruppe) des Mandats#groups#from
– Kennwort für Mandats-Beginn#groups#to
– Kennwort für Mandats-Ende#groups#info
– Kennwort für Mandats-Anmerkung#groups#since
– Kennwort für „seit“ (wie#groups#from
, jedoch mit anderer Spalten-Überschrift)
Konto-Spalte
[Quelltext bearbeiten]Sofern nicht per account=
genau ein Benutzerkonto spezifiziert
wurde, enthält die erste Spalte immer das Benutzerkonto; und würde
erforderlichenfalls automatisch vorangestellt werden.
Zusätzliche Deskriptoren sind in beliebiger Reihenfolge und mehrfach kombiniert möglich:
#account#gender
– Geschlechtszugehörigkeit kennzeichnen#account#died
– Verstorbene kennzeichnen#account#alias
– Frühere und spätere Nicks auflisten#account#process:
ID – Statt einfach verlinktem Konto die über ID deklarierte Vorlage verwenden.
Gender-Spalte
[Quelltext bearbeiten]Sie kann dazu genutzt werden, um den bekannt mageren Frauenanteil zu ermitteln, und um einen Abgleich mit den Einstellungen vorzunehmen.
#gender
– Geschlechtszugehörigkeit zu diesem Konto#gender#preference
– zusätzlich Konto-Einstellung
Einzelmandat-Spalten
[Quelltext bearbeiten]Die Aufzählung mehrfacher Mandate kann nicht kombiniert werden mit:
#codes
– Aufzählung der Kürzel zu diesem Konto#gender
– Geschlechtszugehörigkeit zu diesem Konto#details
– Anmerkungen zu diesem Konto- Kürzel-Spalten
Eine oder mehrere Spalten können angegeben werden für:
#groups#code
– Kürzel (Gruppe) des Mandats#groups#code#see
– Kürzel verlinken, falls möglich
#groups#from
– Mandats-Beginn#groups#to
– Mandats-Ende#groups#info
– Mandats-Anmerkung#groups#since
– Mandats-Beginn (wie#groups#from
, jedoch mit anderer Spalten-Überschrift „seit“)
Kürzel-Spalten
[Quelltext bearbeiten]Jede Spalte, die über ein nicht-standardisiertes Kennwort deklariert wird, erhält genau diesen Bezeichner als Spalten-Überschrift.
Der Inhalt der Zellen ist eine Markierung, falls diesem Konto dieses Kürzel zugeordnet ist.
Einzelmandat-Spalten können nicht mit Kürzel-Spalten kombiniert werden.
Zeitleiste
[Quelltext bearbeiten]Die Seite Wikipedia:Lua/Modul/UserGroups/Timeline erläutert näher, wie sich Zeitleisten konfigurieren lassen.
- Diese oder eine andere mit Definition des allgemeinem Schemas ist als Parameter
timeline.template
anzugeben. - Ein aktuelles Diagramm lässt sich ausstatten mit den drei Parametern:
caption
– Überschrifttimeline.elected
– Beschriftung für aktive Mandatetimeline.previous
– Beschriftung für ehemalige Zugehörigkeit
Projekt-Konfiguration
[Quelltext bearbeiten]Auf der Seite Modul:UserGroups.json kann optional das aktuelle Wiki konfiguriert werden.
Das Objekt hat die folgenden Komponenten (alles optional):
- source
- Seite mit JSON-Quelltext gemäß Datenstruktur als Projekt-Vorgabe
- date
- Formatierungsschema für Modul:DateTime (string)
- class
- Attribut
class
des umschließenden HTML-Elements (string oder Objekt) - style
- Attribut
style
des umschließenden HTML-Elements (string oder Objekt) - table
- Objekt mit Eigenschaften einer Tabelle (die in einem HTML-Element eingebettet sein kann)
- class
class
(string oder Objekt)- style
style
(string oder Objekt)
- died
- Gestaltung eines „Verstorben“-Symbols (string)
- process
- Objekt mit Definitionen für externe Weiterverarbeitung
- In
#account#process:
ID wird die Komponente ID dieses Objekts angegeben. - Das Objekt hat folgende Komponenten:
- transclude
- Name einer einzubindenden Seite (string)
- nick
- Name des Parameters, der das Benutzerkonto aufnimmt (string)
- groups
true
– alle Gruppen-Bezeichner des aktuellen Benutzerkontos mit dem Wert1
angeben
- i18n
- Objekt mit Lokalisierungen
- Die Bezeichner der Komponenten sind Schlüsselwörter für Textfragmente.
- Zugewiesen wird jedem Bezeichner ein Lokalisierungs-Objekt.
- Ein Lokalisierungs-Objekt weist einem oder mehreren Sprachcodes das jeweilige Textfragment (string) zu.
Statt einer Zeichenkette string kann jeweils auch false
zugewiesen werden – der Bezeichner der Komponente bleibt als Merkhilfe stehen.
Verwendung
[Quelltext bearbeiten]Funktionen für Lua-Module
[Quelltext bearbeiten]Die oben dokumentierten Funktionen können auch über require()
in andere Module eingebunden werden:
local lucky, UserGroups = pcall( require, "Module:UserGroups" )
if type( UserGroups ) == "table" then
UserGroups = UserGroups()
else
-- Fehlerfall; UserGroups enthält Fehlermeldung
return "<span class=\"error\">" .. UserGroups .. "</span>"
end
Danach stehen zur Verfügung:
- UserGroups.f( arglist )
- Rückgabewert: number oder string oder
mw.html
oderfalse
- UserGroups.failsafe( atleast )
- Versionsbezeichnung
- Rückgabewert: string oder
false