Module:Multiparamètres : Différence entre versions

De Lagny-sur-Marne Wiki
Aller à : navigation, rechercher
m (A protégé « Module:Multiparamètres » : Modèle très utilisé ([Modifier=Autoriser uniquement les utilisateurs autopatrolled] (infini) [Renommer=Autoriser uniquement les utilisateurs autopatrolled] (infini)))
(implémentation {{MultiParamètres-Lien}}, etc.)
Ligne 1 : Ligne 1 :
 
local p = {}
 
local p = {}
  
function p.main(frame)
+
function p.brut(frame)
 +
    return main(frame, '', '')
 +
end
 +
 
 +
function p.lien(frame)
 +
    return main(frame, '[[', ']]')
 +
end
 +
 
 +
function p.categorie(frame)
 +
    return main(frame, '[[:Catégorie:', ']]')
 +
end
 +
 
 +
function p.utilisateur(frame)
 +
    return main(frame, '[[Utilisateur:', ']]')
 +
end
 +
 
 +
local function main(frame, prefixe, suffixe)
  
 
     local args = frame:getParent().args
 
     local args = frame:getParent().args
Ligne 12 : Ligne 28 :
 
         local item = trimFunc(v)
 
         local item = trimFunc(v)
 
         if item ~= '' then
 
         if item ~= '' then
 +
            item = prefixe .. item .. suffixe
 
             if gras then
 
             if gras then
 
                 item = "'''" .. item .. "'''"
 
                 item = "'''" .. item .. "'''"

Version du 7 janvier 2017 à 01:30

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

local p = {}

function p.brut(frame)
    return main(frame, '', '')
end

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

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

function p.utilisateur(frame)
    return main(frame, '[[Utilisateur:', ']]')
end

local function main(frame, prefixe, suffixe)

    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 = prefixe .. item .. suffixe
            if gras then
                item = "'''" .. item .. "'''"
            end
            items[#items + 1] = item
        end
    end

    if #items == 0 then
        return ''
    elseif #items == 1 then
        return items[1]
    else
        -- le paramètre "et" peut être défini à vide, exemple : [[Modèle:Module biblio/responsabilité principale]]
        local dernierSeparateur = (args.et and args.et or 'et')

        return table.concat(items, ', ', 1, #items - 1) .. ' ' .. dernierSeparateur .. ' ' .. items[#items]
    end

end

return p