Zuletzt bearbeitet vor 3 Monaten
von Xineohp1506

Manga

Die Dokumentation für dieses Modul kann unter Modul:Publikation/Manga/Doku erstellt werden

local getArgs = require('Module:Arguments').getArgs
local helper = require("Modul:Publikation/Helper")
local related = require("Modul:Publikation/Related")
local manga = {}

function manga.render(frame)
    local args = frame.args
    local output = '<table class="publikation manga">'

    -- Coverbild
    output = output .. '<tr><td colspan="2" style="text-align: center;">' .. helper.getCoverImage({cover = args["Coverbild"], defaultCover = "Library:Cover:DefaultMangaCover.webp"}) .. '</td></tr>'

    -- Titel
    output = output .. '<tr><td><strong>Titel</strong></td><td>[[Hat Titel::' .. (args["Titel"] or "Unbekannt") .. ']]</td></tr>'

    -- Mangaka (Mehrfachwerte)
    if args["Mangaka"] then
        output = output .. '<tr><td><strong>Mangaka</strong></td><td>'
        for artist in mw.text.gsplit(args["Mangaka"], ",") do
            output = output .. '[[Hat Mangaka::' .. mw.text.trim(artist) .. ']], '
        end
        output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
    end

    -- Zeichenstudio
    output = output .. (args["Zeichenstudio"] and '<tr><td><strong>Zeichenstudio</strong></td><td>[[Zeichenstudio::' .. args["Zeichenstudio"] .. ']]</td></tr>' or "")

    -- Kapitel
    output = output .. (args["Kapitel"] and '<tr><td><strong>Kapitel</strong></td><td>[[Kapitel::' .. args["Kapitel"] .. ']]</td></tr>' or "")

    -- Band und Serie
    if args["Band"] then
        local seriesID = args["SerienID"]
        local bandText = args["Band"]
        helper.setProperty({ args = { ["Band"] = args["Band"] } }) -- Semantischen Wert setzen

        if seriesID then
            local seriesPageTitle = helper.getSeriesPageTitle({ args = { SerienID = seriesID } })
            local completeVolumes = "Keine Ergebnisse gefunden."

            if seriesPageTitle ~= "Keine Ergebnisse gefunden." then
                completeVolumes = helper.getCompleteVolumesByTitle({ args = { seriesPageTitle, "Complete volumes" } })
            end

            bandText = bandText .. " von " .. (completeVolumes or "?") .. ' ([[' .. mw.uri.anchorEncode(seriesPageTitle) .. '|' .. (args["Hat Serie"] or "Serie") .. "]])"
        end
        output = output .. '<tr><td><strong>Band</strong></td><td>' .. bandText .. '</td></tr>'
    end

    -- Sprache
    output = output .. (args["Sprache"] and '<tr><td><strong>Sprache</strong></td><td>[[Sprache::' .. args["Sprache"] .. ']]</td></tr>' or "")

    -- Standort
    output = output .. (args["Standort"] and '<tr><td><strong>Standort</strong></td><td>[[Standort::' .. args["Standort"] .. ']]</td></tr>' or "")

    -- Verlag
    output = output .. (args["Verlag"] and '<tr><td><strong>Verlag</strong></td><td>[[Verlag::' .. args["Verlag"] .. ']]</td></tr>' or "")

    -- Erscheinungsjahr
    output = output .. (args["Erscheinungsjahr"] and '<tr><td><strong>Erscheinungsjahr</strong></td><td>[[Erscheinungsjahr::' .. args["Erscheinungsjahr"] .. ']]</td></tr>' or "")

    -- ISBN
    if args["ISBN-10"] or args["ISBN-13"] then
        local isbn10 = helper.getIsbnLink({isbn = args["ISBN-10"], version = "ISBN-10"})
        local isbn13 = helper.getIsbnLink({isbn = args["ISBN-13"], version = "ISBN-13"})
        output = output .. '<tr><td><strong>ISBN</strong></td><td>' .. isbn10 .. (isbn10 ~= "" and isbn13 ~= "" and " / " or "") .. isbn13 .. '</td></tr>'
    end

    -- Preis
    output = output .. (args["Preis"] and '<tr><td><strong>Preis</strong></td><td>[[Preis::' .. args["Preis"] .. ']]</td></tr>' or "")

    -- Umfang
    output = output .. (args["Umfang"] and '<tr><td><strong>Umfang</strong></td><td>[[Umfang::' .. args["Umfang"] .. ']] Seiten</td></tr>' or "")

    -- Datensatz ID
    output = output .. (args["Datensatz ID"] and '<tr><td><strong>Datensatz ID</strong></td><td>[https://d-nb.info/' .. args["Datensatz ID"] .. ' ' .. args["Datensatz ID"] .. ']</td></tr>' or "")

    output = output .. '</table>'

    -- Zusätzliche Kategorien
    output = output .. helper.addCategories({
        "Alle Publikationen",
        "Mangas",
        args["Hat Serie"] and "Serie:" .. args["Hat Serie"] or nil
    })

    return output
end

return manga