Module:Airport destination list: Difference between revisions
From Thetacola Wiki
Jump to navigationJump to search
en>JJMC89 (add 3rdcolunsortable and 4thcolunsortable parameters per request) |
m (1 revision imported) |
(No difference)
|
Latest revision as of 00:22, 15 August 2022
File:Full-protection-shackle.svg | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
Implements {{Airport destination list}}.
Usage[edit source]
{{#invoke:Airport destination list|table}}
local p = {} local function isnotempty(s) return s and s:match( '^%s*(.-)%s*$' ) ~= '' end function p.table(frame) local args = (frame.args[1] ~= nil) and frame.args or frame:getParent().args local cols if isnotempty(args['4thcoltitle']) and isnotempty(args['3rdcoltitle']) then cols = 4 elseif isnotempty(args['3rdcoltitle']) then cols = 3 else cols = 2 end -- compute the maximum cell index local cellcount = 0 for k, v in pairs( args ) do if type( k ) == 'number' and isnotempty(v) then cellcount = math.max(cellcount, k) end end -- compute the number of rows local rows = math.ceil(cellcount / cols) -- create the root table local root = mw.html.create('table') root :addClass('wikitable') :addClass('sortable') :css('font-size', '95%') -- add the header row local row = root:tag('tr') local cell= row:tag('th') cell:wikitext('Airlines') cell= row:tag('th') cell:addClass('unsortable') cell:wikitext('Destinations') if (isnotempty(args['3rdcoltitle'])) then cell= row:tag('th') cell:css('width','10%') if (isnotempty(args['3rdcolunsortable'])) then cell:addClass('unsortable') end cell:wikitext(args['3rdcoltitle']) end if (isnotempty(args['4thcoltitle'])) then cell= row:tag('th') if (isnotempty(args['4thcolunsortable'])) then cell:addClass('unsortable') end cell:wikitext(args['4thcoltitle']) end -- loop over rows for j=1,rows do row = root:tag('tr') for i=1,cols do cell= row:tag('td') if (i > 2) then cell:css('text-align','center') end cell:wikitext(args[cols*(j - 1) + i] or '') end end -- return the root table return tostring(root) end return p