Différences entre les versions de « Module:Présentation »
Aller à la navigation
Aller à la recherche
(cht’i bug) |
|||
(19 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 6 : | Ligne 6 : | ||
function presentation.total( frame ) | function presentation.total( frame ) | ||
local sequence = presentation._expandSequence( mw.title.getCurrentTitle() ) | |||
return table.getn( sequence ) | |||
end | end | ||
function presentation.current( frame ) | 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 | if v == mw.title.getCurrentTitle().fullText then | ||
return i | return i | ||
end | end | ||
end | end | ||
return 0 | |||
end | end | ||
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 | end | ||
if not mw.title.getCurrentTitle().isSubpage then | |||
return sequence[1] | |||
end | |||
return '' | |||
end | end | ||
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] | ||
end | end | ||
end | end | ||
return '' | |||
end | end | ||
function presentation._expandSequence( title ) | function presentation._expandSequence( title ) | ||
local list = {}; | local list = {}; | ||
title = title.rootPageTitle; | |||
while true do | while true do | ||
if title | if title:subPageTitle( '0' ).exists then | ||
title = title | title = title:subPageTitle( '0' ) | ||
elseif title:subPageTitle( '1' ).exists then | |||
elseif title | title = title:subPageTitle( '1' ) | ||
title = title | 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) ) | |||
title = title.basePageTitle | else | ||
title = title.basePageTitle:subPageTitle( tostring(tonumber(title.subpageText)+1) ) | |||
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