Modul:Lehensabfrage: Unterschied zwischen den Versionen

Aus TobrienWiki
Zur Navigation springen Zur Suche springen
K (Automatisch synchronisiert.)
K (SyncBot)
 
Zeile 1: Zeile 1:
 
local p = {}
 
local p = {}
  
function robusttrim(s)
+
require("Modul:Hilfsfunktionen")
if s==nil then return '' end
+
require("Modul:Text")
local p=mw.ustring.gsub(s,'%[%[SMW::on%]%]','')
+
 
p=mw.ustring.gsub(p,'%[%[SMW::off%]%]','')
+
function holeLehenDetails(lehen)
return mw.text.trim(p)
+
if lehen=='' then return {} end
 +
local s='[['..lehen..']]'
 +
local details=mw.smw.ask(s
 +
..'|mainlabel=-'
 +
..'|?Kurzname#='
 +
..'|?Lehenstyp#='
 +
..'|?Wappen ist#='
 +
..'|?Vasallenlehen von#='
 +
..'|limit=1'
 +
..'|searchlabel='
 +
)
 +
if details==nil then return {} end
 +
return details
 
end
 
end
  
function holelehensub(frame,person)
+
function holeLehenSub(mitglied)
if person=='' then return '' end
+
if mitglied=='' then return {} end
local s='[[-has subobject::'..person..']] [[Herrscher von BisIndex::99990000]]'
+
local s='[[-has subobject::'..mitglied..']]'
local a=frame:callParserFunction(
+
local lehen=mw.smw.ask(s
  '#ask',s,
+
..'|mainlabel=-'
  'mainlabel=-',
+
..'|?Herrscher von Lehen#='
  '?Herrscher von Lehen#=',
+
..'|?Herrscher von Art#='
  'limit=500',
+
..'|?Herrscher von VonIndex#='
  'searchlabel=',
+
..'|?Herrscher von BisIndex#='
  'format=plainlist'
+
..'|limit=500'
)
+
..'|searchlabel='
return a
+
..'|sort=Herrscher von VonIndex'
 +
)
 +
if lehen==nil then return {} end
 +
return lehen
 
end
 
end
  
 +
function findeFamilienmitglieder(familie)
 +
local s='<q>[[Familienmitglied von::'..familie..']] OR [[Familienmitglied von.Untergruppierung von::'..familie..']]</q>'
 +
local mitglieder=mw.smw.ask(s
 +
..'|mainlabel=-'
 +
..'|?#-='
 +
..'|limit=500'
 +
..'|searchlabel='
 +
)
 +
if mitglieder==nil then mitglieder={} end
 +
return mitglieder
 +
end
  
function holelehen(frame,familie,manuell)
+
function findeAlleLehen(mitglieder,jahr)
if familie=='' then return '' end
+
local allelehen={}
+
for mkey,mvalue in pairs(mitglieder) do
--Finde alle lebenden Familienmitglieder
+
local lehen=holeLehenSub(mvalue[1])
local s='<q>[[Familienmitglied von::'..familie..']] OR [[Familienmitglied von.Untergruppierung von::'..familie..']]</q> [[Lebend::Ja]]'
+
for lkey,lvalue in pairs(lehen) do
local a=frame:callParserFunction(
+
if lvalue[1]~=nil and lvalue[2]~=nil and lvalue[3]~=nil and lvalue[4]~=nil then
  '#ask',s,
+
if allelehen[lvalue[1]]==nil then allelehen[lvalue[1]]={} end
  'mainlabel=-',
+
local von=lvalue[3]/10000
  '?#-=',
+
local bis=lvalue[4]/10000
  'limit=500',
+
if allelehen[lvalue[1]]['aktuell']==nil then allelehen[lvalue[1]]['aktuell']=false end
  'searchlabel=',
+
if bis>jahr then
  'format=plainlist'
+
bis=jahr
)
+
allelehen[lvalue[1]]['aktuell']=true
+
end
--Finde alle aktiven Lehen dieser Familienmitglieder
+
local v=3
local result={}
+
if lvalue[2]=='Titel' then v=2 end
local doppelte={}
+
if lvalue[2]=='Regent' then v=1 end
local t=mw.text.split(a,',',true)
+
for i=von,bis,1 do
local eingemischt=false
+
allelehen[lvalue[1]][i]=v
for key,value in pairs(t) do
+
end
  if (robusttrim(value)~='')or(eingemischt~=true) then
+
end
  local l=holelehensub(frame,value)..','..manuell
+
end
  eingemischt=true
+
end
 +
return allelehen
 +
end
  
  --Finde die Art des Lehens dieses Familienmitglieds
+
function verdichteLehen(allelehen,manuell)
  local t2=mw.text.split(l,',',true)
+
local lehensarten={}
  for key2,value2 in pairs(t2) do
+
lehensarten['Reich']='Reiche'
    if robusttrim(value2)~='' then
+
lehensarten['Provinz']='Provinzen'
    local d=holelehenattribut(frame,value2,'Lehenstyp')
+
lehensarten['Grafschaft']='Grafschaften'
    local k=holelehenattribut(frame,value2,'Kurzname')
+
lehensarten['Baronie']='Baronien'
    local i=holelehenattribut(frame,value2,'Icon ist')
+
lehensarten['Junkertum']='Junkertümer'
    if doppelte[value2]==nil then
+
lehensarten['Herrschaft']='Herrschaften'
      if(result[d]==nil) then result[d]={} end
+
lehensarten['Ortschaft']='Ortschaften'
      table.insert(result[d],{["Artikel"]=value2,["Kurzname"]=k,["Icon"]=i});
+
lehensarten['Bauwerk']='Bauwerke'
      doppelte[value2]=true;
 
    end
 
    end
 
  end
 
  
  end
+
local lehenverdichtet={}
end
+
for akey,avalue in pairs(allelehen) do
return result
+
local countr=0;
 +
local countt=0;
 +
for jkey,jvalue in pairs(avalue) do
 +
if (jvalue==1)or(jvalue==3) then countr=countr+1 end
 +
if (jvalue==2)or(jvalue==3) then countt=countt+1 end
 +
end
 +
local details=holeLehenDetails(akey)
 +
if (details[1]~=nil) and (details[1][2]~=nil) and (lehensarten[details[1][2]]~=nil) then
 +
local art=lehensarten[details[1][2]]
 +
if lehenverdichtet[art]==nil then lehenverdichtet[art]={} end
 +
lehenverdichtet[art][akey]={}
 +
lehenverdichtet[art][akey]['kurzname']=details[1][1]
 +
lehenverdichtet[art][akey]['aktuell']=avalue['aktuell']
 +
lehenverdichtet[art][akey]['regent']=countr
 +
lehenverdichtet[art][akey]['titel']=countt
 +
lehenverdichtet[art][akey]['wappen']=details[1][3]
 +
lehenverdichtet[art][akey]['hegemon']=details[1][4]
 +
end
 +
end
 +
--manuell einmischen, nur wenn nicht bereits dabei
 +
local manuellt=mw.text.split(manuell,',',true)
 +
for mkey,akey in pairs(manuellt) do
 +
local details=holeLehenDetails(akey)
 +
if (details[1]~=nil) and (details[1][2]~=nil) and (lehensarten[details[1][2]]~=nil) then
 +
local art=lehensarten[details[1][2]]
 +
if lehenverdichtet[art]==nil then lehenverdichtet[art]={} end
 +
if lehenverdichtet[art][akey]==nil then
 +
lehenverdichtet[art][akey]={}
 +
lehenverdichtet[art][akey]['kurzname']=details[1][1]
 +
lehenverdichtet[art][akey]['aktuell']=true -- geht natürlich nicht
 +
lehenverdichtet[art][akey]['regent']=1 --geht natürlich nicht
 +
lehenverdichtet[art][akey]['titel']=1 --geht natürlich nicht
 +
lehenverdichtet[art][akey]['wappen']=details[1][3]
 +
lehenverdichtet[art][akey]['hegemon']=details[1][4]
 +
end
 +
end
 +
end
 +
return lehenverdichtet
 
end
 
end
  
function holelehenattribut(frame,lehen,attribut)
+
function holeLehen(jahr,familie,manuell)
if lehen=='' then return 'unbekannt' end
+
if familie=='' then return '' end
local a=frame:callParserFunction(
 
  '#show',lehen,
 
  '?'..attribut..'#'
 
)
 
if a=='' then a='unbekannt' end
 
return a
 
end;
 
  
function kategorisiereUndHegemon(frame,lehen,title,catname,rekursion,kategorie)
+
--Finde alle Familienmitglieder
if kategorie==false then return '' end
+
local mitglieder=findeFamilienmitglieder(familie)
if lehen=='' then return '' end
+
if rekursion==0 then return '' end
+
--Finde alle Lehen dieser Familienmitglieder
local heg=frame:callParserFunction(
+
local allelehen=findeAlleLehen(mitglieder,jahr)
  '#show',lehen,
 
  '?Vasallenlehen von#'
 
)
 
hegsub=''
 
if heg~=''then
 
  t=mw.title.new(heg).text
 
  hegsub=kategorisiereUndHegemon(frame,heg,t,catname,rekursion-1,kategorie)
 
end
 
  
return '[[Kategorie:'..title..'|'..catname..']]'..hegsub
+
--Verdichte das Ergebnis auf Lehensart und Lehen
 +
local lehenverdichtet=verdichteLehen(allelehen,manuell)
 +
 
 +
return lehenverdichtet
 
end
 
end
  
function printlehensub(frame,lehentable,catname,art,artpl,kategorie)  
+
function sortiereLehen(t,a,b)
result=''
+
return t[a]['kurzname']<t[b]['kurzname']
if(lehentable[art]~=nil) then
 
  result=''
 
  for key,value in pairs(lehentable[art]) do
 
  t=mw.title.new(value["Artikel"]).text
 
  result=result..'[['..value["Artikel"]..'|'..value["Kurzname"]..']]'..kategorisiereUndHegemon(frame,value["Artikel"],t,catname,7,kategorie)..', '
 
  end
 
end
 
result=mw.ustring.sub(result,1,mw.ustring.len(result)-2)
 
return frame:callParserFunction('#invoke','Text','Zeile',artpl,result)
 
 
end
 
end
  
function printlehen(frame,lehentable,catname,weiterelehen,weitereaemter,kategorie)
+
function sortiereLehensarten(t,a,b)
result=''
+
local lehenssort={}
result=result..printlehensub(frame,lehentable,catname,'Reich','Reiche',kategorie)
+
lehenssort['Reiche']=0
result=result..printlehensub(frame,lehentable,catname,'Provinz','Provinzen',kategorie)
+
lehenssort['Provinzen']=1
result=result..printlehensub(frame,lehentable,catname,'Grafschaft','Grafschaften',kategorie)
+
lehenssort['Grafschaften']=2
result=result..printlehensub(frame,lehentable,catname,'Baronie','Baronien',kategorie)
+
lehenssort['Baronien']=3
result=result..printlehensub(frame,lehentable,catname,'Junkertum','Junkertümer',kategorie)
+
lehenssort['Junkertümer']=4
result=result..printlehensub(frame,lehentable,catname,'Herrschaft','Herrschaften',kategorie)
+
lehenssort['Herrschaften']=5
result=result..frame:callParserFunction('#invoke','Text','Zeile','Weitere Lehen',weiterelehen)
+
lehenssort['Ortschaften']=6
result=result..frame:callParserFunction('#invoke','Text','Zeile','Weitere Ämter',weitereaemter)
+
lehenssort['Bauwerke']=7
return frame:callParserFunction('#invoke','Text','Zeilengruppe','Lehen',result)
+
return lehenssort[a]<lehenssort[b]
 
end
 
end
  
function printleheniconsub(frame,lehentable,art)  
+
function formatiereLehen(lehenverdichtet,weiterelehen,weitereaemter,aktuell)
result=''
+
local result=''
if(lehentable[art]~=nil) then
+
for vkey,vvalue in spairs(lehenverdichtet,sortiereLehensarten) do
  result=''
+
local werte={}
  for key,value in pairs(lehentable[art]) do
+
for lkey,lvalue in spairs(vvalue,sortiereLehen) do
  result=result..'[['..value['Icon']..'|20px|link='..value['Artikel']..']]&nbsp;&nbsp;&nbsp;'
+
if aktuell==lvalue['aktuell'] then
  end
+
local regent=''
end
+
if lvalue['titel']==0 and lvalue['regent']>0 then regent=' (Regentschaft)' end
return result
+
table.insert(werte,'[['..lkey..'|'..lvalue['kurzname']..']]'..regent)
 +
end
 +
end
 +
result=result..subZeile(vkey,table.concat(werte,', '))
 +
end
 +
result=result..subZeile('Weitere Lehen',weiterelehen)
 +
result=result..subZeile('Weitere Ämter',weitereaemter)
 +
local pre='Aktuelle '
 +
if not aktuell then pre='Ehemalige ' end
 +
return subZeilengruppe(pre..'Lehen und Ämter',result)
 
end
 
end
  
function printlehenicon(frame,lehentable)
+
function kategorieHegemonRekursiv(lehen,kurzname,rekursion)
result=''
+
if lehen==nil or lehen=='' then return '' end
result=result..printleheniconsub(frame,lehentable,'Reich')
+
if rekursion==0 then return '' end
result=result..printleheniconsub(frame,lehentable,'Provinz')
+
local title=mw.title.new(lehen).text
result=result..printleheniconsub(frame,lehentable,'Grafschaft')
+
local s='[['..lehen..']]'
result=result..printleheniconsub(frame,lehentable,'Baronie')
+
local hegemon=mw.smw.ask(s
result=result..printleheniconsub(frame,lehentable,'Junkertum')
+
..'|mainlabel=-'
result=result..printleheniconsub(frame,lehentable,'Herrschaft')
+
..'|?Vasallenlehen von#='
return result
+
..'|limit=1'
 +
..'|searchlabel='
 +
)
 +
local add=''
 +
if hegemon[1][1]~=nil then
 +
add=kategorieHegemonRekursiv(hegemon[1][1],kurzname,rekursion-1)
 +
end
 +
return '[[Kategorie:'..title..'|'..kurzname..']]'..add
 
end
 
end
  
 +
function kategorisiereLehen(lehenverdichtet)
 +
local result=''
 +
for vkey,vvalue in spairs(lehenverdichtet,sortiereLehensarten) do
 +
local werte={}
 +
for lkey,lvalue in spairs(vvalue,sortiereLehen) do
 +
local title=mw.title.new(lkey).text
 +
result=result..' [[Kategorie:'..title..'|'..lvalue['kurzname']..']]'..kategorieHegemonRekursiv(lvalue['hegemon'],lvalue['kurzname'],7)
 +
end
 +
end
 +
return result
 +
end
 +
 +
function formatiereLehenIcons(lehenverdichtet)
 +
local result=''
 +
for vkey,vvalue in spairs(lehenverdichtet,sortiereLehensarten) do
 +
local werte={}
 +
for lkey,lvalue in spairs(vvalue,sortiereLehen) do
 +
if lvalue['aktuell'] then
 +
result=result..'[['..lvalue['wappen']..'|20px|link='..lkey..']]&nbsp;&nbsp;&nbsp;'
 +
end
 +
end
 +
end
 +
return result
 +
end
  
 
function p.Abfrage(frame)
 
function p.Abfrage(frame)
if (frame.args[1]==nil) then
+
if (frame.args[1]==nil) then
  return "no parameter found"
+
return 'no parameter found'
end
+
end
catname=robusttrim(frame.args[2])
+
catname=robusttrim(frame.args[2])
weiterelehen=robusttrim(frame.args[3])
+
weiterelehen=robusttrim(frame.args[3])
weitereaemter=robusttrim(frame.args[4])
+
weitereaemter=robusttrim(frame.args[4])
manuell=robusttrim(frame.args[5])
+
manuell=robusttrim(frame.args[5])
local familie=frame.args[1]
+
local familie=frame.args[1]
local result=holelehen(frame,familie,manuell)
+
local lehen=holeLehen(1047,familie,manuell)
frame:callParserFunction('#vardefine','LehensabfrageIcons',printlehenicon(frame,result))
+
local formatiert=formatiereLehen(lehen,weiterelehen,weitereaemter,true)
frame:callParserFunction('#vardefine','Lehensabfrage',printlehen(frame,result,catname,weiterelehen,weitereaemter,false))
+
frame:callParserFunction('#vardefine','LehensabfrageIcons',formatiereLehenIcons(lehen))
return printlehen(frame,result,catname,weiterelehen,weitereaemter,true)
+
frame:callParserFunction('#vardefine','Lehensabfrage',formatiert)
 +
return formatiert..formatiereLehen(lehen,'','',false)..kategorisiereLehen(lehen)
 
end
 
end
  
 
return p
 
return p

Aktuelle Version vom 16. April 2024, 14:24 Uhr

Dokumentation und Testfälle unter Modul:Lehensabfrage/Doku.
local p = {}

require("Modul:Hilfsfunktionen")
require("Modul:Text")

function holeLehenDetails(lehen)
	if lehen=='' then return {} end
	local s='[['..lehen..']]'
	local details=mw.smw.ask(s
		..'|mainlabel=-'
		..'|?Kurzname#='
		..'|?Lehenstyp#='
		..'|?Wappen ist#='
		..'|?Vasallenlehen von#='
		..'|limit=1'
		..'|searchlabel='
	)
	if details==nil then return {} end
	return details
end

function holeLehenSub(mitglied)
	if mitglied=='' then return {} end
	local s='[[-has subobject::'..mitglied..']]'
	local lehen=mw.smw.ask(s
		..'|mainlabel=-'
		..'|?Herrscher von Lehen#='
		..'|?Herrscher von Art#='
		..'|?Herrscher von VonIndex#='
		..'|?Herrscher von BisIndex#='
		..'|limit=500'
		..'|searchlabel='
		..'|sort=Herrscher von VonIndex'
	)
	if lehen==nil then return {} end
	return lehen
end

function findeFamilienmitglieder(familie)
	local s='<q>[[Familienmitglied von::'..familie..']] OR [[Familienmitglied von.Untergruppierung von::'..familie..']]</q>'
	local mitglieder=mw.smw.ask(s
		..'|mainlabel=-'
		..'|?#-='
		..'|limit=500'
		..'|searchlabel='
	)
	if mitglieder==nil then mitglieder={} end
	return mitglieder
end

function findeAlleLehen(mitglieder,jahr)
	local allelehen={}
	for mkey,mvalue in pairs(mitglieder) do
		local lehen=holeLehenSub(mvalue[1])
		for lkey,lvalue in pairs(lehen) do
			if lvalue[1]~=nil and lvalue[2]~=nil and lvalue[3]~=nil and lvalue[4]~=nil then
				if allelehen[lvalue[1]]==nil then allelehen[lvalue[1]]={} end
				local von=lvalue[3]/10000
				local bis=lvalue[4]/10000
				if allelehen[lvalue[1]]['aktuell']==nil then allelehen[lvalue[1]]['aktuell']=false end
				if bis>jahr then
					bis=jahr
					allelehen[lvalue[1]]['aktuell']=true
				end
				local v=3
				if lvalue[2]=='Titel' then v=2 end
				if lvalue[2]=='Regent' then v=1 end
				for i=von,bis,1 do
					allelehen[lvalue[1]][i]=v
				end
			end
		end
	end
	return allelehen
end

function verdichteLehen(allelehen,manuell)
	local lehensarten={}
	lehensarten['Reich']='Reiche'
	lehensarten['Provinz']='Provinzen'
	lehensarten['Grafschaft']='Grafschaften'
	lehensarten['Baronie']='Baronien'
	lehensarten['Junkertum']='Junkertümer'
	lehensarten['Herrschaft']='Herrschaften'
	lehensarten['Ortschaft']='Ortschaften'
	lehensarten['Bauwerk']='Bauwerke'

	local lehenverdichtet={}
	for akey,avalue in pairs(allelehen) do
		local countr=0;
		local countt=0;
		for jkey,jvalue in pairs(avalue) do
			if (jvalue==1)or(jvalue==3) then countr=countr+1 end
			if (jvalue==2)or(jvalue==3) then countt=countt+1 end
		end
		local details=holeLehenDetails(akey)
		if (details[1]~=nil) and (details[1][2]~=nil) and (lehensarten[details[1][2]]~=nil) then
			local art=lehensarten[details[1][2]]
			if lehenverdichtet[art]==nil then lehenverdichtet[art]={} end
			lehenverdichtet[art][akey]={}
			lehenverdichtet[art][akey]['kurzname']=details[1][1]
			lehenverdichtet[art][akey]['aktuell']=avalue['aktuell']
			lehenverdichtet[art][akey]['regent']=countr
			lehenverdichtet[art][akey]['titel']=countt
			lehenverdichtet[art][akey]['wappen']=details[1][3]
			lehenverdichtet[art][akey]['hegemon']=details[1][4]
		end
	end
	--manuell einmischen, nur wenn nicht bereits dabei
	local manuellt=mw.text.split(manuell,',',true)
	for mkey,akey in pairs(manuellt) do
		local details=holeLehenDetails(akey)
		if (details[1]~=nil) and (details[1][2]~=nil) and (lehensarten[details[1][2]]~=nil) then
			local art=lehensarten[details[1][2]]
			if lehenverdichtet[art]==nil then lehenverdichtet[art]={} end
			if lehenverdichtet[art][akey]==nil then
				lehenverdichtet[art][akey]={}
				lehenverdichtet[art][akey]['kurzname']=details[1][1]
				lehenverdichtet[art][akey]['aktuell']=true -- geht natürlich nicht
				lehenverdichtet[art][akey]['regent']=1 --geht natürlich nicht
				lehenverdichtet[art][akey]['titel']=1 --geht natürlich nicht
				lehenverdichtet[art][akey]['wappen']=details[1][3]
				lehenverdichtet[art][akey]['hegemon']=details[1][4]
			end
		end
	end
	return lehenverdichtet
end

function holeLehen(jahr,familie,manuell)
	if familie=='' then return '' end

	--Finde alle Familienmitglieder
	local mitglieder=findeFamilienmitglieder(familie)
	
	--Finde alle Lehen dieser Familienmitglieder
	local allelehen=findeAlleLehen(mitglieder,jahr)

	--Verdichte das Ergebnis auf Lehensart und Lehen
	local lehenverdichtet=verdichteLehen(allelehen,manuell)

	return lehenverdichtet	
end

function sortiereLehen(t,a,b)
	return t[a]['kurzname']<t[b]['kurzname']
end

function sortiereLehensarten(t,a,b)
	local lehenssort={}
	lehenssort['Reiche']=0
	lehenssort['Provinzen']=1
	lehenssort['Grafschaften']=2
	lehenssort['Baronien']=3
	lehenssort['Junkertümer']=4
	lehenssort['Herrschaften']=5
	lehenssort['Ortschaften']=6
	lehenssort['Bauwerke']=7
	return lehenssort[a]<lehenssort[b]
end

function formatiereLehen(lehenverdichtet,weiterelehen,weitereaemter,aktuell)
	local result=''
	for vkey,vvalue in spairs(lehenverdichtet,sortiereLehensarten) do
		local werte={}
		for lkey,lvalue in spairs(vvalue,sortiereLehen) do
			if aktuell==lvalue['aktuell'] then
				local regent=''
				if lvalue['titel']==0 and lvalue['regent']>0 then regent=' (Regentschaft)' end
				table.insert(werte,'[['..lkey..'|'..lvalue['kurzname']..']]'..regent)
			end	
		end
		result=result..subZeile(vkey,table.concat(werte,', '))
	end
	result=result..subZeile('Weitere Lehen',weiterelehen)
	result=result..subZeile('Weitere Ämter',weitereaemter)
	local pre='Aktuelle '
	if not aktuell then pre='Ehemalige ' end
 	return subZeilengruppe(pre..'Lehen und Ämter',result)
end

function kategorieHegemonRekursiv(lehen,kurzname,rekursion)
	if lehen==nil or lehen=='' then return '' end
	if rekursion==0 then return '' end
	local title=mw.title.new(lehen).text
	local s='[['..lehen..']]'
	local hegemon=mw.smw.ask(s
		..'|mainlabel=-'
		..'|?Vasallenlehen von#='
		..'|limit=1'
		..'|searchlabel='
	)
	local add=''
	if hegemon[1][1]~=nil then
		add=kategorieHegemonRekursiv(hegemon[1][1],kurzname,rekursion-1)
	end
	return '[[Kategorie:'..title..'|'..kurzname..']]'..add
end

function kategorisiereLehen(lehenverdichtet)
	local result=''
	for vkey,vvalue in spairs(lehenverdichtet,sortiereLehensarten) do
		local werte={}
		for lkey,lvalue in spairs(vvalue,sortiereLehen) do
			local title=mw.title.new(lkey).text
			result=result..' [[Kategorie:'..title..'|'..lvalue['kurzname']..']]'..kategorieHegemonRekursiv(lvalue['hegemon'],lvalue['kurzname'],7)
		end
	end
 	return result
end

function formatiereLehenIcons(lehenverdichtet)
	local result=''
	for vkey,vvalue in spairs(lehenverdichtet,sortiereLehensarten) do
		local werte={}
		for lkey,lvalue in spairs(vvalue,sortiereLehen) do
			if lvalue['aktuell'] then
				result=result..'[['..lvalue['wappen']..'|20px|link='..lkey..']]&nbsp;&nbsp;&nbsp;'
			end
		end
	end
 	return result
end

function p.Abfrage(frame)
	if (frame.args[1]==nil) then
		return 'no parameter found'
	end
	catname=robusttrim(frame.args[2])
	weiterelehen=robusttrim(frame.args[3])
	weitereaemter=robusttrim(frame.args[4])
	manuell=robusttrim(frame.args[5])
	local familie=frame.args[1]
	local lehen=holeLehen(1047,familie,manuell)
	local formatiert=formatiereLehen(lehen,weiterelehen,weitereaemter,true)
	frame:callParserFunction('#vardefine','LehensabfrageIcons',formatiereLehenIcons(lehen))
	frame:callParserFunction('#vardefine','Lehensabfrage',formatiert)
	return formatiert..formatiereLehen(lehen,'','',false)..kategorisiereLehen(lehen)
end

return p