Difference between revisions of "Module:State tournaments box"

From Wiki - Scioly.org
Jump to navigation Jump to search
(first test)
m (Added `id='state-tournaments-box'` to make Comprehensive Tournaments List more robust.)
(17 intermediate revisions by one other user not shown)
Line 5: Line 5:
 
function p.main(frame)
 
function p.main(frame)
 
     local args = getArgs(frame)
 
     local args = getArgs(frame)
     table = "<table>"
+
     table = "<table class='wikitable' style='width: 80%;' id='state-tournaments-box'>"
 
     header = "<tr><th>Name</th><th>Type</th><th>Date</th><th>Division</th><th>Format</th></tr>"
 
     header = "<tr><th>Name</th><th>Type</th><th>Date</th><th>Division</th><th>Format</th></tr>"
 +
    table = table .. header
 
     finalStr = ""
 
     finalStr = ""
     for i = 1,1000 do
+
     maxRow = 1
        addedRow = false
+
    for k, v in pairs(args) do
        for k, v in pairs(args) do
+
        num = tonumber(string.match(k, '%d+'))
            if stringMod.endswith(k, i) then
+
        if num > maxRow then
                if addedRow == false then
+
            maxRow = num
                    table = table .. "<tr>"
+
        end
                    addedRow = true
+
    end
                end
+
    for i = 1,maxRow do
                if string.find(k, "name") ~= nil then
+
        table = table .. "<tr>"
                    table = table .. "<td>" .. v .. "</td>"
+
        terms = {"name", "type", "date", "div", "format"}
                elseif string.find(k, "type") ~= nil then
+
        for f = 1,#terms do
                    table = table .. "<td>" .. v .. "</td>"
+
            found = false
                elseif string.find(k, "date") ~= nil then
+
            for k, v in pairs(args) do
                    table = table .. "<td>" .. v .. "</td>"
+
                 if string.find(k, terms[f]) ~= nil and string.match(k, '%d+') == tostring(i) then
                 elseif string.find(k, "div") ~= nil then
 
                    table = table .. "<td>" .. v .. "</td>"
 
                elseif string.find(k, "format") ~= nil then
 
 
                     table = table .. "<td>" .. v .. "</td>"
 
                     table = table .. "<td>" .. v .. "</td>"
 +
                    found = true
 +
                    break
 
                 end
 
                 end
 +
            end
 +
            if not found then
 +
                table = table .. "<td></td>"
 
             end
 
             end
 
         end
 
         end
         if addedRow == true then
+
         table = table .. "</tr>"
            table = table .. "</tr>"
 
        end
 
 
     end
 
     end
 
     table = table .. "</table>"
 
     table = table .. "</table>"

Revision as of 17:47, 26 September 2020

Documentation for this module may be created at Module:State tournaments box/doc

local p = {};
local getArgs = require('Module:Arguments').getArgs
local stringMod = require('Module:String')

function p.main(frame)
    local args = getArgs(frame)
    table = "<table class='wikitable' style='width: 80%;' id='state-tournaments-box'>"
    header = "<tr><th>Name</th><th>Type</th><th>Date</th><th>Division</th><th>Format</th></tr>"
    table = table .. header
    finalStr = ""
    maxRow = 1
    for k, v in pairs(args) do
        num = tonumber(string.match(k, '%d+'))
        if num > maxRow then
            maxRow = num
        end
    end
    for i = 1,maxRow do
        table = table .. "<tr>"
        terms = {"name", "type", "date", "div", "format"}
        for f = 1,#terms do
            found = false
            for k, v in pairs(args) do
                if string.find(k, terms[f]) ~= nil and string.match(k, '%d+') == tostring(i) then
                    table = table .. "<td>" .. v .. "</td>"
                    found = true
                    break
                end
            end
            if not found then
                table = table .. "<td></td>"
            end
        end
        table = table .. "</tr>"
    end
    table = table .. "</table>"
    return table
end

return p;