Modul:Wappen

Aus GaretienWiki
Version vom 20. Oktober 2019, 11:09 Uhr von VolkoV (D | B)
Zur Navigation springen Zur Suche springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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=='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