Modul:Lehensabfrage: Unterschied zwischen den Versionen

Aus KoschWiki
Zur Navigation springen Zur Suche springen
VolkoV (D | B)
K (Automatisch synchronisiert.)
SyncBot (D | B)
K (SyncBot)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
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 rekursion==0 then return '' end
result=result..printleheniconsub(frame,lehentable,'Reich')
if type(lehen)=='table' then
result=result..printleheniconsub(frame,lehentable,'Provinz')
local result=''
result=result..printleheniconsub(frame,lehentable,'Grafschaft')
for key,value in pairs(lehen) do
result=result..printleheniconsub(frame,lehentable,'Baronie')
result=result..kategorieHegemonRekursiv(value,kurzname,rekursion)
result=result..printleheniconsub(frame,lehentable,'Junkertum')
end
result=result..printleheniconsub(frame,lehentable,'Herrschaft')
return result
return result
end
if lehen==nil or lehen=='' or type(lehen)~='string' 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
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 1. Juli 2024, 11:06 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 rekursion==0 then return '' end
	if type(lehen)=='table' then
		local result=''
		for key,value in pairs(lehen) do
			result=result..kategorieHegemonRekursiv(value,kurzname,rekursion)
		end
		return result
	end
	if lehen==nil or lehen=='' or type(lehen)~='string' 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