« Module:Rotation de contenu » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 2 : | Ligne 2 : | ||
function p.choose(content, fragment_size) | function p.choose(content, fragment_size) | ||
local size = tonumber(fragment_size) | |||
if not fragment_size then | |||
if not fragment_size or fragment_size > #content then | |||
return content | return content | ||
end | end | ||
local day_number = os.date("*t").yday | local day_number = os.date("*t").yday | ||
local n = day_number % #anecdotes | |||
local n = day_number % # | local m = (day_number + number_of_anecdotes - 1) % #anecdotes | ||
local m = (day_number + | |||
if n == 0 then | if n == 0 then | ||
Ligne 36 : | Ligne 35 : | ||
function p.build(frame) | function p.build(frame) | ||
content = frame.args | content = frame.args | ||
fragment_size = frame.args[' | fragment_size = frame.args['nombre'] | ||
local list = '<ul>' | local list = '<ul class="avt-anecdotes">' | ||
for i, k in ipairs(p.choose(content, fragment_size)) do | for i, k in ipairs(p.choose(content, fragment_size)) do | ||
list = list .. '<li>' .. k .. '</li>' | list = list .. '<li>' .. k .. '</li>' |
Version du 25 juin 2022 à 12:32
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 fragment_size or fragment_size > #content then
return content
end
local day_number = os.date("*t").yday
local n = day_number % #anecdotes
local m = (day_number + number_of_anecdotes - 1) % #anecdotes
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.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
end
return p