Module:Présentation

De Wiki Seb35
Aller à : navigation, rechercher

La documentation pour ce module peut être créée à Module:Présentation/doc

Erreur de script : Erreur LUA : Erreur interne : L'interpréteur s'est arrêté avec le statut « 127 ».

--[[  

]]

local presentation = {}

function presentation.total( frame )
    local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
    return table.getn( sequence )
end

function presentation.current( frame )
    local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
    for i, v in pairs( sequence ) do
        if v == mw.title.getCurrentTitle().fullText then
            return i
        end
    end
    return 0
end

function presentation.next( frame )
    local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
    for i, v in pairs( sequence ) do
        if v == mw.title.getCurrentTitle().fullText then
            return sequence[i+1]
        end
    end
    if not mw.title.getCurrentTitle().isSubpage then
        return sequence[1]
    end
    return ''
end

function presentation.previous( frame )
    local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
    for i, v in pairs( sequence ) do
        if v == mw.title.getCurrentTitle().fullText then
            return sequence[i-1]
        end
    end
    return ''
end

function presentation._expandSequence( title )
    local list = {};
    title = title.rootPageTitle;
    while true do
        if title:subPageTitle( '0' ).exists then
            title = title:subPageTitle( '0' )
        elseif title:subPageTitle( '1' ).exists then
            title = title:subPageTitle( '1' )
        elseif tonumber(title.subpageText) ~= nil then
            if not title.exists then
                if title.baseText == title.rootText then
                    break
                end
                title = title.basePageTitle.basePageTitle:subPageTitle( tostring(tonumber(title.basePageTitle.subpageText)+1) )
            else
                title = title.basePageTitle:subPageTitle( tostring(tonumber(title.subpageText)+1) )
            end
        else
            break
        end
        if title.exists then
            list[table.getn(list)+1] = title.fullText
        end
    end
    return list
end

return presentation