Modul:UIBox
Dokumentation für Modul:UIBox Bearbeiten
Dieses Modul stellt die semantische Steuerlogik für verschiedene Boxentypen im Wikonia-System bereit.
Es bildet die Mittelschicht zwischen Vorlagen wie {{Hinweisbox}} und dem eigentlichen Renderingmodul Modul:UI.
Ziel ist eine strukturierte, kontrollierte Verwendung von Layouts, Typen und Prioritäten, um ein konsistentes UI-Verhalten sicherzustellen.
Funktionen Bearbeiten
hinweis(frame) Bearbeiten
Rendert eine klassische Hinweisbox für den Seiteninhalt, z. B. redaktionelle Hinweise oder Meta-Informationen.
Standardwerte:
layout:notetype:infoicon:Infobox info icon2.svgtitle: „Hinweis“
baustein(frame) Bearbeiten
Rendert eine Wartungs-/Relevanz-/Formatierungsbox, wie sie in der Inhaltsverwaltung verwendet wird.
Standardwerte:
layout:frametype:wartungicon:Icon Maintenance.svgtitle: „Wartung“
Unterstützte Parameter (für alle Funktionen) Bearbeiten
| Name | Beschreibung |
|---|---|
typ |
Setzt die semantische Farbklasse (z. B. info, wartung, error)
|
prio |
Prioritätsklasse (niedrig, mittel, hoch, kritisch) – wirkt auf Farbstil & Darstellung
|
titel |
Überschrift der Box (kann Standard überschreiben) |
text |
Hauptinhalt der Box (Pflichtfeld) |
kommentar |
Optionaler Zusatzbereich |
link |
Weiterführender Link oder Verweis |
signatur |
Angabe zu Autor / Quelle / Zeit |
icon |
Optionales Override für das Symbolbild |
klasse |
Zusätzliche CSS-Klassen |
id |
Anker-ID für gezielte Verlinkung |
Technischer Aufbau Bearbeiten
- Dieses Modul ruft Modul:UI auf und übergibt eine strukturierte Argumentliste.
- Die Klasse
wikonia-box--layout-*wird je nach Funktion gesetzt. wikonia-box--prio-*wird automatisch auspriogeneriert.
Siehe auch Bearbeiten
- Modul:UI – Basismodul zur HTML-Ausgabe
- Vorlage:Hinweisbox – Anwendung der Funktion
hinweis() - Vorlage:Bausteinbox – Anwendung der Funktion
baustein()
-- Modul:UIBox – Zentrale Semantikschicht für verschiedene Boxentypen
-- Dieses Modul stellt spezialisierte Funktionsaufrufe für redaktionelle, technische und systemische Boxen bereit.
-- Es nutzt das Rendering-Modul [[Modul:UI]] zur strukturierten HTML-Ausgabe.
local p = {}
local ui = require("Modul:UI")
local getArgs = require("Modul:Arguments").getArgs
-- Hinweisbox: Leserhinweise, redaktionelle Notizen
function p.hinweis(frame)
local args = getArgs(frame)
local boxArgs = {
type = args.typ or "info",
class = table.concat({ "wikonia-box--layout-note", args.klasse or "" }, " "):gsub("^%s*(.-)%s*$", "%1"),
id = args.id,
icon = args.icon or "Infobox info icon2.svg",
title = args.titel or "Hinweis",
content = args.text or args[1] or "''(kein Inhalt angegeben)''",
comment = args.kommentar,
link = args.link,
signature = args.signatur
}
local prio = (args.prio or "mittel"):lower()
if prio == "niedrig" or prio == "mittel" or prio == "hoch" or prio == "kritisch" then
boxArgs.class = boxArgs.class .. " wikonia-box--prio-" .. prio
end
return ui.box(boxArgs)
end
-- Hilfebox: kleine unterstützende Hinweise, z. B. im Hilfebereich
function p.hilfe(frame)
local args = getArgs(frame)
local boxArgs = {
type = "hilfe", -- immer eigene Farbwelt
class = table.concat({ "wikonia-box--layout-note", args.klasse or "" }, " "):gsub("^%s*(.-)%s*$", "%1"),
id = args.id,
icon = args.icon or "OOjs UI icon lightbulb-yellow", -- z. B. Glühbirne für Tipps
title = args.titel or "Tipp",
content = args.text or args[1] or "''(kein Inhalt angegeben)''",
comment = args.kommentar,
link = args.link,
signature = args.signatur
}
boxArgs.class = boxArgs.class .. " wikonia-box--prio-niedrig"
return ui.box(boxArgs)
end
-- Projektbox: Projektinhalte, z. B. im Hilfebereich
function p.projekt(frame)
local args = getArgs(frame)
local boxArgs = {
type = "projekt", -- immer eigene Farbwelt
class = table.concat({ "wikonia-box--layout-note", args.klasse or "" }, " "):gsub("^%s*(.-)%s*$", "%1"),
id = args.id,
icon = args.icon or "Wikonia Signet.png", -- z. B. Wikonia Icon
title = args.titel or "",
content = args.text or args[1] or "''(kein Inhalt angegeben)''",
comment = args.kommentar,
link = args.link,
signature = args.signatur
}
boxArgs.class = boxArgs.class .. " wikonia-box--prio-niedrig"
return ui.box(boxArgs)
end
-- Bausteinbox: Wartung, Relevanz, Formatierung
function p.baustein(frame)
local args = getArgs(frame)
local boxArgs = {
type = args.typ or "wartung",
class = table.concat({ "wikonia-box--layout-frame", args.klasse or "" }, " "):gsub("^%s*(.-)%s*$", "%1"),
id = args.id,
icon = args.icon or "Icon Maintenance.svg",
title = args.titel or "Wartung",
content = args.text or args[1] or "''(kein Inhalt angegeben)''",
comment = args.kommentar,
link = args.link,
signature = args.signatur
}
local prio = (args.prio or "mittel"):lower()
if prio == "niedrig" or prio == "mittel" or prio == "hoch" or prio == "kritisch" then
boxArgs.class = boxArgs.class .. " wikonia-box--prio-" .. prio
end
return ui.box(boxArgs)
end
-- Systembox: technische Fehler, Sperren, kritische Infos
function p.system(frame)
local args = getArgs(frame)
local boxArgs = {
type = args.typ or "error",
class = table.concat({ "wikonia-box--layout-firm", args.klasse or "" }, " "):gsub("^%s*(.-)%s*$", "%1"),
id = args.id,
icon = args.icon or "OOjs UI icon alert-destructive.svg",
title = args.titel or "Systemmeldung",
content = args.text or args[1] or "''(kein Inhalt angegeben)''",
comment = args.kommentar,
link = args.link,
signature = args.signatur
}
local prio = (args.prio or "hoch"):lower()
if prio == "niedrig" or prio == "mittel" or prio == "hoch" or prio == "kritisch" then
boxArgs.class = boxArgs.class .. " wikonia-box--prio-" .. prio
end
return ui.box(boxArgs)
end
-- Ausgabe/Return
return p