Modul:Lehensabfrage: Unterschied zwischen den Versionen

Aus GaretienWiki
Zur Navigation springen Zur Suche springen
VolkoV (D | B)
Keine Bearbeitungszusammenfassung
VolkoV (D | B)
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


require("Modul:Hilfsfunktionen")
require("Modul:Hilfsfunktionen")
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 holelehensub(frame,person)
if person=='' then return '' end
local s='[[-has subobject::'..person..']]'-- [[Herrscher von BisIndex::99990000]]'
local a=frame:callParserFunction(
  '#ask',s,
  'mainlabel=-',
  '?Herrscher von Lehen#=',
  --'?Herrscher von VonIndex#=',
  --'?Herrscher von BisIndex#=',
  'limit=500',
  'searchlabel=',
  'format=plainlist'
)
return a
end


function holelehen(frame,familie,manuell)
function holelehen(frame,familie,manuell)
Zeile 51: Zeile 27:
  return result
  return result
end
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 kategorisiereUndHegemon(frame,lehen,title,catname,rekursion,kategorie)
if kategorie==false then return '' end
if lehen=='' then return '' end
if rekursion==0 then return '' end
local heg=frame:callParserFunction(
  '#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
end
function printlehensub(frame,lehentable,catname,art,artpl,kategorie)
result=''
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
function printlehen(frame,lehentable,catname,weiterelehen,weitereaemter,kategorie)
result=''
result=result..printlehensub(frame,lehentable,catname,'Reich','Reiche',kategorie)
result=result..printlehensub(frame,lehentable,catname,'Provinz','Provinzen',kategorie)
result=result..printlehensub(frame,lehentable,catname,'Grafschaft','Grafschaften',kategorie)
result=result..printlehensub(frame,lehentable,catname,'Baronie','Baronien',kategorie)
result=result..printlehensub(frame,lehentable,catname,'Junkertum','Junkertümer',kategorie)
result=result..printlehensub(frame,lehentable,catname,'Herrschaft','Herrschaften',kategorie)
result=result..frame:callParserFunction('#invoke','Text','Zeile','Weitere Lehen',weiterelehen)
result=result..frame:callParserFunction('#invoke','Text','Zeile','Weitere Ämter',weitereaemter)
return frame:callParserFunction('#invoke','Text','Zeilengruppe','Lehen',result)
end
function printleheniconsub(frame,lehentable,art)
result=''
if(lehentable[art]~=nil) then
  result=''
  for key,value in pairs(lehentable[art]) do
  result=result..'[['..value['Icon']..'|20px|link='..value['Artikel']..']]   '
  end
end
return result
end
function printlehenicon(frame,lehentable)
result=''
result=result..printleheniconsub(frame,lehentable,'Reich')
result=result..printleheniconsub(frame,lehentable,'Provinz')
result=result..printleheniconsub(frame,lehentable,'Grafschaft')
result=result..printleheniconsub(frame,lehentable,'Baronie')
result=result..printleheniconsub(frame,lehentable,'Junkertum')
result=result..printleheniconsub(frame,lehentable,'Herrschaft')
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 result=holelehen(frame,familie,manuell)
if true then
if true then
return result
return result
end
end
frame:callParserFunction('#vardefine','LehensabfrageIcons',printlehenicon(frame,result))
frame:callParserFunction('#vardefine','Lehensabfrage',printlehen(frame,result,catname,weiterelehen,weitereaemter,false))
return printlehen(frame,result,catname,weiterelehen,weitereaemter,true)
end
end


return p
return p

Version vom 15. April 2024, 13:21 Uhr

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

require("Modul:Hilfsfunktionen")

function holelehen(frame,familie,manuell)
	if familie=='' then return '' end
	
	--Finde alle Familienmitglieder
	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
	
	--Finde alle Lehen dieser Familienmitglieder
	--TODO: manuell einmischen
	local result=dump(mitglieder,"")
	--for key,value in pairs(mitglieder) do
	--	result=result+value[1]+' X '
 	--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 result=holelehen(frame,familie,manuell)
	if true then
 		return result
	end
end

return p