模块:历史活动
跳到导航
跳到搜索
此模块的文档可以在模块:历史活动/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