模块:历史活动
外观
此模块的文档可以在模块:历史活动/doc创建
--
--修改自模块navbox
--
local p = {}
local args--存参数
local frame
local anums = {}--存行数
--添加行
function addTableRow(tbl)
return tbl:tag('tr')
end
--处理表头
function renderHeaderRow(tbl)
local headerRow = addTableRow(tbl)
headerRow
:tag('th')
:wikitext('活动名称')
:css('width', '30%')
:attr('scope', 'column')
:done()
:tag('th')
:wikitext('活动说明')
:css('width', '70%')
:attr('scope', 'column')
:done()
end
--处理某一行数据
function renderListRow(tb1, anum)
local row = addTableRow(tb1)--添加行,并将当前行传给row
if args['a' .. anum] then
local activity = row:tag('td')--添加单元格,并将该单元格传给activity
activity
:attr('align', 'center')--单元格样式
:wikitext(args['a' .. anum])
end
local info = row:tag('td')--再添加单元格,并将该单元格传给info
info
:wikitext(args['i' .. anum])--单元格样式
end
--处理表格
function renderMainTable()
local tb1 = mw.html.create('table')--创建table
--.attr('cellspacing', 0)--在这里table添加样式
:addClass('wikitable')
:addClass('mw-collapsible')
:addClass('mw-collapsed')
:css('width', '60%')
renderHeaderRow(tb1)
for i, anum in ipairs(anums) do--循环处理每一行数据
renderListRow(tb1, anum)
end
return tb1
end
function p._historicalActivity(Args)
args = Args
for k, v in pairs(args) do--计算行数
local anum = ('' .. k):match('^a(%d+)$')
if anum then table.insert(anums, tonumber(anum)) end
end
table.sort(anums)
--处理表格
local tb1 = renderMainTable()
local res = mw.html.create()
res:node(tb1)
return tostring(res)
end
function p.historicalActivity(frame)
local args = {}
local parent_args = frame:getParent().args;--获取页面传来得参数,而不是模板的参数
-- Out of order parsing bug.
-- 不懂
local temp;
for i = 1, 50 do
temp = parent_args["a" .. tostring(i)];
temp = parent_args["i" .. tostring(i)];
end
--将获取的参数传给args
for k, v in pairs(parent_args) do
if v ~= '' then
args[k] = v
end
end
return p._historicalActivity(args)
end
return p