« Module:Multiparamètres » : différence entre les versions
Aller à la navigation
Aller à la recherche
hotfix |
système plus évolué, permettant ici de répéter l'item |
||
Ligne 2 : | Ligne 2 : | ||
function p.brut(frame) | function p.brut(frame) | ||
return p.main(frame, | return p.main(frame, function (item) return item end) | ||
end | end | ||
function p.lien(frame) | function p.lien(frame) | ||
return p.main(frame, '[[' | return p.main(frame, function (item) return '[['..item..']]' end) | ||
end | end | ||
function p.categorie(frame) | function p.categorie(frame) | ||
return p.main(frame, '[[:Catégorie:' | return p.main(frame, function (item) return '[[:Catégorie:'..item..'|'..item..']]' end) | ||
end | end | ||
function p.utilisateur(frame) | function p.utilisateur(frame) | ||
return p.main(frame, '[[Utilisateur:' | return p.main(frame, function (item) return '[[Utilisateur:'..item..'|'..item..']]' end) | ||
end | end | ||
function p.main(frame, | function p.main(frame, formatter) | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
Ligne 28 : | Ligne 28 : | ||
local item = trimFunc(v) | local item = trimFunc(v) | ||
if item ~= '' then | if item ~= '' then | ||
item = | item = formatter(item) | ||
if gras then | if gras then | ||
item = "'''" .. item .. "'''" | item = "'''" .. item .. "'''" |
Version du 7 janvier 2017 à 01:48
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 ''..item..'' end)
end
function p.utilisateur(frame)
return p.main(frame, function (item) return ''..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
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