Différences entre les versions de « Module:Présentation »

De Wiki Seb35
Aller à la navigation Aller à la recherche
(bug résolu (normalement) : récursion infinie lorsque des pages hiérarchiques sont utilisées)
(cht’i bug)
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 12 : Ligne 12 :
function presentation.current( frame )
function presentation.current( frame )
     local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
     local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
     for i,v in pairs( sequence ) do
     for i, v in pairs( sequence ) do
         if v == mw.title.getCurrentTitle().fullText then
         if v == mw.title.getCurrentTitle().fullText then
             return i
             return i
Ligne 22 : Ligne 22 :
function presentation.next( frame )
function presentation.next( frame )
     local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
     local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
     for i,v in pairs( sequence ) do
     for i, v in pairs( sequence ) do
         if v == mw.title.getCurrentTitle().fullText then
         if v == mw.title.getCurrentTitle().fullText then
             return sequence[i+1]
             return sequence[i+1]
         end
         end
    end
    if not mw.title.getCurrentTitle().isSubpage then
        return sequence[1]
     end
     end
     return ''
     return ''
Ligne 32 : Ligne 35 :
function presentation.previous( frame )
function presentation.previous( frame )
     local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
     local sequence = presentation._expandSequence( mw.title.getCurrentTitle() )
     for i,v in pairs( sequence ) do
     for i, v in pairs( sequence ) do
         if v == mw.title.getCurrentTitle().fullText then
         if v == mw.title.getCurrentTitle().fullText then
             return sequence[i-1]
             return sequence[i-1]
Ligne 46 : Ligne 49 :
         if title:subPageTitle( '0' ).exists then
         if title:subPageTitle( '0' ).exists then
             title = title:subPageTitle( '0' )
             title = title:subPageTitle( '0' )
            list[table.getn(list)+1] = title.fullText
         elseif title:subPageTitle( '1' ).exists then
         elseif title:subPageTitle( '1' ).exists then
             title = title:subPageTitle( '1' )
             title = title:subPageTitle( '1' )
            list[table.getn(list)+1] = title.fullText
         elseif tonumber(title.subpageText) ~= nil then
         elseif tonumber(title.subpageText) ~= nil and title.basePageTitle:subPageTitle( tostring(tonumber(title.subpageText)+1) ).exists then
            if not title.exists then
            title = title.basePageTitle:subPageTitle( tostring(tonumber(title.subpageText)+1) )
                if title.baseText == title.rootText then
             list[table.getn(list)+1] = title.fullText
                    break
        elseif title.baseText ~= title.rootText then
                end
            title = title.basePageTitle.basePageTitle:subpageTitle( tostring(tonumber(title.basePageTitle.subpageText)+1) )
                title = title.basePageTitle.basePageTitle:subPageTitle( tostring(tonumber(title.basePageTitle.subpageText)+1) )
            if title.exists then
             else
                list[table.getn(list)+1] = title.fullText
                title = title.basePageTitle:subPageTitle( tostring(tonumber(title.subpageText)+1) )
             end
             end
         else
         else
             break
             break
        end
        if title.exists then
            list[table.getn(list)+1] = title.fullText
         end
         end
     end
     end

Version actuelle datée du 23 avril 2015 à 17:48

--[[

]]

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