« Module:Rotation de contenu » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(4 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
function p.choose(content, fragment_size) | function p.choose(content, fragment_size) | ||
if not | local size = tonumber(fragment_size) | ||
if not size or 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 % #content | local n = day_number % #content | ||
if n == 0 then | if n == 0 then | ||
n = 1 | n = 1 | ||
end | |||
m = | local gap = #content - n + 1 | ||
local m | |||
if gap < size then | |||
m = size - gap | |||
else | |||
m = n + size - 1 | |||
end | end | ||
local fragment = {} | local fragment = {} | ||
if n | if n > m then | ||
fragment = { unpack(content, n) } | fragment = { unpack(content, n) } | ||
for i = 1, m do | for i = 1, m do | ||
table.insert(fragment, content[i]) | table.insert(fragment, content[i]) | ||
end | end | ||
else | |||
fragment = { unpack(content, n, m) } | |||
end | end | ||
Ligne 34 : | Ligne 38 : | ||
function p.build(frame) | function p.build(frame) | ||
local fragment_size = frame.args['nombre'] | |||
local content = {} | |||
for i, v in ipairs(frame.args) do | |||
table.insert(content, v) | |||
end | |||
local list = '<ul class="avt-anecdotes">' | local list = '<ul class="avt-anecdotes">' | ||
Ligne 42 : | Ligne 50 : | ||
end | end | ||
list = list .. '</ul>' | list = list .. '</ul>' | ||
return list | return list | ||
end | end | ||
return p | return p |
Dernière version du 25 juin 2022 à 13:58
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)
local fragment_size = frame.args['nombre']
local content = {}
for i, v in ipairs(frame.args) do
table.insert(content, v)
end
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