Modul: Wirkungsorte: Unterschied zwischen den Versionen

Aus MAV
Wechseln zu: Navigation, Suche
Die Seite wurde neu angelegt: „-- Referenzseite: https://github.com/SemanticMediaWiki/SemanticScribunto/blob/master/docs/mw.smw.ask.md -- Erstellt eine chronologische Liste aller Wirkungsort…“
 
Keine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
-- Referenzseite: https://github.com/SemanticMediaWiki/SemanticScribunto/blob/master/docs/mw.smw.ask.md
-- 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
-- Vorbild ist die Parserfunktion: Wir generieren / fragen nach folgenden Texten, die dargestellt werden sollen
-- Beschreibungstext
-- Geographikum
-- Koordinaten
-- Aufruf erfolgt durch {{#invoke:Wirkungsorte|SEITENNAME}}
-- Wir erstellen die table, die wir zurückgeben wollen
-- Wir erstellen die table, die wir zurückgeben wollen
local p = {}
local p = {}


-- Die Funktion fehler ist eine reine Testfunktion, die wir nachher nicht mehr
-- Wir fragen nach Geburtsort+Geburtsdatum, dann nach den Wirkunsorten, anschließend nach Sterbeort und Sterbedatum
-- verwenden wollen
function p.abfragen ( frame )
function p.fehler( frame )
    return "Keine Wirkungsorte gefunden! "..frame.args[1]
local returntext = 'alle'
end
 
-- Abfrage Geburt
-- Wir fragen nach dem Geburtsort
abfragetext = '[[-Geburtsort::' .. frame.args[1] .. ']]|link=none'
-- Beispielcall: '[[Modification date::+]]|?#-=page|?Modification date|?Last editor is=editor|?page author=authors|limit=2|mainlabel=-'
local abfrage = mw.smw.getQueryResult( abfragetext )
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]]}}'
    if abfrage == nil then
     return myResult
        returntext = ''
    else
    returntext = type( queryResult )
    end
   
     return returntext
end
end


-- Table wird ausgegeben
-- Table wird ausgegeben
return p
return p

Aktuelle Version vom 15. März 2023, 16:08 Uhr

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 = {}

-- Wir fragen nach Geburtsort+Geburtsdatum, dann nach den Wirkunsorten, anschließend nach Sterbeort und Sterbedatum
function p.abfragen ( frame )
	
	local returntext = 'alle'
	
	-- Abfrage Geburt
	abfragetext = '[[-Geburtsort::' .. frame.args[1] .. ']]|link=none'
	local abfrage = mw.smw.getQueryResult( abfragetext )
	
    if abfrage == nil then
        returntext = ''
    else
    	returntext = type( queryResult )
    end 
    
    return returntext
end

-- Table wird ausgegeben
return p