Aller au contenu

Module:Lire

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

Ce module répertorie les fonctions capables de lire un renseignement dans une page.


La fonction p.avancement retourne l'avancement d'une leçon donnée en paramètre.

Par exemple : Pour la leçon : Fonction logarithme, on obtient :

{{#invoke:Lire|avancement|[[Fonction logarithme]]}} nous retourne : 4


La fonction p.avancement est principalement destinée à être utilisé dans le Modèle:L pour que celui-ci affiche automatiquement l'avancement et qu'ainsi, on ne soit plus obligé de parcourir manuellement la Wikiversité pour mettre les avancements à jour dans les départements.


local p = {}

require("Module:Réserve")

function p.avancement(frame)
	local av,rep,fin = 9,1,1
	local texte = ""
	local page = decrochette(frame.args[1])            -- Suppression des doubles crochets
	page = "Discussion:"..page                         -- Sélection de la page de discussion de la leçon
	texte = lit(page)                                  -- Lecture de la page de discussion
	if texte then
		if mw.ustring.len(texte) < 40 then
			av = 7                                         -- La page n'a pas suffisament de caractéres pour contenir l'avancement
		else
			rep = mw.ustring.find(texte,"Évaluation")      -- Recherche de la position du modèle évaluation
			if rep then
				fin = mw.ustring.find(texte,'}}',rep)          -- Recherche de la position de la fin du modèle évaluation
				if fin then
					texte = mw.ustring.sub(texte,rep,fin)          -- Extraction du modèle évaluation
					rep=fin-rep                                    -- Calcul de la position ou est indiqué l'avancement
					while mw.ustring.sub(texte,rep,rep) == " " do  -- Pour supprimer d'éventuels espace avant les doubles accolades
						rep = rep - 1
					end
					av = tonumber(mw.ustring.sub(texte,rep,rep))   -- Extraction de l'avancement
					if av == nil then av = 8  end                  -- Si échec de l'extraction, l'indiquer en posant av = 8
				else
					av = 9
				end
			else
				av = 7
			end
		end
	end
	return av
end

function p.idfac(frame)
	return model(frame.args[1],"Leçon","idfaculté")
end

return p