Modul:Wappen

Aus GaretienWiki
Version vom 24. Juni 2023, 20:47 Uhr von VolkoV (D | B)
(U) ← Nächstältere Version | Aktuelle Version (U) | Nächstjüngere Version → (U)
Zur Navigation springen Zur Suche springen
Dokumentation und Testfälle unter Modul:Wappen/Doku.
local p = {}
 
 local StringOderDefault=function(wert,default)
  if(wert=='') then return default end
  if(wert==nil) then return default end
  return wert
 end

 function p.Wappen()
  frame=mw.getCurrentFrame()
  artikel=StringOderDefault(frame.args[1],'')
  groesse=StringOderDefault(frame.args[2],'20px')
  postfix=StringOderDefault(frame.args[3],'   ')
  if artikel=='' then return '' end
  result='Datei:Wappen blanko.svg'
  local a=frame:callParserFunction(
   '#show',artikel,
   '?Wappen ist#'
  )
  if a~='' then
   result=a
  end
  return '[['..result..'|'..groesse..'|link='..artikel..']]'..postfix
 end

 function p.WappenMitKrone()

  --Parameter einlesen
  frame=mw.getCurrentFrame()
  prunkwappen=StringOderDefault(frame.args['Prunkwappen'],'')
  wappen=StringOderDefault(frame.args['Wappen'],'Wappen blanko.svg')
  krone=StringOderDefault(frame.args['Krone'],'')
  zier=StringOderDefault(frame.args['Kronenzier'],'')
  size=StringOderDefault(frame.args['Size'],'10')
  link=StringOderDefault(frame.args['Link'],'Hauptseite')
  titel=StringOderDefault(frame.args['Titel'],'Wappen')
  verschiebung=StringOderDefault(frame.args['Verschiebung'],'')

  --Verschiebung nach oben für kleinere Kronen berechnen
  versch=0
  if      krone=='Raulskrone2.svg'          then versch= 0.0
   elseif krone=='Debrekskrone2.svg'        then versch= 2.0
   elseif krone=='Koenigskrone2.svg'        then versch=10.0
   elseif krone=='Bergkoenigskrone2.svg'    then versch= 8.0
   elseif krone=='Erzherzogenkrone2.svg'    then versch= 8.0
   elseif krone=='Herzogenkrone2.svg'       then versch=11.0
   elseif krone=='Nardesreif.svg'           then versch= 7.0
   elseif krone=='Grossfuerstenkrone2.svg'  then versch= 8.0
   elseif krone=='Fuerstenkrone2.svg'       then versch=11.0
   elseif krone=='Markgrafenkrone2.svg'     then versch=12.5
   elseif krone=='Grafenkrone2.svg'         then versch=12.5
   elseif krone=='Burggrafenkrone2.svg'     then versch=12.5
   elseif krone=='Baronskrone2.svg'         then versch=13.0
   elseif krone=='Junkerskrone2.svg'        then versch=13.0
   elseif krone=='Edlenkrone2.svg'          then versch=14.0
   elseif krone=='Mauerkrone Gareth2.svg'   then versch= 7.0
   elseif krone=='Mauerkrone2.svg'          then versch= 7.0
   elseif krone=='Rathauskrone2.svg'        then versch= 7.0
   elseif krone=='Kirchenkrone2.svg'        then versch= 3.0
   elseif krone=='Marktkrone2.svg'          then versch= 8.0
   elseif krone=='Bingenkrone2.svg'         then versch=12.0
   elseif krone=='Rohalskappe Weiss2.svg'   then versch= 5.0
   elseif krone=='Rohalskappe Grau2.svg'    then versch= 5.0
   elseif krone=='Rohalskappe Schwarz2.svg' then versch= 5.0
   elseif krone=='Gestechhelm2.svg'         then versch= 0.0
   elseif krone~=''                         then versch= 0.0
   else                                          versch=17.5
  end
  if verschiebung=='' then versch=0.0 end
  if prunkwappen~='' then versch=7.0 end

  versch=versch*size;
  
  size9=size*9
  size18=size*18
  size36=size*36

  result='<div style="float:left;position:relative;top:0px;width:'..size18..'px;height:'..(size*45-versch)..'px;">'
  if prunkwappen=='' then

  --Krone
   if krone~='' then
    result=result..'<div style="position:absolute;top:0px;left:0px;width:'..size18..'px;height:'..(size18-versch)..'px;text-align:center;overflow:hidden;"><div style="margin-top:'..(-versch)..'px;">[[Datei:'..krone..'|'..size18..'x'..size18..'px|link='..link..']]</div></div>'
   end

  --Kronenzier
   if zier~='' then
    result=result..'<div style="position:absolute;top:0px;left:0px;width:'..size18..'px;height:'..(size18-versch)..'px;text-align:center;overflow:hidden;"><div style="margin-top:'..(-versch)..'px;">[[Datei:'..zier..'|'..size18..'x'..size18..'px|link='..link..']]</div></div>'
   end

   --Wappen
   result=result..'<div style="position:absolute;top:'..(size18-versch)..'px;left:0px;width:'..size18..'px;height:'..size18..'px;text-align:center;">[[Datei:'..wappen..'|'..size18..'x'..size18..'px|link='..link..']]</div>'
  
  --oder Prunkwappen
  else
   result=result..'<div style="position:absolute;top:0px;left:0px;width:'..size18..'px;height:'..(size36-versch)..'px;text-align:center;overflow:hidden;">[[Datei:'..prunkwappen..'|'..size18..'x'..size36..'px|link='..link..']]</div>'
  end
  
  --Schriftrolle
  result=result..'<div style="position:absolute;top:'..(size36-versch)..'px;left:0px;width:'..size18..'px;height:'..size9..'px;text-align:center;">[[Datei:Wappen Schriftrolle.svg|'..size18..'x'..size18..'px|link='..link..']]</div>'

  --Schrift
  result=result..'<div style="position:absolute;top:'..(size36+size-versch)..'px;left:'..size..'px;width:'..(size*16)..'px;height:'..size9..'px;text-align:center;line-height:'..(size*2)..'px;font-size:'..(size*1.5)..'px;font-family: \'Lucida Calligraphy\', \'Lucida Handwriting\', \'Brush Script MT\', \'Segoe Script\', Georgia, cursive;">[['..link..'|'..titel..']]</div>'
  
  result=result..'</div>'
  
  return result  
 end

 return p