Module:Airport destination list
Revision as of 19:35, 17 June 2015 by blackwiki>Magioladitis (Protected Module:Airport destination list: To match Template:Airport destination list ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite)))
| 40x40px | 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
{{#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 = isnotempty(args['3rdcoltitle']) and 3 or 2
-- 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%')
cell:wikitext(args['3rdcoltitle'])
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