« Module:Episode/test » : différence entre les versions
Apparence
Contenu supprimé Contenu ajouté
Page créée avec « ------------------------------------------------------------ -- 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 ------------------------------------------------------------ loc... » |
Aucun résumé des modifications |
||
| Ligne 26 : | Ligne 26 : | ||
-- Génération du tableau wiki |
-- Génération du tableau wiki |
||
------------------------------------------------------------ |
------------------------------------------------------------ |
||
local function render_table(list) |
local function render_table(frame, list) |
||
local out = {} |
local out = {} |
||
| Ligne 40 : | Ligne 40 : | ||
ep.episode, |
ep.episode, |
||
ep.id, |
ep.id, |
||
ep.title_fr or "", |
frame:preprocess(ep.title_fr or ""), -- ✔ modèles interprétés |
||
ep.title_en or "", |
frame:preprocess(ep.title_en or ""), -- ✔ idem |
||
table.concat(ep.aliases or {}, "<br>") |
table.concat(ep.aliases or {}, "<br>") |
||
)) |
)) |
||
| Ligne 65 : | Ligne 65 : | ||
-- Rendre le tableau |
-- Rendre le tableau |
||
return render_table(list) |
return render_table(frame, list) |
||
end |
end |
||
Dernière version du 2 juin 2026 à 19:33
| 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(frame, 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,
frame:preprocess(ep.title_fr or ""), -- ✔ modèles interprétés
frame:preprocess(ep.title_en or ""), -- ✔ idem
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(frame, list)
end
return p