Modul:Lehensabfrage Briefspiel
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:Lehensabfrage Briefspiel/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 holehandlungsorte(frame,geschichte) if geschichte=='' then return '' end --Finde alle Handlungsorte local a=frame:callParserFunction( '#ask','[['..geschichte..']]', 'mainlabel=-', '?Handlungsort ist#=', 'limit=500', 'searchlabel=', 'format=list' ) return mw.text.split(a,',',true); end function holelehenattribut(frame,lehen,attribut) if lehen=='' then return 'unbekannt' end local a=frame:callParserFunction( '#show',lehen, '?'..attribut..'#' ) if a=='' then a='unbekannt' end return a end function basepagename(page) local parts=mw.text.split(page,':',true) if #parts==1 then return parts[1] end return parts[2] end function printhandlungsortesub(frame,ort,catname,visited,rekursion,enhance) ort=mw.ustring.gsub(ort,"(%b<>)","") --strip html tags if rekursion==0 then return '' end if visited[ort]~=nil then return '' end visited[ort]=true ort=mw.text.split(ort,'#',true)[1] local result='' local i=holelehenattribut(frame,ort,'Icon ist') local ortbps=basepagename(ort) local hoi='[[Handlungsort indirekt::'..ort..'| ]]' if rekursion==7 then hoi='' end result=result..' [['..i..'|20px|link='..ort..']][[Kategorie:'..ortbps..'|'..catname..']]'..hoi if enhance then result='<div class="hell" style="display:inline-block;">'..result..'</div>' end local heg=frame:callParserFunction( '#show',ort, '?Vasallenlehen von#' ) if heg~='' then local heg1=mw.text.split(heg,',',true); for key,value in pairs(heg1) do if robusttrim(value)~='' then result=printhandlungsortesub(frame,value,catname,visited,rekursion-1,false)..result..' ' end end end return result end function printhandlungsorte(frame,orte,catname) local result='' local visited={} for key,value in pairs(orte) do if robusttrim(value)~='' then result=result..printhandlungsortesub(frame,value,catname,visited,7,true) end end return result end function p.Abfrage(frame) if (frame.args[1]==nil) then return "no parameter found" end local catname=robusttrim(frame.args[2]) local geschichte=frame.args[1] local result=holehandlungsorte(frame,geschichte) return printhandlungsorte(frame,result,catname) end function p.Kapiteltext(frame) if (frame.args[1]==nil) then return "no parameter found" end local kapitel=robusttrim(frame.args[1]) local result='' local k=tonumber(kapitel) if (k==nil) then return "" end if (k>=-100)and(k<-10) then result="Vorgeschichte "..tostring(k+101) end if (k>=-10)and(k<1) then result="Prolog "..tostring(k+11) end if (k>=1)and(k<97) then result="Kapitel "..tostring(k) end if (k==97) then result="Epilog" end if (k==98) then result="Anhang" end if (k>=99) then result="Folgehandlung "..tostring(k-98) end return result end function p.KapiteltextKurz(frame) if (frame.args[1]==nil) then return "no parameter found" end local kapitel=robusttrim(frame.args[1]) local result='' local k=tonumber(kapitel) if (k>=-100)and(k<-10) then result="V"..tostring(k+101) end if (k>=-10)and(k<1) then result="P"..tostring(k+11) end if (k>=1)and(k<97) then result="K"..tostring(k) end if (k==97) then result="E" end if (k==98) then result="A" end if (k>=99) then result="F"..tostring(k-98) end return result end return p