Module:Tables

From RuneRealm Wiki

This is the current revision of this page, as edited by Alex (talk | contribs) at 14:34, 16 October 2024 (Created page with "--[[ {{Helper module |name = Tables |fname1 = _row(row, elts, header) |ftype1 = mw.html object, table/string, boolean |fuse1 = Adds <code>td</code> or <code>th</code> cells to the html object with the cells data specified by <code>elts</code>. If <code>header</code> = <code>true</code> then all cells added will have the <code>th</code> tag. |fname2 = _table(table, data) |ftype2 = mw.html object, table |fuse2 = Adds <code>tr</code> rows and <code>td</code>/<code>th</code>..."). The present address (URL) is a permanent link to this version.

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Module documentation
This documentation is transcluded from Module:Tables/doc. [edit] [history] [purge]
Module:Tables is required by Module:Combat Achievements.
Module:Tables is required by Module:Tombs of Amascut loot.

This module is a helper module to be used by other modules; it may not designed to be invoked directly. See RuneScape:Lua/Helper modules for a full list and more information. For a full list of modules using this helper click here

FunctionTypeUse
_row(row, elts, header)mw.html object, table/string, booleanAdds td or th cells to the html object with the cells data specified by elts. If header = true then all cells added will have the th tag.
_table(table, data)mw.html object, tableAdds tr rows and td/th cells to the html object, the data for the rows and cells is specified by data.

--[[
{{Helper module
|name = Tables
|fname1 = _row(row, elts, header)
|ftype1 = mw.html object, table/string, boolean
|fuse1 = Adds <code>td</code> or <code>th</code> cells to the html object with the cells data specified by <code>elts</code>. If <code>header</code> = <code>true</code> then all cells added will have the <code>th</code> tag.
|fname2 = _table(table, data)
|ftype2 = mw.html object, table
|fuse2 = Adds <code>tr</code> rows and <code>td</code>/<code>th</code> cells to the html object, the data for the rows and cells is specified by <code>data</code>.
}}
-- ]]
local p = {}

function p._row( row, elts, header )
    local _tag = header and 'th' or 'td'
    local ret = {}
    for _, v in ipairs(elts) do
        if type(v) == 'table' then
            table.insert(ret,row:tag(_tag):wikitext(v.text):attr(v.attr or {}):addClass(v.class or ""):css(v.css or {}):done())
        else
            table.insert(ret,row:tag(_tag):wikitext(v):done())
        end
    end
    row:done()
    return unpack(ret)
end

function p._table(table, data)
    for _, rowdata in ipairs(data) do
    	if rowdata ~= false then
	        row = table:tag('tr')
	        for _, v in ipairs(rowdata) do
	            if not v then
	            else
	                row:tag(v.tag or 'td'):wikitext(v.text):attr(v.attr or {}):addClass(v.class or ""):css(v.css or {}):done()
	            end
	        end
	        row:done()
        end
    end
end

return p