Jump to content

Module:MaterialInfobox: Difference between revisions

From Elite Dangerous Wiki
Content deleted Content added
Correct variable names and handling all the cases
That last edit worked, so let's rename that helper function and do it for values as well.
Line 35: Line 35:
end
end


function SplitHelperMethod(func_name, value)
function SplitRunFunction(func_name, value)
if type( func_name ) == "string" then
if type( func_name ) == "string" then
if not HF.isempty( func_name ) then
if not HF.isempty( func_name ) then
Line 48: Line 48:
function Infobox.SplitLabelMethod( field, vars )
function Infobox.SplitLabelMethod( field, vars )
return {
return {
SplitHelperMethod( field.LabelLeftMethod, field.LabelLeft ),
SplitRunFunction( field.LabelLeftMethod, field.LabelLeft ),
SplitHelperMethod( field.LabelRightMethod, field.LabelRight )
SplitRunFunction( field.LabelRightMethod, field.LabelRight )
}
}
end
end
function Infobox.SplitValueMethod( field, vars )
function Infobox.SplitValueMethod( field, vars )
return { "TestValue1", "TestValue2" } --[[ {
return {
Infobox[ field.LeftValueMethod ]( field.LeftValue ),
SplitRunFunction( field.ValueLeftMethod, field.ValueLeft ),
Infobox[ field.RightValueMethod ]( field.RightValue )
SplitRunFunction( field.ValueRightMethod, field.ValueRight )
} --]]
}
end
end



Revision as of 02:52, 11 December 2015

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 SplitRunFunction(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 {
        SplitRunFunction( field.LabelLeftMethod, field.LabelLeft ),
        SplitRunFunction( field.LabelRightMethod, field.LabelRight )
    }
end
function Infobox.SplitValueMethod( field, vars )
    return {
        SplitRunFunction( field.ValueLeftMethod, field.ValueLeft ),
        SplitRunFunction( field.ValueRightMethod, field.ValueRight )
    }
end

return Infobox