Zuletzt bearbeitet vor 27 Minuten
von Xineohp1506

Buch

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

local buch = {}

-- Vereinfachte Debugging-Funktion
local function getSeriesPages(seriesTitle)
    if not seriesTitle or seriesTitle == "" then
        return nil, "Kein Serienname angegeben."
    end

    -- Korrekte semantische Syntax
    local queryData = {
        query = "[[Hat Titel::" .. seriesTitle .. "]]",  -- Semantische Bedingung
        limit = 1
    }
    local result = mw.smw.getQueryResult(queryData)

    local debugOutput = "Abfrage: " .. mw.text.jsonEncode(queryData) .. "\n"

    if result and result.results and next(result.results) then
        for _, data in pairs(result.results) do
            debugOutput = debugOutput .. "Ergebnisse: " .. mw.text.jsonEncode(data) .. "\n"
            return data.fulltext, debugOutput
        end
    end
    debugOutput = debugOutput .. "Keine Ergebnisse gefunden.\n"
    return nil, debugOutput
end


-- Hauptfunktion zur Darstellung der Buchinformationen
function buch.render(args, main)
    local output = '<table class="publikation buch">'

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

    -- Debugging der Serie
    if args["Hat Serie"] then
        local seriesPage, debugInfo = getSeriesPages(args["Hat Serie"])
        output = output .. '<tr><td colspan="2"><pre>' .. debugInfo .. '</pre></td></tr>'
    end

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

return buch