Bienvenue sur le wiki de Nuit debout, nous sommes le 2973 mars.




Module:Mention

De NuitDebout
Aller à : navigation, rechercher

La documentation pour ce module peut être créée à Module:Mention/doc

local p = {}

function p.mention(frame)
	-- Nombre maximum de notifs autorisées par appel
	local NB_MAX_MENTION = 10
	local result = ""
	-- Récupération des paramètres passés au modèle invoquant ce module
	local args = frame:getParent().args
	
	-- S'il y a des paramètres non nommés (usage standard)
	if args[1] then
		-- On écrit déjà le premier utilisateur
		result = '[[User:' .. args[1] .. '|' .. args[1] .. ']]'
		local i = 2
		-- S'il y a d'autres paramètres
		if args[2] then
			-- Tant qu'on est pas arrivés au dernier paramètre, ou à la limite fixée par NB_MAX_MENTION, on inscrit tous les noms
			while args[i+1] and i < NB_MAX_MENTION do
				result = result .. ', [[User:' .. args[i] .. '|' .. args[i] .. ']]'
				i = i+1
			end
			-- Et on s'occupe du dernier utilisateur à part (on utilise "et" au lieu d'une virgule) 
			result = result .. ' et [[User:' .. args[i] .. '|' .. args[i] .. ']]'
		end
	-- Le modèle Mention fut utilisé à un moment en utilisant des paramètres nommés, le bloc suivant fait la même chose que ce qui précède dans le cas de paramètres nommés
	elseif args['texte1'] then
		result = '[[User:' .. args['texte1'] .. '|' .. args['texte1'] .. ']]'
		local i = 2
		if args['texte2'] then
			while args['texte' .. tonumber(i+1)] and i < NB_MAX_MENTION do
				result = result .. ', [[User:' .. args['texte' .. tonumber(i)] .. '|' .. args['texte' .. tonumber(i)] .. ']]'
				i = i+1
			end
			result = result .. ' et [[User:' .. args['texte' .. tonumber(i)] .. '|' .. args['texte' .. tonumber(i)] .. ']]'
		end
	end
	-- Et finalement on retourne la chaîne de caractères qu'on vient de construire
	return result
end

return p