Zuletzt bearbeitet vor 21 Stunden
von Xineohp1506

Publikation

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