请输入您要查询的百科知识:

 

词条 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条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/11 11:29:48