463
个编辑
小无编辑摘要 |
标签:回退 |
||
第1行: | 第1行: | ||
-- | |||
--处理勋章的模块 | |||
-- | |||
local p = {} | local p = {} | ||
-- | --处理单个勋章 | ||
function | function renderAwardDiv(awardNum, args) | ||
--添加新的div | |||
local | local awardDiv = mw.html.create('div') | ||
if args['file' .. awardNum] then | |||
awardDiv | |||
: | --div样式 | ||
:wikitext(args[' | --:attr('align', 'center') | ||
:css('width', '200px') | |||
:css('margin', '15px') | |||
:css('display', 'inline-block') | |||
:css('vertical-align', 'top') | |||
:css('position', 'relative') | |||
:css('text-align', 'center') | |||
:wikitext(args['file' .. awardNum]) | |||
:wikitext('<br>') | |||
:wikitext(args['name' .. awardNum]) | |||
end | end | ||
return | --创建表格 | ||
local infoTable = mw.html.create('table') | |||
infoTable | |||
:css('margin', 'auto') | |||
:css('text-align', 'center') | |||
:css('max-width', '200px') | |||
:css('min-width', '200px') | |||
:attr('border', '1') | |||
:attr('cellspacing', '0') | |||
if args['limited' .. awardNum] then | |||
local EXP = infoTable:tag('tr') | |||
EXP | |||
:tag('th') | |||
:wikitext('限定贩售期间') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['limited' .. awardNum]) | |||
:done() | |||
end | |||
if args['cost' .. awardNum] then | |||
local cost = infoTable:tag('tr') | |||
cost | |||
:tag('th') | |||
:wikitext('获取条件') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['cost' .. awardNum]) | |||
:done() | |||
end | |||
if args['price' .. awardNum] then | |||
local price = infoTable:tag('tr') | |||
price | |||
:tag('th') | |||
:wikitext('价格') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['price' .. awardNum]) | |||
:done() | |||
end | |||
if args['Purchase' .. awardNum] then | |||
local Purchase = infoTable:tag('tr') | |||
Purchase | |||
:tag('th') | |||
:wikitext('购买条件') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['Purchase' .. awardNum]) | |||
:done() | |||
end | |||
if args['Effect' .. awardNum] then | |||
local Effect = infoTable:tag('tr') | |||
Effect | |||
:tag('th') | |||
:wikitext('效果') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['Effect' .. awardNum]) | |||
:done() | |||
end | |||
if args['EXP' .. awardNum] then | |||
local EXP = infoTable:tag('tr') | |||
EXP | |||
:tag('th') | |||
:wikitext('有效期') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['EXP' .. awardNum]) | |||
:done() | |||
end | |||
if args['upgrade' .. awardNum] then | |||
local upgrade = infoTable:tag('tr') | |||
upgrade | |||
:tag('th') | |||
:wikitext('升级说明') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['upgrade' .. awardNum]) | |||
:done() | |||
end | |||
if args['requirements' .. awardNum] then | |||
local requirements = infoTable:tag('tr') | |||
requirements | |||
:tag('th') | |||
:wikitext('升级要求') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['requirements' .. awardNum]) | |||
:done() | |||
end | |||
if args['ability' .. awardNum] then | |||
local ability = infoTable:tag('tr') | |||
ability | |||
:tag('th') | |||
:wikitext('升级能力') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['ability' .. awardNum]) | |||
:done() | |||
end | |||
if args['ranking' .. awardNum] then | |||
local ranking = infoTable:tag('tr') | |||
ranking | |||
:tag('th') | |||
:wikitext('名次') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['ranking' .. awardNum]) | |||
:done() | |||
end | |||
if args['author' .. awardNum] then | |||
local author = infoTable:tag('tr') | |||
author | |||
:tag('th') | |||
:wikitext('作者') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['author' .. awardNum]) | |||
:done() | |||
end | |||
if args['inspiration' .. awardNum] then | |||
local inspiration = infoTable:tag('tr') | |||
inspiration | |||
:tag('th') | |||
:wikitext('灵感') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['inspiration' .. awardNum]) | |||
:done() | |||
end | |||
if args['testimonials' .. awardNum] then | |||
local testimonials = infoTable:tag('tr') | |||
testimonials | |||
:tag('th') | |||
:wikitext('感言') | |||
:done() | |||
:tag('td') | |||
:wikitext(args['testimonials' .. awardNum]) | |||
:done() | |||
end | |||
if args['description' .. awardNum] then | |||
local description = infoTable:tag('tr') | |||
description | |||
:tag('td') | |||
:attr('colspan', '2') | |||
:css('padding', '0 10px 0 10px') | |||
:wikitext(args['description' .. awardNum]) | |||
:done() | |||
end | |||
return awardDiv:node(infoTable) | |||
end | end | ||
--处理表格 | |||
function renderMainDiv(awardNums, args) | |||
local mainDiv = mw.html.create('div')--创建mainDiv | |||
--在这里mainDiv添加样式 | |||
:css('overflow', 'auto') | |||
:css('max-width', '800px') | |||
-- | --循环处理每一个勋章 | ||
--splitCount为分割的数量 | |||
local | local splitCount = tonumber(args['splitCount']) | ||
if splitCount then | |||
for i, awardNum in ipairs(awardNums) do | |||
mainDiv:node(renderAwardDiv(awardNum, args)) | |||
if i%splitCount==0 then mainDiv:tag('br') end | |||
: | end | ||
: | else | ||
for i, awardNum in ipairs(awardNums) do | |||
mainDiv:node(renderAwardDiv(awardNum, args)) | |||
end | |||
end | end | ||
return | return mainDiv | ||
end | end | ||
function p.awards(frame) | |||
function p. | local args={} | ||
local args | local awardNums={} | ||
--获取页面传来得参数,而不是模板的参数 | |||
-- | |||
local parent_args = frame:getParent().args; | local parent_args = frame:getParent().args; | ||
--将获取的参数传给args | --将获取的参数传给args | ||
for k, v in pairs(parent_args) do | for k, v in pairs(parent_args) do | ||
if v ~= 'nil' then args[k] = v end | if v ~= 'nil' then | ||
args[k] = v | |||
end | |||
end | end | ||
for k, v in pairs(args) do | for k, v in pairs(args) do | ||
local | --依靠file个数,计算勋章个数 | ||
if | local awardNum = ('' .. k):match('^file(%d+)$') | ||
if awardNum then table.insert(awardNums, tonumber(awardNum)) end | |||
end | end | ||
table.sort( | table.sort(awardNums) | ||
--处理勋章 | --处理勋章 | ||
local mainDiv = | local mainDiv = renderMainDiv(awardNums, args) | ||
return tostring(mainDiv) | return tostring(mainDiv) |