Aller au contenu

Module:Carrousel

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 26 février 2013 à 21:11 et modifiée en dernier par Dr Brains (discuter | contributions) (Nouvelle page : local z = {} function z.modele_m(nom) return "{{" .. (nom or "") .. "}}" end function z.carrousel() -- les paramètres issus de l'uti...). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

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

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

function z.carrousel()
    -- les paramètres issus de l'utilisation du modèle associé
    local args = frame: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
        -- si paramamètre impair : image ; sinon : légende
        if (pos%2 == 1) then
            res = res .. args[pos]
        else
            res = res .. "|" .. args[pos] .. "\n"
        end
        -- suivant
        pos = pos + 1
    end
    res = res .. '</gallery>{{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">';
    res = res .. '</div>';

    -- on retourne le résultat
    return res
end

return z