Module:IconUtils

De Eco - Wiki Français
Aller à :navigation, rechercher

La documentation pour ce module peut être créée à Module:IconUtils/doc

local p = {}

function p.main(param)
    local Utils = require('Module:Utils')
    local ItemData = require('Module:ItemData') or {}
    local args = Utils.normalise(param)

    if not args.id or args.id == '' then
        return "Module:IconUtils 'id' must be specified."
    end

    local Icon = args.id .. "_Icon.png"
    local IconSize = args.size and args.size ~= '' and args.size or 28
    local IconStyle = args.style and args.style ~= '' and args.style or '1'

    -- ==========================
    -- Récupération nom auto
    -- ==========================
    local name = args.name
    local link = args.link
    local defaultLang = "French"

    if not name or name == '' or not link or link == '' then
        for _, item in pairs(ItemData) do
            if type(item) == "table" and item.ID == args.id and item.Name then
                local fr = item.Name[defaultLang]
                local en = item.Name['English']

                if (not name or name == '') then
                    if fr and fr ~= '' then
                        name = fr
                    elseif en and en ~= '' then
                        name = en
                    else
                        name = args.id
                    end
                end

                if (not link or link == '') then
                    if fr and fr ~= '' then
                        link = fr
                    elseif en and en ~= '' then
                        link = en
                    else
                        link = args.id
                    end
                end
            end
        end
    end

    if not name or name == '' then name = args.id end
    if not link or link == '' then link = name end

    -- Construit le lien final
    local IconLink = '[[' .. link .. ']]'
    local IconTextLine = '  ' .. IconLink
    local IconTextBr   = '<br>' .. IconLink

    if IconStyle == '1' then
        return '[[file:'.. Icon ..'|'.. IconSize ..'px|link='.. IconLink ..']]'
    elseif IconStyle == '2' then
        return '[[file:'.. Icon ..'|'.. IconSize ..'px|link='.. IconLink ..']]' .. IconTextLine
    elseif IconStyle == '3' then
        return '[[file:'.. Icon ..'|'.. IconSize ..'px|link='.. IconLink ..']]' .. IconTextBr
    elseif IconStyle == '4' then
        return '<div class="IconFrame">[[file:'.. Icon ..'|'.. IconSize ..'px|link='.. IconLink ..']]' .. IconTextBr .. '</div>'
    end
end

return p