Modul:Wirkungsorte

Aus MAV
Wechseln zu: Navigation, Suche

Referenzseite

Funktion

Erstellt eine chronologische Liste aller Wirkungsorte für Personenseiten für die Darstellung auf einer Karte. Dazu werden kombiniert:

  1. Attribut Geburtsort mit Geburtsdatum
  2. Attribut Sterbeort mit Sterbedatum
  3. die subobjects Ausbildung, Abschluss, Ereignis, Tätigkeit und Vorlesung

Wir generieren / fragen nach folgenden Attributen, die dargestellt werden sollen:

  • Beschreibungstext
  • Geographikum
  • Koordinaten

TODO

  • Übergeben werden müssen Geburtsort, Geburtsdatum, Sterbeort, Sterbedatum

Bitte nach folgendem Schema aufrufen

{{#invoke:Wirkungsorte|abfragen|{{SUBPAGENAME}}|{{{Geburtsort|}}}|{{{Geburtsdatum|}}}|{{{Sterbeort|}}}|{{{Sterbedatum|}}}}}

-- Wir erstellen die table, die wir zurückgeben wollen
local p = {}

-- Die Funktion fehler ist eine reine Testfunktion, die wir nachher nicht mehr 
-- verwenden wollen
function p.fehler( frame )
    return "Keine Wirkungsorte gefunden! "..frame.args[1]
end

-- Wir fragen nach dem Geburtsort
-- Beispielcall: '[[Modification date::+]]|?#-=page|?Modification date|?Last editor is=editor|?page author=authors|limit=2|mainlabel=-'
function p.ask(frame)

    if not mw.smw then
        return "mw.smw module not found"
    end

    if frame.args[1] == nil then
        return "no parameter found"
    end

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

    if queryResult == nil then
        return "(no values)"
    end

    if type( queryResult ) == "table" then
        local myResult = ""
        for num, row in pairs( queryResult ) do
            myResult = myResult .. '* This is result #' .. num .. '\n'
            for property, data in pairs( row ) do
                local dataOutput = data
                if type( data ) == 'table' then
                    dataOutput = mw.text.listToText( data, ', ', ' and ')
                end
                myResult = myResult .. '** ' .. property .. ': ' .. dataOutput .. '\n'
            end
        end
        return myResult
    end
	
	myResult = myResult .. '{{#ask:[[Kategorie:Ausbildung]]}}'
    return myResult
end

-- Table wird ausgegeben
return p