Module:Catégorise
Ce module contient des fonctions permettant de faire certaine catégorisation dans les modèles.
La fonction p.nbrchap permet de compter le nombre de chapitres dans une leçon et de catégoriser en conséquence.
La fonction p.catcours permet de catégoriser une leçon du jour dans les catégories des cours auquel appartient la leçon du jour.
local p = {}
local n = {"un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze",
"seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt et un", "vingt-deux", "vingt-trois", "vingt-quatre",
"vingt-cinq", "vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente et un", "trente-deux", "trente-trois",
"trente-quatre", "trente-cinq", "trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante" }
function p.nbrchap(frame)
local reponse = ""
local nombre = 0
local model = frame:getParent()
for index, objet in ipairs(model.args) do
nombre = nombre + 1
end
if nombre == 0 then
reponse = "[[Catégorie:Leçons sans chapitre]]"
elseif nombre == 1 then
reponse = "[[Catégorie:Leçons avec un seul chapitre]]"
else
reponse = "[[Catégorie:Leçons avec "..n[nombre].." chapitres]]"
end
return reponse
end
function p.catcours(frame)
local para = frame.args[1]
local retour = ""
local taille = mw.ustring.len(para)
local debut,fin = 1,taille
local cours = {}
local index = 1
while debut < taille do
if mw.ustring.sub(para,debut,debut) == "[" then
fin = debut
while mw.ustring.sub(para,fin,fin) ~= "]" do
fin = fin + 1
end
cours[index] = mw.ustring.sub(para,debut+2,fin-1)
index = index + 1
debut = fin
else
debut = debut + 1
end
end
for id,crs in ipairs(cours) do
retour = retour.."[[Catégorie:"..crs.."]] "
end
return retour
end
return p