Modul:Lehensabfrage Briefspiel
Zur Navigation springen
Zur Suche springen
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 return p