Module:Episode/test
Apparence
| Il sera peut-être nécessaire de créer une page documentation pour ce module Scribunto programmé dans la page créer Les éditeurs peuvent faire des tests sur les pages bac à sable (créer | miroir) et études de cas (créer) du module. Veuillez ajouter les catégories dans la sous-page /documentation. Sous-pages de ce module. |
------------------------------------------------------------
-- Module:Episode/test
-- Affiche tous les épisodes de toutes les séries
-- Utilise Module:Episode/MultiSeries
------------------------------------------------------------
local p = {}
local Multi = require("Module:Episode/MultiSeries")
------------------------------------------------------------
-- Tri : série → saison → épisode
------------------------------------------------------------
local function sort_episodes(list)
table.sort(list, function(a, b)
if a.series == b.series then
if tonumber(a.season) == tonumber(b.season) then
return tonumber(a.episode) < tonumber(b.episode)
end
return tonumber(a.season) < tonumber(b.season)
end
return a.series < b.series
end)
end
------------------------------------------------------------
-- Génération du tableau wiki
------------------------------------------------------------
local function render_table(list)
local out = {}
table.insert(out, '{| class="wikitable sortable" style="width:100%"')
table.insert(out, "! Série !! Saison !! Épisode !! ID !! Titre FR !! Titre EN !! Alias (normalisés)")
for _, ep in ipairs(list) do
table.insert(out, "|-")
table.insert(out, string.format(
"| %s || %s || %s || %s || %s || %s || %s",
ep.series,
ep.season,
ep.episode,
ep.id,
ep.title_fr or "",
ep.title_en or "",
table.concat(ep.aliases or {}, "<br>")
))
end
table.insert(out, "|}")
return table.concat(out, "\n")
end
------------------------------------------------------------
-- Fonction principale #invoke
------------------------------------------------------------
function p.all(frame)
local list = {}
-- Copier la liste complète
for _, ep in ipairs(Multi.episodes) do
table.insert(list, ep)
end
-- Trier
sort_episodes(list)
-- Rendre le tableau
return render_table(list)
end
return p