词条 | Module:Sandbox/AlphaZeta/test4 |
释义 | --[[Infobox biography 1. Sets default colors and styles 2. Finds any input fields for death and birth dates and formats the date according to Swedish standard and calculates and displays age or age at death ]] local p = {}; -- Default style -------------local default_bodystyle='border-spacing:3px;width:22em;border:1px solid #AAAAAA; border-top:0px;' local default_titlestyle='border:1px solid #AAAAAA; border-bottom:0px;background:#ccd9e8;padding-top:5px;padding-bottom:5px;' local default_labelstyle= local default_headerstyle='background:#BFD2EB;' local default_belowstyle='background:#BFD2EB;' local Infobox = require('Module:Infobox') local DateHelper = require('Module:Sandbox/AlphaZeta/test3') function p.infobox(frame) -- If called via #invoke, use the args passed into the invoking template. -- Otherwise, for testing purposes, assume args are being passed directly in. if frame == mw.getCurrentFrame() then inputargs = frame:getParent().args else inputargs = frame end -- Set default style if inputargs.bodystyle ~= nil then default_bodystyle = default_bodystyle..inputargs.bodystyle end inputargs.bodystyle=default_bodystyle if inputargs.titlestyle ~= nil then default_titlestyle = default_titlestyle..inputargs.titlestyle end inputargs.titlestyle=default_titlestyle if inputargs.labelstyle ~= nil then default_labelstyle = default_labelstyle..inputargs.labelstyle end inputargs.labelstyle=default_labelstyle if inputargs.headerstyle ~= nil then default_headerstyle = default_headerstyle..inputargs.headerstyle end inputargs.headerstyle=default_headerstyle if inputargs.belowstyle ~= nil then default_belowstyle = default_belowstyle..inputargs.belowstyle end inputargs.belowstyle=default_belowstyle -- Check all data fields to find and format -- Birthdate (marked with @birth@) -- Death date (marked with @death@) -- Other dates (marked with @date@) local birthDateField local deathDateField local birth_date= local death_date= for name, value in pairs(inputargs) do if (name:sub(1,4)=='data') then if value:sub(1,7)=='@birth@' then birthDateField=name birth_date=value:sub(8) inputargs[name]=DateHelper.format(birth_date,'link',true) elseif value:sub(1,7)=='@death@' then deathDateField=name death_date=value:sub(8) inputargs[name]=DateHelper.format(death_date,'link',true) elseif value:sub(1,6)=='@date@' then inputargs[name]=DateHelper.format(value:sub(7),,true) elseif value:sub(1,10)=='@datelink@' then inputargs[name]=DateHelper.format(value:sub(11),'link',true) end end end
-- calcuate age, either alive or dead local ageAlive= local ageDeath= if birth_date~=nil and birth_date~= then if death_date==nil or death_date== then ageAlive=DateHelper.yearsBetween(birth_date) if ageAlive~= then ageAlive=' ('..ageAlive..')' end else ageDeath=DateHelper.yearsBetween(birth_date,death_date) if ageDeath~= then ageDeath=' ('..ageDeath..')' end end end
-- add age to date fields if birthDateField~=nil then inputargs[birthDateField]=inputargs[birthDateField]..ageAlive end if deathDateField~=nil then inputargs[deathDateField]=inputargs[deathDateField]..ageDeath end return Infobox.infobox(inputargs) end return p |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。