« Module:Rotation de contenu » : différence entre les versions
Page créée avec « local p = {} function p.choose(content, size) -- On retourne tout le contenu if not size then return content end day_number = os.date("*t").yday n = day_number % #content m = (day_number + size - 1) % #content if n == 0 then n = 1 m = m + 1 elseif m == 0 then m = 1 n = n - 1 end local fragment = {} if n < m then fragment = { unpack(content, n, m) } else fragment = { unpack(content, n) } for i = 1, m do table.insert(fragment... » |
mAucun résumé des modifications |
||
Ligne 3 : | Ligne 3 : | ||
function p.choose(content, size) | function p.choose(content, size) | ||
-- On retourne tout le contenu | -- On retourne tout le contenu | ||
if | if size == nil then | ||
return content | return content | ||
end | end |
Version du 24 février 2022 à 10:37
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, size)
-- On retourne tout le contenu
if size == nil then
return content
end
day_number = os.date("*t").yday
n = day_number % #content
m = (day_number + size - 1) % #content
if n == 0 then
n = 1
m = m + 1
elseif m == 0 then
m = 1
n = n - 1
end
local fragment = {}
if n < m then
fragment = { unpack(content, n, m) }
else
fragment = { unpack(content, n) }
for i = 1, m do
table.insert(fragment, content[i])
end
end
return fragment
end
function p.build(frame)
content = frame:getParent().args
fragment_size = frame.args[1]
local list = '<ul>'
for i, k in ipairs(p.choose(content, fragment_size)) do
list = list .. '<li>' .. k .. '</li>'
end
list = list .. '</ul>'
return list
end
return p