Module:Multiparamètres

De Lagny-sur-Marne Wiki
Version datée du 7 janvier 2017 à 01:48 par 0x010D (discussion | contributions) (système plus évolué, permettant ici de répéter l'item)
Aller à la navigation Aller à la recherche

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