Modul:Ahnentafel: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 9: | Zeile 9: | ||
.." OR <q>[[Traviabund mit::"..person["Mutter ist"].."]] [[Traviabund mit Partner::"..person["Vater ist"].."]]</q>" | .." OR <q>[[Traviabund mit::"..person["Mutter ist"].."]] [[Traviabund mit Partner::"..person["Vater ist"].."]]</q>" | ||
.."format=count") | .."format=count") | ||
return | return travia | ||
end | end | ||
Version vom 10. Oktober 2024, 15:03 Uhr
Dokumentation und Testfälle unter Modul:Ahnentafel/Doku.
require("Modul:Hilfsfunktionen") require("Modul:Text") local p = {} --hole die Daten zum Traviabund der Eltern function holeTraviabund(person) local travia=mw.smw.ask("{{#ask:<q>[[Traviabund mit::"..person["Vater ist"].."]] [[Traviabund mit Partner::"..person["Mutter ist"].."]]</q>" .." OR <q>[[Traviabund mit::"..person["Mutter ist"].."]] [[Traviabund mit Partner::"..person["Vater ist"].."]]</q>" .."format=count") return travia end --hole die Anzahl Geschwister inklusive Halbgeschwister function holeAnzahlGeschwister(person) local anzahl=mw.smw.ask("{{#ask: <q>[[Vater ist::"..person["Vater ist"].."]] OR [[Mutter ist::"..person["Mutter ist"].."]]</q>" .."|format=count") if anzahl==1 then return "" end return "("..(anzahl-1).." Geschwister)" end --Hole Eltern und Infos einer Person function holeElternInfos(artikel) local infos=mw.smw.ask("{{#ask: [["..artikel.."]]" .."|?#-=Artikel" .."|?Mutter ist#" .."|?Vater ist#" .."|?Bild ist#" .."|?Wappen ist#" .."|?Lehenswappen ist#" .."|?Mitgliedswappen ist#" .."|?Langname#" .."|?Tsatag Text#" .."|?Borontag Text#" .."|limit=1" .."|offset=0" .."|searchlabel=") if infos==nil or infos[1]==nil or infos[1]["Bild ist"]==nil then return { ["Artikel"]=artikel, ["Mutter ist"]="", ["Vater ist"]="", ["Bild ist"]="Datei:Bild blanko.svg", ["Wappen ist"]="Datei:Wappen blanko.svg", ["Lehenswappen ist"]="Datei:Wappen blanko.svg", ["Mitgliedswappen ist"]="Datei:Wappen blanko.svg", ["Langname"]=artikel, ["Tsatag Text"]="", ["Borontag Text"]="", } else return { ["Artikel"]=artikel, ["Mutter ist"]=robusttrim(infos[1]["Mutter ist"]), ["Vater ist"]=robusttrim(infos[1]["Vater ist"]), ["Bild ist"]=robusttrim(infos[1]["Bild ist"]), ["Wappen ist"]=robusttrim(infos[1]["Wappen ist"]), ["Lehenswappen ist"]=robusttrim(infos[1]["Lehenswappen ist"]), ["Mitgliedswappen ist"]=robusttrim(infos[1]["Mitgliedswappen ist"]), ["Langname"]=robusttrim(infos[1]["Langname"]), ["Tsatag Text"]=robusttrim(infos[1]["Tsatag Text"]), ["Borontag Text"]=robusttrim(infos[1]["Borontag Text"]), } end end --versteckte Titelzeile, um gleichmäßige Darstellung zu erreichen function zeile0(eintrag) local result="\n|-" for i=1,16,1 do result=result.."\n|class=\"hell\" style=\"width:6%;vertical-align:top;text-align:center;border:1px solid gray;\"|"..eintrag[i] end return result end --Zeile mit den Urgroßeltern function zeile1(eintrag) local result="\n|-" for i=1,8,1 do result=result.."\n|colspan=\"2\" class=\"hell\" " .."style=\"vertical-align:top;text-align:center;border:1px solid gray;\"|" ..eintrag[i] end return result end --Zeile mit den Großeltern function zeile2(eintrag) local result="\n|-" result=result.."\n|style=\"vertical-align:middle;text-align:right;\"|"..eintrag[1] result=result.."\n|colspan=\"2\" class=\"hell\" " .."style=\"vertical-align:top;text-align:center;border:1px solid gray;\"|" ..eintrag[2] result=result.."\n|colspan=\"2\" " .."style=\"vertical-align:middle;text-align:center;\"|"..eintrag[3] result=result.."\n|colspan=\"2\" class=\"hell\" " .."style=\"vertical-align:top;text-align:center;border:1px solid gray;\"|" ..eintrag[4] result=result.."\n|style=\"vertical-align:middle;text-align:left;\"|"..eintrag[5] result=result.."\n|style=\"vertical-align:middle;text-align:right;\"|"..eintrag[6] result=result.."\n|colspan=\"2\" class=\"hell\" " .."style=\"vertical-align:top;text-align:center;border:1px solid gray;\"|" ..eintrag[7] result=result.."\n|colspan=\"2\" " .."style=\"vertical-align:middle;text-align:center;\"|"..eintrag[8] result=result.."\n|colspan=\"2\" class=\"hell\" " .."style=\"vertical-align:top;text-align:center;border:1px solid gray;\"|" ..eintrag[9] result=result.."\n|style=\"vertical-align:middle;text-align:left;\"|"..eintrag[10] return result end --Zeile mit den Eltern function zeile3(eintrag) local result="\n|-" result=result.."\n|colspan=\"2\" style=\"vertical-align:middle;text-align:right;\"|"..eintrag[1] result=result.."\n|colspan=\"4\" class=\"hell\" " .."style=\"vertical-align:top;text-align:center;border:1px solid gray;\"|" ..eintrag[2] result=result.."\n|colspan=\"4\" " .."style=\"vertical-align:middle;text-align:center;\"|"..eintrag[3] result=result.."\n|colspan=\"4\" class=\"hell\" " .."style=\"vertical-align:top;text-align:center;border:1px solid gray;\"|" ..eintrag[4] result=result.."\n|colspan=\"2\" style=\"vertical-align:middle;text-align:left;\"|"..eintrag[5] return result end --Zeile mit den Person function zeile4(eintrag) local result="\n|-" result=result.."\n|colspan=\"4\" style=\"vertical-align:middle;text-align:right;\"|" result=result.."\n|colspan=\"8\" class=\"hell\" " .."style=\"vertical-align:top;text-align:center;border:1px solid gray;\"|" ..eintrag[1] result=result.."\n|colspan=\"4\" style=\"vertical-align:middle;text-align:left;\"|"..eintrag[2] return result end function personEintrag(person) if person==nil then return "" end local wappen2=person["Lehenswappen ist"] if wappen2=="Datei:Wappen blanko.svg" then wappen2=person["Mitgliedswappen ist"] end local result="[["..person["Wappen ist"].."|25x28px|link=]]" .."[["..person["Bild ist"].."|25x28px|link=]]" .."[["..wappen2.."|25x28px|link=]]" .."<br>[["..person["Artikel"].."|"..person["Langname"].."]]" if person["Tsatag Text"]~="" then result=result.."<br>[[Datei:Symbol Tsa-Kirche.svg|15px|link=]]"..person["Tsatag Text"] end if person["Borontag Text"]~="" then result=result.."<br>[[Datei:Symbol Boron-Kirche.svg|15px|link=]]"..person["Borontag Text"] end return result end function personEintragKurz(artikel) if artikel==nil or artikel=="" then return "" end local anzeige=artikel for w in artikel:gmatch("([^:]+)") do anzeige=w end return "[["..artikel.."|"..anzeige.."]]" end --Formatierung der Ausgabe function ausgabe(artikel) local person=holeElternInfos(artikel) local vater=holeElternInfos(person["Vater ist"]) local mutter=holeElternInfos(person["Mutter ist"]) local vatersvater=holeElternInfos(vater["Vater ist"]) local vatersmutter=holeElternInfos(vater["Mutter ist"]) local muttersvater=holeElternInfos(mutter["Vater ist"]) local muttersmutter=holeElternInfos(mutter["Mutter ist"]) local vatersvatersvater=holeElternInfos(vatersvater["Vater ist"]) local vatersvatersmutter=holeElternInfos(vatersvater["Mutter ist"]) local vatersmuttersvater=holeElternInfos(vatersmutter["Vater ist"]) local vatersmuttersmutter=holeElternInfos(vatersmutter["Mutter ist"]) local muttersvatersvater=holeElternInfos(muttersvater["Vater ist"]) local muttersvatersmutter=holeElternInfos(muttersvater["Mutter ist"]) local muttersmuttersvater=holeElternInfos(muttersmutter["Vater ist"]) local muttersmuttersmutter=holeElternInfos(muttersmutter["Mutter ist"]) local result='{| style="font-size:0.8em;width:100%;background:transparent;border:none;"' result=result..zeile0({ [1]=personEintragKurz(vatersvatersvater["Vater ist"]), [2]=personEintragKurz(vatersvatersvater["Mutter ist"]), [3]=personEintragKurz(vatersvatersmutter["Vater ist"]), [4]=personEintragKurz(vatersvatersmutter["Mutter ist"]), [5]=personEintragKurz(vatersmuttersvater["Vater ist"]), [6]=personEintragKurz(vatersmuttersvater["Mutter ist"]), [7]=personEintragKurz(vatersmuttersmutter["Vater ist"]), [8]=personEintragKurz(vatersmuttersmutter["Mutter ist"]), [9]=personEintragKurz(muttersvatersvater["Vater ist"]), [10]=personEintragKurz(muttersvatersvater["Mutter ist"]), [11]=personEintragKurz(muttersvatersmutter["Vater ist"]), [12]=personEintragKurz(muttersvatersmutter["Mutter ist"]), [13]=personEintragKurz(muttersmuttersvater["Vater ist"]), [14]=personEintragKurz(muttersmuttersvater["Mutter ist"]), [15]=personEintragKurz(muttersmuttersmutter["Vater ist"]), [16]=personEintragKurz(muttersmuttersmutter["Mutter ist"]), }) result=result..zeile1({ [1]=personEintrag(vatersvatersvater), [2]=personEintrag(vatersvatersmutter), [3]=personEintrag(vatersmuttersvater), [4]=personEintrag(vatersmuttersmutter), [5]=personEintrag(muttersvatersvater), [6]=personEintrag(muttersvatersmutter), [7]=personEintrag(muttersmuttersvater), [8]=personEintrag(muttersmuttersmutter), }) result=result..zeile2({ [1]=holeAnzahlGeschwister(vatersvater), [2]=personEintrag(vatersvater), [3]="C", [4]=personEintrag(vatersmutter), [5]=holeAnzahlGeschwister(vatersmutter), [6]=holeAnzahlGeschwister(muttersvater), [7]=personEintrag(muttersvater), [8]="I", [9]=personEintrag(muttersmutter), [10]=holeAnzahlGeschwister(muttersmutter), }) result=result..zeile3({ [1]=holeAnzahlGeschwister(vater), [2]=personEintrag(vater), [3]=holeTraviabund(person), [4]=personEintrag(mutter), [5]=holeAnzahlGeschwister(mutter), }) result=result..zeile4({ [1]=personEintrag(person), [2]=holeAnzahlGeschwister(person), }) return result end --Aufzurufende Funktion function p.ahnentafel(frame) local artikel=robusttrim(frame.args[1]) if(artikel=='') then return '' end return ausgabe(artikel) end return p