Module:TableGenerator: Difference between revisions

Sur (talk | contribs)
m only color slightly darker if class is Statbox_hero
Sur (talk | contribs)
m bugfix, was using class instead of class_str in output
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:


--<table class="wikitable">
--<table class="wikitable">
--{{#invoke: TableGenerator | generateHtmlTable | cols=3 | onlyBody=true | cell_values=Item 1, Item 20, Item 3, Item 40, Item 5 }}
--{{#invoke: TableGenerator | generateHtmlTable | cols=3 | only_body=true | cell_values=Item 1, Item 20, Item 3, Item 40, Item 5 }}
--</table>
--</table>


Line 12: Line 12:
     local args = frame.args
     local args = frame.args
     local cols = tonumber(args['cols']) or 3  -- Default number of columns is 3
     local cols = tonumber(args['cols']) or 3  -- Default number of columns is 3
     local onlyBody = args['onlyBody'] == 'true'  -- Check if onlyBody is set to true
     local only_body = args['only_body'] == 'true'  -- Check if only_body is set to true
     local class_is_statbox = args['class'] == 'Statbox_hero'
     local class = args['class']
    local class_is_statbox = class == 'Statbox_hero'
     local cell_values = args['cell_values'] or ""  -- Get the cell values argument
     local cell_values = args['cell_values'] or ""  -- Get the cell values argument
     local values = {}  -- Table to hold the individual cell values
     local values = {}  -- Table to hold the individual cell values
Line 25: Line 26:
     local result = ''
     local result = ''
      
      
     if not onlyBody then
     if not only_body then
         result = result .. '<table class="wikitable">\n'
         result = result .. '<table class="wikitable">\n'
     end
     end
Line 40: Line 41:


         -- If the value contains a " 0 " then it will be colored slightly darker
         -- If the value contains a " 0 " then it will be colored slightly darker
         local class = ''
         local class_str = ''
         if (class_is_statbox) then
         if (class_is_statbox) then
        if value:find(" 0[^%.]") then
        if value:find(" 0[^%.]") then
            class = ' class="darker"'
            class_str = ' class="darker"'
        end
        end
        else
        if (class ~= nil) then
        class_str = ' class="' .. class .. '"'
        end
     end
     end


         -- Add the value as a table cell with the appropriate class
         -- Add the value as a table cell with the appropriate class
         result = result .. '    <td' .. class .. '>' .. value .. '</td>\n'
         result = result .. '    <td' .. class_str .. '>' .. value .. '</td>\n'
         count = count + 1
         count = count + 1
     end
     end
Line 57: Line 62:
     end
     end


     if not onlyBody then
     if not only_body then
         result = result .. '</table>'
         result = result .. '</table>'
     end
     end