Module:Template redirection

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 = '' 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..'' else categorie = categories..'' end else categorie = categories..'' end

return categories

end

-- Fonction principale function p.generateBandeau( 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 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..' (['..pageSpeciale:fullUrl('hidetrans=0&hidelinks=1&hideredirs=0&hideimages=1')..' vérifier son utilisation]) .'

if arguments['type'] ~= nil and arguments['type'] ~= '' then pTexte = pTexte..' Motif : '..lang:ucfirst(arguments['type'])..'.' else if not obsolete then pTexte = pTexte..' 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