Modul:Stammbaum

Aus GaretienWiki
Zur Navigation springen Zur Suche springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Dokumentation und Testfälle unter Modul:Stammbaum/Doku.
local p = {}

function robusttrim(s)
 if s==nil then return '' end
 local p=mw.ustring.gsub(s,'%[%[SMW::on%]%]','')
 p=mw.ustring.gsub(p,'%[%[SMW::off%]%]','')
 return mw.text.trim(p)
end

function personlehen(frame,person)
 local lehen=frame:callParserFunction('#ask',
 	'[[-Has subobject::'..person..']]','mainlabel=-','? Herrscher von Lehen#=',
 	'sort=Herrscher von Detailstufe','limit=1','searchlabel=')
 if (lehen=="") then return "" end
 local lehenstyp=frame:callParserFunction('#show',lehen,'?Lehenstyp#')
 if (lehenstyp=="") then return "" end
 local krone=""
 if (lehenstyp=="Herrschaft") then krone="Edlenkrone2" end
 if (lehenstyp=="Junkertum") then krone="Junkerskrone2" end
 if (lehenstyp=="Baronie") then krone="Baronskrone2" end
 if (lehenstyp=="Grafschaft") then krone="Grafenkrone2" end
 if (lehenstyp=="Provinz") then
  krone="Koenigskrone2"
  if (mw.ustring.sub(lehen,1,8)=="Garetien") then krone="Debrekskrone2" end
  if (mw.ustring.sub(lehen,1,8)=="Perricum") then krone="Markgrafenkrone2" end
  if (mw.ustring.sub(lehen,1,11)=="Greifenfurt") then krone="Markgrafenkrone2" end
 end
 if (lehenstyp=="Reich") then krone="Raulskrone2" end
 if krone=="" then return "" end
 return "[[Datei:"..krone..".svg|x20px|link="..lehen.."]] "
end

function personeneintrag(frame,person,tsatag,borontag,anzeige)
 local titelobject=mw.title.new(person)
 local titel=titelobject.text
 if(anzeige~="") then
 	titel=anzeige
 end
 local tsa=frame:callParserFunction('#show',person,'?Tsatag Index#')
 local boron=frame:callParserFunction('#show',person,'?Borontag Index#')
 local wappen=frame:callParserFunction('#show',person,'?Familienwappen ist#')
 if ((tsa=="99990000")or(tsa=="")) then
  if(tsatag~="") then tsa=tsatag.."0000" else tsa="" end
 end
 if ((boron=="99990000")or(boron=="")) then
  if(borontag~="") then boron=borontag.."0000" else boron="" end
 end
 if (wappen~="") then
 	wappen="[["..wappen.."|20px|link=]] "
 end
 local leben=""
 if (tsa~="") then
  tsan=math.floor(tonumber(tsa)/10000)
  leben=tostring(tsan)
 end
 if (boron~="") then
  boronn=math.floor(tonumber(boron)/10000)
  leben=leben.."-"..tostring(boronn)
 end
 if (leben~="") then leben=" ("..leben..")" end
 local link="[["..person.."|"..titel.."]]"
 leben=personlehen(frame,person)..wappen..link..leben
 if (boron=="") then leben="'''"..leben.."'''" end
 return leben
end

function familieneintrag(frame,familie)
 local titel=mw.title.new(familie).text
 local wappen=frame:callParserFunction('#show',familie,'?Wappen ist#')
 if (wappen=="") then wappen="Datei:Wappen blanko.svg" end
 local result="[["..familie.."|(...) "..titel.."]] [["..wappen.."|x20px|link="..familie.."]]"
 return result
end

function p.Eintrag(frame)
 if (frame.args[1]==nil) then
  return "Personeneintrag fehlt"
 end
 local person=robusttrim(frame.args[1])
 local tsatag=robusttrim(frame.args[2])
 local borontag=robusttrim(frame.args[3])
 local anzeige=robusttrim(frame.args[4])
 return personeneintrag(frame,person,tsatag,borontag,anzeige)
end

function p.Familie(frame)
 if (frame.args[1]==nil) then
  return "Familieneintrag fehlt"
 end
 local familie=robusttrim(frame.args[1])
 return familieneintrag(frame,familie)
end

return p