Module:DynamicTable: Difference between revisions
From TwogPedia
            No edit summary  | 
				No edit summary  | 
				||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 4: | Line 4: | ||
function DynamicTable.main(frame)  | function DynamicTable.main(frame)  | ||
    local args = getArgs(frame)  | |||
    local IconHtml = '[[File:pricing-icon.png|30px|alt=Icon]]'  | |||
    local container = mw.html.create('div'):addClass('container')  | |||
    container:node(mw.html.create('div'):addClass('news-icon'):wikitext(IconHtml .. ' <span>Pricing </span>'))  | |||
    -- local tableContainer = mw.html.create('table'):addClass('striped-table')  | |||
    local tableContainer = mw.html.create('table'):addClass('striped-table'):addClass('equipment-table')  | |||
    if (args.columns) then  | |||
        local split = mw.text.split(args.columns, ',')  | |||
        local headerRow = mw.html.create('tr'):addClass('headerRow')  | |||
        for i = 1, #split do  | |||
            local th = mw.html.create('th'):wikitext(mw.text.trim(split[i]))  | |||
            headerRow:node(th)  | |||
        end  | |||
        tableContainer:node(headerRow)  | |||
     end  |      end  | ||
    if (args.rows) then  | |||
        tableContainer:node(args.rows)  | |||
    end  | |||
    container:node(tableContainer)  | |||
    return container  | |||
end  | end  | ||
function DynamicTable.row(frame)  | function DynamicTable.row(frame)  | ||
    local args = getArgs(frame)  | |||
    local split = mw.text.split(args[1], ',')  | |||
    local row = mw.html.create('tr'):addClass('bodyRow')  | |||
    for i = 1, #split do  | |||
        local td = mw.html.create('td'):wikitext(mw.text.trim(split[i]))  | |||
         if #split == 1 then td:attr('colspan',5)   |          if #split == 1 then td:attr('colspan', 5):addClass('fw-600') end  | ||
        row:node(td)  | |||
    end  | |||
    return row  | |||
end  | end  | ||
return DynamicTable  | return DynamicTable  | ||
Latest revision as of 18:12, 30 June 2025
Documentation for this module may be created at Module:DynamicTable/doc
local getArgs = require('Module:Arguments').getArgs
local DynamicTable = {}
function DynamicTable.main(frame)
    local args = getArgs(frame)
    local IconHtml = '[[File:pricing-icon.png|30px|alt=Icon]]'
    
    local container = mw.html.create('div'):addClass('container')
    container:node(mw.html.create('div'):addClass('news-icon'):wikitext(IconHtml .. ' <span>Pricing </span>'))
    
    -- local tableContainer = mw.html.create('table'):addClass('striped-table')
    local tableContainer = mw.html.create('table'):addClass('striped-table'):addClass('equipment-table')
    
    if (args.columns) then
        local split = mw.text.split(args.columns, ',')
        local headerRow = mw.html.create('tr'):addClass('headerRow')
        for i = 1, #split do
            local th = mw.html.create('th'):wikitext(mw.text.trim(split[i]))
            headerRow:node(th)
        end
        tableContainer:node(headerRow)
    end
    if (args.rows) then
        tableContainer:node(args.rows)
    end
    
    container:node(tableContainer)
    
    return container
end
function DynamicTable.row(frame)
    local args = getArgs(frame)
    local split = mw.text.split(args[1], ',')
    local row = mw.html.create('tr'):addClass('bodyRow')
    
    for i = 1, #split do
        local td = mw.html.create('td'):wikitext(mw.text.trim(split[i]))
        if #split == 1 then td:attr('colspan', 5):addClass('fw-600') end
        row:node(td)
    end
    
    return row
end
return DynamicTable
No categories