Module:Redirection de modèle

La documentation pour ce module peut être créée à Module:Redirection de modèle/doc

local p = { }

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

-- 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 = '[[Kategori:Redireksyon modèl obsolète]]'
	end

	if paramType ~= nil then
		lcParamType = lang:lcfirst(paramType)
		local cat = mw.title.new( 'Kategori:Redirksyon modèl - '..lcParamType )
		if cat.exists then
			categories = categories..'[[Kategori:Redirksyon modèl - '..lcParamType..']]'
		else
			categorie = categories..'[[Kategori:Redirksyon modèl]]'
		end
	else
		categorie = categories..'[[Kategori:Redirksyon modèl]]'
	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 = 'Redireksyon sa a '

	if obsolete then
		pTitre = pTitre..' obsolète.'
	else
		pTitre = pTitre..' dwe konsève.'
	end

	-- Génération du paramètre 'texte'
	local pTexte = '[[Èd:Redireksyon|redireksyon]] \'\'\''..titreCourant.text..'\'\'\''

	if obsolete then
		pTexte = pTexte..'  obsolète epi li p ap la efase toutotan sa k ap raplase l la poko pare'
	else
		pTexte = pTexte..'  itil epi li pa dwe efase'
	end

	local pageSpeciale = mw.title.new( 'Espesyal:SakLye/'..titreCourant.fullText )
	pTexte = pTexte..' <small>(['..pageSpeciale:fullUrl('hidetrans=0&hidelinks=1&hideredirs=0&hideimages=1')..' verifye itilizasyon l])</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 : (pou konplete).'
		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