Module:Carrousel

Une page de Wikipédia, l'encyclopédie libre.

 Documentation[créer] [purger]
local z = {}

 
function z.modele_m(nom)
    return "[[Modèle:" .. (nom or "") .. "|{{" .. (nom or "") .. "}}]]"
end

function z.carrousel(frame)
    -- les paramètres issus de l'utilisation du modèle associé
    local args = frame.args --:getParent().args
    -- texte résultat
    local res = ""
 
    -- ouverture du div correspondant
    res = res .. '<div class="carrousel">'

    -- s'il n'y a aucun paramètre donné → erreur
    if (args[1] == nil or args[1] == "") then
        res = res .. '<span class="error">Erreur de paramétrage de ' .. z.modele_m("Carrousel") .. ' : le paramètre <code>1</code> est obligatoire.</span></div>'
        -- si NS article → ajout de la catégorie
        if (frame:preprocess("{{NAMESPACE}}") == "") then
            res = res .. "[[Catégorie:Page utilisant un modèle avec une syntaxe erronée|Carrousel]]"
        end
        return res
    end
 
    -- on parcourt les paramètres dans l'ordre 
    -- pour les insérer comme une galerie 
    -- (affichage par défaut sans javascript)

    res = res .. '<div class="carrousel_default"><gallery>'
    local pos = 1
    while (args[pos]) do
        -- paramamètre impair : image ; si paramètre pair : légende
        if (args[pos]) then
            res = res .. args[pos]
        end
        if (args[pos+1]) then
            res = res .. '|' .. args[pos+1]
        end
        res = res ..  '\n'
        -- paramètres suivants
        pos = pos + 2
    end
    res = res .. '</gallery>\n{{message galerie}}</div>'

 
    -- on parcourt les paramètres dans l'ordre 
    -- pour les insérer comme un carrousel 
    -- (invisible sans javascript)

    res = res .. '<div class="carrousel_javascript" style="display:none;">'


    res = res .. '</div>'



    -- on ferme le carrousel
    res = res .. '</div>'

    -- on retourne le résultat
    return frame:preprocess(res)
end

return z