Module:Catégorise

Une page de Wikiversité, la communauté pédagogique libre.

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