Module:Multiparamètres

De Game of Rôles Le Wiki
Révision datée du 5 mai 2018 à 00:41 par AlphaPizza (discussion | contributions) (Module:Multiparamètres (wikipedia fr))
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Fonctions fournies par ce module :

  • brut(frame) – utilisé par {{Multiparamètres}}
  • lien(frame) – utilisé par {{Multiparamètres-Lien}}
  • categorie(frame) – utilisé par {{Multiparamètres-Catégorie}}
  • utilisateur(frame) – utilisé par {{Multiparamètres-Utilisateur}}

local p = {}

function p.brut(frame)
    return p._main(frame, function (item) return item end)
end

function p.lien(frame)
    return p._main(frame, function (item) return '[['..item..']]' end)
end

function p.categorie(frame)
    return p._main(frame, function (item) return '[[:Catégorie:'..item..'|'..item..']]' end)
end

function p.utilisateur(frame)
    return p._main(frame, function (item) return '[[Utilisateur:'..item..'|'..item..']]' end)
end

function p._main(frame, formatter)
    local args = frame:getParent().args
    local trimFunc = mw.text.trim -- cache accès global

    local gras = (args.gras and args.gras ~= '')
    local items = {}

    for i,v in ipairs(args) do
        local item = trimFunc(v)
        if item ~= '' then
            item = formatter(item)
            if gras then
                item = "'''" .. item .. "'''"
            end
            items[#items + 1] = item
        end
    end

    local dernierSeparateur = args.et and ( ' ' .. args.et .. ' ' )

    -- le paramètre "et" peut être défini à vide, exemple : [[Modèle:Module biblio/responsabilité principale]]
    if args.et == '' then
        dernierSeparateur = ' '
    end

    return mw.text.listToText( items, ', ', dernierSeparateur )
end

return p