模块:三阶勋章:修订间差异
跳到导航
跳到搜索
(建立内容为“-- --处理勋章的模块 -- local p = {} local converNum={'【I】','【II】','【III】'} local defaultEXP={'30','90','永久'} --处理单个勋章 functio…”的新页面) |
(没有差异)
|
2021年4月24日 (六) 07:53的版本
此模块的文档可以在模块:三阶勋章/doc创建
-- --处理勋章的模块 -- local p = {} local converNum={'【I】','【II】','【III】'} local defaultEXP={'30','90','永久'} --处理单个勋章 function renderAwardDiv(awardNum, args) --添加新的div local mainAwardDiv = mw.html.create('div') for i=1,3,1 do local awardDiv = mainAwardDiv:tag('div') awardDiv --div样式 :cssText('width:200px; margin:15px;'.. ' display:inline-block; vertical-align:top;'.. ' position:relative; text-align:center; ') :wikitext(args['file'..awardNum..'_'..i] or ('[[File:'..args['file' .. awardNum].. converNum[i]..'.gif]]')) :wikitext('<br>') :wikitext((args['name' .. awardNum..'_'..converNum[i]]) or (args['name' .. awardNum]..converNum[i])) --创建表格 local infoTable = mw.html.create('table') infoTable :cssText('margin:auto; text-align:center;'.. 'max-width:200px; min-width:200px;') :attr('border', '1') :attr('cellspacing', '0') local EXP = infoTable:tag('tr') EXP :tag('th') :wikitext('有效期') :done() :tag('td') :wikitext((args['EXP' .. awardNum..'_'..i]) or args['EXP' .. awardNum] or defaultEXP[i]) :done() local author = infoTable:tag('tr') author :tag('th') :wikitext('作者') :done() :tag('td') :wikitext((args['author' .. awardNum..'_'..i]) or args['author' .. awardNum]) :done() local description = infoTable:tag('tr') description :tag('td') :attr('colspan', '2') :css('padding', '0 10px 0 10px') :wikitext((args['description' .. awardNum..'_'..i]) or args['description' .. awardNum] or ' ') :done() awardDiv:node(infoTable) end return mainAwardDiv end --处理表格 function renderMainDiv(awardNums, args) local mainDiv = mw.html.create('div')--创建mainDiv --在这里mainDiv添加样式 :css('overflow', 'auto') :css('max-width', '800px') --循环处理每一个勋章 for i, awardNum in ipairs(awardNums) do mainDiv:node(renderAwardDiv(awardNum, args)) mainDiv:tag('hr') end return mainDiv end function p.awards(frame) local args={} local awardNums={} --获取页面传来得参数,而不是模板的参数 local parent_args = frame:getParent().args; --将获取的参数传给args for k, v in pairs(parent_args) do if v ~= 'nil' then args[k] = v end end for k, v in pairs(args) do --依靠name个数,计算勋章个数 local awardNum = ('' .. k):match('^name(%d+)$') if awardNum then table.insert(awardNums, tonumber(awardNum)) end end table.sort(awardNums) --处理勋章 local mainDiv = renderMainDiv(awardNums, args) return tostring(mainDiv) end return p