Module:Rotation de contenu
Module qui permet de faire tourner du contenu en fonction du numéro de jour dans l'année. Il est utilisé par le modèle {{Anecdotes}}.
local p = {}
function p.choose(content, fragment_size)
local size = tonumber(fragment_size)
if not size or size >= #content then
return content
end
local day_number = os.date("*t").yday
local n = day_number % #content
if n == 0 then
n = 1
end
local gap = #content - n + 1
local m
if gap < size then
m = size - gap
else
m = n + size - 1
end
local fragment = {}
if n > m then
fragment = { unpack(content, n) }
for i = 1, m do
table.insert(fragment, content[i])
end
else
fragment = { unpack(content, n, m) }
end
return fragment
end
function p.build(frame)
content = frame.args
fragment_size = frame.args['nombre']
local list = '<ul class="avt-anecdotes">'
for i, k in ipairs(p.choose(content, fragment_size)) do
list = list .. '<li>' .. k .. '</li>'
end
list = list .. '</ul>'
return list .. '\n\nfragment_size = ' .. fragment_size .. '\n\#content = ' .. #content
end
return p