Module:Redirection de modèle

From CryptoWiki

Documentation for this module may be created at Module:Redirection de modèle/doc


local p = { }

local lang = mw.language.new( 'fr' )

-- Détermine si la redirection est obsolète.
-- Prend en paramètre la liste des arguments fournis au module.
-- Retourne un booléen.
local function estObsolete( arguments )

	local paramType = arguments['type']
	local paramObsolete = arguments['obsolète']
	local paramConserver = arguments['à conserver']

	if paramObsolete ~= nil then
		return true
	elseif paramConserver ~= nil then
		return false
	else
		if paramType ~= nil then
			if paramType == 'palette' then
				return true
			elseif paramType == 'utilisateur' then
				return true
			elseif paramType == 'infobox' then
				return true
			else
				return false
			end
		else
			return false
		end
	end

end

-- Génère la catégorisation.
-- Prend en paramètre la valeur du paramètre 'type' fournie au module
-- et l'information sur le fait que la redirection est obsolète ou non.
-- Retourne du wikicode contenant les catégories.
local function obtenirCategories( paramType, obsolete )

	local categories = ''

	if obsolete then
		categories = '[[Catégorie:Redirection de modèle obsolète]]'
	end

	if paramType ~= nil then
		lcParamType = lang:lcfirst(paramType)
		local cat = mw.title.new( 'Catégorie:Redirection de modèle - '..lcParamType )
		if cat.exists then
			categories = categories..'[[Catégorie:Redirection de modèle - '..lcParamType..']]'
		else
			categorie = categories..'[[Catégorie:Redirection de modèle]]'
		end
	else
		categorie = categories..'[[Catégorie:Redirection de modèle]]'
	end

	return categories

end

-- Fonction principale
function p.genererBandeau( frame )

	local arguments = frame:getParent().args
	local obsolete = estObsolete( arguments )
	local titreCourant = mw.title.getCurrentTitle()

	-- Génération du paramètre 'niveau'
	local pNiveau = 'information'

	-- Génération du paramètre 'icône'
	local pIcone = 'Redirect arrow without text.svg'

	-- Génération du paramètre 'titre'
	local pTitre = 'Cette redirection '

	if obsolete then
		pTitre = pTitre..'est obsolète.'
	else
		pTitre = pTitre..'doit être conservée.'
	end

	-- Génération du paramètre 'texte'
	local pTexte = 'La [[Aide:Redirection|redirection]] \'\'\''..titreCourant.text..'\'\'\''

	if obsolete then
		pTexte = pTexte..' est obsolète et ne pourra être supprimée qu\'une fois son remplacement achevé'
	else
		pTexte = pTexte..' est utile et ne doit pas être supprimée'
	end

	local pageSpeciale = mw.title.new( 'Spécial:Pages liées/'..titreCourant.fullText )
	pTexte = pTexte..' <small>(['..pageSpeciale:fullUrl('hidetrans=0&hidelinks=1&hideredirs=0&hideimages=1')..' vérifier son utilisation])</small>.'


	if arguments['type'] ~= nil and arguments['type'] ~= '' then
		pTexte = pTexte..'<br>Motif : '..lang:ucfirst(arguments['type'])..'.'
	else
		if not obsolete then
			pTexte = pTexte..'<br>Motif : (à compléter).'
		end
	end

	if arguments['message'] ~= nil then
		pTexte = pTexte..' '..arguments['message']
	end

	local module = require( 'Module:Bandeau' )
	local args = { }
	args['niveau'] = pNiveau
	args['icône'] = pIcone
	args['titre'] = pTitre
	args['texte'] = pTexte

	local chaine = module._bandeauAvertissement( args )

	-- Ajout des catégories
	if arguments['nocat'] == nil then
		local categories = obtenirCategories( arguments['type'], obsolete )
		chaine = chaine..categories
	end

	-- Fin
	return chaine

end

return p