Zuletzt bearbeitet vor 2 Stunden
von Xineohp1506

Modul:Publikation/Helper: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:
local getArgs = require('Module:Arguments').getArgs
local getArgs = require('Module:Arguments').getArgs


-- Funktion zur Extraktion des Seitentitels einer Serie
-- Funktion zum holen des Seitentitels mithilfe der Serien-ID
function helper.getSeriesPageTitle(seriesID)
function helper.getSeriesPageTitle(frame)
     if not mw.smw then
     if not mw.smw then
         return "Semantic MediaWiki-Erweiterung nicht gefunden."
         return "Semantic MediaWiki-Erweiterung nicht gefunden."
     end
     end


     local query = "[[SerienID::" .. seriesID .. "]]|limit=1"
     local queryResult = mw.smw.getQueryResult(frame.args)
    local result = mw.smw.getQueryResult({query = query})


     if not result or not result.results or not result.results[1] then
    -- Kein Ergebnis gefunden
         return "Keine Serienseite gefunden."
     if not queryResult or not queryResult.results or not queryResult.results[1] then
         return "Keine Ergebnisse gefunden."
     end
     end


     return result.results[1].fulltext
     -- Seitentitel extrahieren
    local results = queryResult.results
    if results[1].fulltext then
        return results[1].fulltext
    else
        return "Kein Seitentitel gefunden."
    end
end
end


-- Funktion zur Extraktion der Gesamtbände einer Serie anhand des Seitentitels
-- Funktion zur Extraktion der Gesamtbände aus der Serienseite
function helper.getCompleteVolumesByTitle(seriesPageTitle)
function helper.getCompleteVolumesByTitle(frame)
     if not mw.smw then
     if not mw.smw then
         return "Semantic MediaWiki-Erweiterung nicht gefunden."
         return "Semantic MediaWiki-Erweiterung nicht gefunden."
     end
     end


     local query = "[[" .. seriesPageTitle .. "]]|?Complete volumes|limit=1"
    local page = frame.args[1]  -- Seitentitel
    local attribute = frame.args[2]  -- Attributname
 
    -- Überprüfen, ob die erforderlichen Parameter vorhanden sind
    if not page or not attribute then
        return "Seite oder Attribut nicht angegeben."
    end
 
    -- Abfrage erstellen
     local query = "[[" .. page .. "]]|?" .. attribute .. "|limit=1"
     local result = mw.smw.ask(query)
     local result = mw.smw.ask(query)


    -- Kein Ergebnis gefunden
     if not result then
     if not result then
         return "Keine Ergebnisse gefunden."
         return "Keine Ergebnisse gefunden."
     end
     end


    -- Ergebnis verarbeiten
     for title, data in pairs(result) do
     for title, data in pairs(result) do
         if data["Complete volumes"] then
         if data[attribute] then
             return tostring(data["Complete volumes"])
             return tostring(data[attribute])
         end
         end
     end
     end


     return "Keine Gesamtbände gefunden."
     return "Attribut nicht gefunden."
end
end


return helper
return helper

Version vom 22. November 2024, 19:24 Uhr

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

local helper = {}
local getArgs = require('Module:Arguments').getArgs

-- Funktion zum holen des Seitentitels mithilfe der Serien-ID
function helper.getSeriesPageTitle(frame)
    if not mw.smw then
        return "Semantic MediaWiki-Erweiterung nicht gefunden."
    end

    local queryResult = mw.smw.getQueryResult(frame.args)

    -- Kein Ergebnis gefunden
    if not queryResult or not queryResult.results or not queryResult.results[1] then
        return "Keine Ergebnisse gefunden."
    end

    -- Seitentitel extrahieren
    local results = queryResult.results
    if results[1].fulltext then
        return results[1].fulltext
    else
        return "Kein Seitentitel gefunden."
    end
end

-- Funktion zur Extraktion der Gesamtbände aus der Serienseite
function helper.getCompleteVolumesByTitle(frame)
    if not mw.smw then
        return "Semantic MediaWiki-Erweiterung nicht gefunden."
    end

    local page = frame.args[1]  -- Seitentitel
    local attribute = frame.args[2]  -- Attributname

    -- Überprüfen, ob die erforderlichen Parameter vorhanden sind
    if not page or not attribute then
        return "Seite oder Attribut nicht angegeben."
    end

    -- Abfrage erstellen
    local query = "[[" .. page .. "]]|?" .. attribute .. "|limit=1"
    local result = mw.smw.ask(query)

    -- Kein Ergebnis gefunden
    if not result then
        return "Keine Ergebnisse gefunden."
    end

    -- Ergebnis verarbeiten
    for title, data in pairs(result) do
        if data[attribute] then
            return tostring(data[attribute])
        end
    end

    return "Attribut nicht gefunden."
end

return helper