Module:MaterialInfobox

Revision as of 02:50, 11 December 2015 by Fandom>Srjek (Correct variable names and handling all the cases)

Documentation for this module may be created at Module:MaterialInfobox/doc

local Infobox = {}
local HF = require('Module:HF')

function Infobox.Newline( field, vars )
    local output = ''
    if not HF.isempty(field.Value) then
        local ships = HF.explode(';', field.Value)
        table.sort(ships)
        for i, ship in ipairs(ships) do
            output = output .. HF.trim(ship) .. '<br />'
        end
 
        if string.sub(output, -6) == '<br />' then
            output = string.sub( output, 1, -7 )
        end
 
        return output
    end
end

function Infobox.PreTitleIcon( field, vars )
    output = field.Value
    if not HF.isempty(field.Grade) then
        if field.Grade == 'Rare' or field.Grade == 'rare' then
            output = '[[File:placeholder.png|35px|link=]] ' .. output
        elseif field.Grade == 'Very common' or field.Grade == 'Very Common' or field.Grade == 'very common' then
            output = '[[File:placeholder.png|35px|link=]] ' .. output
        elseif field.Grade == 'Common' or field.Grade == 'common' then
            output = '[[File:placeholder.png|35px|link=]] ' .. output
        else
            output = output
        end
    end
    return output
end

function SplitHelperMethod(func_name, value)
    if type( func_name ) == "string" then
        if not HF.isempty( func_name ) then
            if type( Infobox[func_name] ) == "function" then
                return Infobox[func_name]( value )
            end
        end
    end
    return value
end

function Infobox.SplitLabelMethod( field, vars )
    return {
        SplitHelperMethod( field.LabelLeftMethod, field.LabelLeft ),
        SplitHelperMethod( field.LabelRightMethod, field.LabelRight )
    }
end
function Infobox.SplitValueMethod( field, vars )
    return { "TestValue1", "TestValue2" }  --[[ {
        Infobox[ field.LeftValueMethod ]( field.LeftValue ),
        Infobox[ field.RightValueMethod ]( field.RightValue )
    } --]]
end

return Infobox