Das Modul dient zur Darstellung verschiedener Publikationstypen in einer einheitlichen Form. Es verwendet Submodule für spezifische Publikationstypen.
Verwendung
Das Modul wird über die Vorlage `Empfangene Argumente:
table#1 { metatable = table#2 ["Ausgabe"] = "", ["Autor"] = "", ["Band"] = "", ["Bände"] = "", ["Coverbild"] = "", ["Datensatz ID"] = "", ["Erscheinungsjahr"] = "", ["Genre"] = "", ["Hat Serie"] = "", ["ISBN-10"] = "", ["ISBN-13"] = "", ["ISSN"] = "", ["Inhaltszusammenfassung"] = "", ["Jahrgang"] = "", ["Mangaka"] = "", ["Original Titel"] = "", ["Preis"] = "", ["Publikationswerk"] = "", ["Seitenzahl"] = "", ["SerienID"] = "", ["Sprache"] = "", ["Standort"] = "", ["Titel"] = "", ["Typ"] = "", ["Umfang"] = "", ["Verlag"] = "", }
Publikationstyp: Unbekannter Publikationstyp:
` aufgerufen. Der Typ der Publikation wird durch den Parameter `Typ` definiert. Basierend auf diesem Parameter wird das entsprechende Submodul verwendet.
Syntax
{{Publikation | Typ = <Publikationstyp> | Titel = <Titel der Publikation> | Autor = <Autor(en)> | Weitere Parameter abhängig vom Publikationstyp... }}
Unterstützte Publikationstypen
Das Modul unterstützt die folgenden Publikationstypen:
Buch
Das Submodul `Modul:Publikation/Buch` wird verwendet, um Bücher darzustellen.
Parameter:
- `Titel`: Der Titel des Buches.
- `Autor`: Autor(en), kommasepariert bei mehreren.
- `Band`: Bandnummer, falls es Teil einer Serie ist.
- `SerienID`: Eine eindeutige ID für die Serie.
- `Verlag`: Der Verlag des Buches.
- `ISBN-10` / `ISBN-13`: ISBN-Nummern.
- `Sprache`: Sprache des Buches.
- `Standort`: Standort im Regal.
- `Umfang`: Seitenanzahl.
- `Inhaltszusammenfassung`: Eine kurze Beschreibung des Buchinhalts.
Manga
Das Submodul `Modul:Publikation/Manga` wird für Manga verwendet.
Parameter:
- `Titel`: Der Titel des Manga.
- `Mangaka`: Der/die Mangaka (Zeichner).
- `Band`: Bandnummer.
- `SerienID`: Eine eindeutige ID für die Serie.
- `Genre`: Genre(s), kommasepariert.
Artikel
Das Submodul `Modul:Publikation/Artikel` dient zur Darstellung von Artikeln aus anderen Werken.
Parameter:
- `Titel`: Titel des Artikels.
- `Autor`: Autor(en) des Artikels.
- `Publikationswerk`: Name des Werks, in dem der Artikel veröffentlicht wurde.
- `Seitenzahl`: Seitenanzahl des Artikels.
Zeitschrift
Das Submodul `Modul:Publikation/Zeitschrift` wird für Zeitschrifteneinträge genutzt.
Parameter:
- `Titel`: Titel der Zeitschrift.
- `Jahrgang`: Jahrgang der Zeitschrift.
- `Ausgabe`: Ausgabennummer.
- `ISSN`: ISSN-Nummer.
Erweiterbarkeit
Falls weitere Publikationstypen hinzugefügt werden sollen, kann dies durch ein neues Submodul erfolgen. Dieses Submodul sollte die Funktion `render(frame)` implementieren.
Beispiele
Buch
{{Publikation | Typ = Buch | Titel = Das Reich der Vampire: A Tale of Blood and Darkness | Autor = Jay Kristoff | Band = 1 | SerienID = 001 }}
Manga
{{Publikation | Typ = Manga | Titel = One Piece | Mangaka = Eiichiro Oda | Band = 101 | SerienID = 002 }}
Entwicklerhinweise
Das Modul verwendet die Submodule:
- `Modul:Publikation/Buch`
- `Modul:Publikation/Manga`
- `Modul:Publikation/Artikel`
- `Modul:Publikation/Zeitschrift`
- `Modul:Publikation/Helper` (gemeinsame Hilfsfunktionen)
- `Modul:Publikation/Related` (Verknüpfte Publikationen)
local getArgs = require('Module:Arguments').getArgs
local p = {}
-- Hauptfunktion zum Rendern der Publikation, abhängig vom Typ
function p.generatePublication(frame)
local args = frame.args
local typ = args["Typ"] or "Unbekannt"
local debugOutput = "Empfangene Argumente:\n<pre>" .. mw.dumpObject(args) .. "</pre>\n"
debugOutput = debugOutput .. "Publikationstyp: " .. typ .. "\n"
-- Routing zu den entsprechenden Submodulen basierend auf dem Typ
if typ == "Buch" then
local buchModule = require("Modul:Publikation/Buch")
debugOutput = debugOutput .. "Aufruf Modul:Publikation/Buch...\n"
local result = buchModule.render(frame)
return debugOutput .. result
elseif typ == "Manga" then
local mangaModule = require("Modul:Publikation/Manga")
debugOutput = debugOutput .. "Aufruf Modul:Publikation/Manga...\n"
local result = mangaModule.render(frame)
return debugOutput .. result
elseif typ == "Artikel" then
local artikelModule = require("Modul:Publikation/Artikel")
debugOutput = debugOutput .. "Aufruf Modul:Publikation/Artikel...\n"
local result = artikelModule.render(frame)
return debugOutput .. result
elseif typ == "Zeitschrift" then
local zeitschriftModule = require("Modul:Publikation/Zeitschrift")
debugOutput = debugOutput .. "Aufruf Modul:Publikation/Zeitschrift...\n"
local result = zeitschriftModule.render(frame)
return debugOutput .. result
else
return debugOutput .. "Unbekannter Publikationstyp: " .. typ
end
end
return p