Zuletzt bearbeitet vor 2 Tagen
von Xineohp1506

Modul:Publikation/Serie: Unterschied zwischen den Versionen

(Die Seite wurde neu angelegt: „local p = {} -- Funktion zur Anzeige der zugehörigen Bücher basierend auf der Serie function p.renderRelatedBooks(frame) local args = frame.args local series = args["Hat Serie"] if not series or series == "" then return "Keine Serie definiert." end -- Abfrage der Bücher, die zur Serie gehören local query = mw.smw.ask { "Hat Serie::" .. series .. "", "?Titel", "?Autor", "?Erscheinung…“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
local p = {}
local serie = {}


-- Funktion zur Anzeige der zugehörigen Bücher basierend auf der Serie
function serie.render(args)
function p.renderRelatedBooks(frame)
     local output = '<table class="publikation serie">'
     local args = frame.args
 
     local series = args["Hat Serie"]
    -- Titel
     if not series or series == "" then
     output = output .. '<tr><td><strong>Titel</strong></td><td>[[Hat Titel::' .. (args["Titel"] or "Unbekannt") .. ']]</td></tr>'
         return "Keine Serie definiert."
 
    -- Autor(en)
     if args["Autor"] then
         output = output .. '<tr><td><strong>Autor(en)</strong></td><td>'
        for author in mw.text.gsplit(args["Autor"], ",") do
            output = output .. '[[Hat Autor::' .. author .. ']], '
        end
        output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
     end
     end


     -- Abfrage der Bücher, die zur Serie gehören
     -- Gesamtbände
     local query = mw.smw.ask {
     output = output .. (args["Gesamtbände"] and '<tr><td><strong>Gesamtbände</strong></td><td>[[Gesamtbände::' .. args["Gesamtbände"] .. ']]</td></tr>' or "")
        "[[Hat Serie::" .. series .. "]]",
 
        "?Titel",
    -- Serienbeschreibung
        "?Autor",
    output = output .. (args["Hat SerienBeschreibung"] and '<tr><td><strong>Beschreibung</strong></td><td>' .. args["Hat SerienBeschreibung"] .. '</td></tr>' or "")
        "?Erscheinungsjahr",
        "?Band",
        format = "table",
        headers = "plain"
    }


     -- Generiere die Tabelle der Ergebnisse
     -- Datensatz-IDs
     local result = ""
     if args["Hat Datensatz ID"] then
    if query and #query > 0 then
         output = output .. '<tr><td><strong>Datensatz ID(s)</strong></td><td>'
         result = result .. "{| class='wikitable'\n! Titel !! Autor !! Erscheinungsjahr !! Band\n"
         for id in mw.text.gsplit(args["Hat Datensatz ID"], ",") do
         for _, book in ipairs(query) do
             output = output .. '[[Hat Datensatz ID::' .. id .. ']], '
            result = result .. "|-\n| " .. (book.Titel or "Unbekannt")
            result = result .. " || " .. (book.Autor or "Unbekannt")
             result = result .. " || " .. (book.Erscheinungsjahr or "Unbekannt")
            result = result .. " || " .. (book.Band or "Unbekannt") .. "\n"
         end
         end
         result = result .. "|}"
         output = output:sub(1, -3) .. '</td></tr>'
    else
        result = "Keine zugehörigen Bücher gefunden."
     end
     end


     return result
    output = output .. '</table>'
     return output
end
end


return p
return serie

Version vom 19. November 2024, 22:23 Uhr

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

local serie = {}

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

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

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

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

    -- Serienbeschreibung
    output = output .. (args["Hat SerienBeschreibung"] and '<tr><td><strong>Beschreibung</strong></td><td>' .. args["Hat SerienBeschreibung"] .. '</td></tr>' or "")

    -- Datensatz-IDs
    if args["Hat Datensatz ID"] then
        output = output .. '<tr><td><strong>Datensatz ID(s)</strong></td><td>'
        for id in mw.text.gsplit(args["Hat Datensatz ID"], ",") do
            output = output .. '[[Hat Datensatz ID::' .. id .. ']], '
        end
        output = output:sub(1, -3) .. '</td></tr>'
    end

    output = output .. '</table>'
    return output
end

return serie