« Module:Bandeau d'avertissement » : différence entre les versions

De Les Archives de Vault-Tec
Kharmitch (discussion | contributions)
m Possibilité de rendre dynamique le titre et la description d'un bandeau
Kharmitch (discussion | contributions)
Aucun résumé des modifications
Ligne 6 : Ligne 6 :


data = {
data = {
    ["données manquantes"] = {
        image        = "Génie de l'informatique.png",
        title        = "Il manque des données dans cet article.",
        description  = "Des données sont manquantes dans un tableau ou un modèle présentant des données. Vous pouvez aider les Archives de Vault-Tec en [{{fullurl:{{FULLPAGENAME}}|action=edit}} complétant] l'article.",
        category    = "Données manquantes"
    },
    ["à wikifier"] = {
        image        = "Coups super critiques.png",
        title        = "La mise en forme de cet article est à améliorer.",
        description  = "La mise en forme du texte ne suit pas les recommandations des Archives de Vault-Tec. La typographie, les liens internes ou externes, les conventions de style, la présentation des sources, etc. sont autant de points qui peuvent ne pas convenir voire être absents. Consulter le [[Les Archives de Vault-Tec:Guide de l'utilisateur|guide de l'utilisateur]] pour connaitre toutes nos recommandations.",
        category    = "À wikifier"
    },
["illustration manquante"] = {
image        = "portail image du jour.png",
title        = "Il manque une illustration pour cette article.",
description  = "En fonction de la nature du sujet, il peut s'agir d'une capture du jeu, d'un dessin, d'une photo, etc. Vous pouvez [[Spécial:Téléverser|téléverser]] un nouveau fichier ou consulter la [[:Catégorie:Images|médiathèque]] avant de l'ajouter à l'article. Consulter le [[Les Archives de Vault-Tec:Médias|guide de l'utilisateur]] pour connaitre toutes nos recommandations.",
category    = "Images demandées"
},
["ébauche"] = {
["ébauche"] = {
image        = "Atelier de rédaction.png",
image        = "Atelier de rédaction.png",
Ligne 21 : Ligne 39 :
description  = "Merci de le contacter sur sa page de discussion avant de modifier l'article. Sans réponse de sa part 72 heures après votre demande, vous êtes autorisé à modifier la page.",
description  = "Merci de le contacter sur sa page de discussion avant de modifier l'article. Sans réponse de sa part 72 heures après votre demande, vous êtes autorisé à modifier la page.",
category    = "Articles en cours"
category    = "Articles en cours"
},
}
}
}



Version du 26 juin 2021 à 16:17

La documentation pour ce module peut être créée à Module:Bandeau d'avertissement/doc

local p = {}

-----------------------------------------------------------
-----     Référentiel des bandeaux de maintenance     -----
-----------------------------------------------------------

data = {
    ["données manquantes"] = {
        image        = "Génie de l'informatique.png",
        title        = "Il manque des données dans cet article.",
        description  = "Des données sont manquantes dans un tableau ou un modèle présentant des données. Vous pouvez aider les Archives de Vault-Tec en [{{fullurl:{{FULLPAGENAME}}|action=edit}} complétant] l'article.",
        category     = "Données manquantes"
    },
    ["à wikifier"] = {
        image        = "Coups super critiques.png",
        title        = "La mise en forme de cet article est à améliorer.",
        description  = "La mise en forme du texte ne suit pas les recommandations des Archives de Vault-Tec. La typographie, les liens internes ou externes, les conventions de style, la présentation des sources, etc. sont autant de points qui peuvent ne pas convenir voire être absents. Consulter le [[Les Archives de Vault-Tec:Guide de l'utilisateur|guide de l'utilisateur]] pour connaitre toutes nos recommandations.",
        category     = "À wikifier"
    },
	["illustration manquante"] = {
		image        = "portail image du jour.png",
		title        = "Il manque une illustration pour cette article.",
		description  = "En fonction de la nature du sujet, il peut s'agir d'une capture du jeu, d'un dessin, d'une photo, etc. Vous pouvez [[Spécial:Téléverser|téléverser]] un nouveau fichier ou consulter la [[:Catégorie:Images|médiathèque]] avant de l'ajouter à l'article. Consulter le [[Les Archives de Vault-Tec:Médias|guide de l'utilisateur]] pour connaitre toutes nos recommandations.",
		category     = "Images demandées"
	},
	["ébauche"] = {
		image        = "Atelier de rédaction.png",
		title        = "Cet article est une ébauche et mériterait un meilleur développement.",
		description  = "Vous pouvez aider les Archives de Vault-Tec en partageant vos connaissances sur le sujet ([[Aide:Modifier les pages|comment ?]]) ; n'hésitez pas à consulter le [[Les Archives de Vault-Tec:Guide de l'utilisateur|guide de l'utilisateur]] pour connaitre toutes nos recommandations.",
		category     = "Ébauches"
	},
	["en cours"] = {
		image        = "Atelier de rédaction.png",
		title        = function(args)
			local user = args.utilisateur
			if user then user = '[[Utilisateur:'..user..'|'..user..']]' else user = 'utilisateur ?' end
			return "L'utilisateur " .. user .. " travaille en ce moment sur cet article."
		end,
		description  = "Merci de le contacter sur sa page de discussion avant de modifier l'article. Sans réponse de sa part 72 heures après votre demande, vous êtes autorisé à modifier la page.",
		category     = "Articles en cours"
	}
}

-----------------------------------------------------------

function p.build(frame)
	local args = {}
	args.nom = frame.args.nom
	
	local argsParent = frame:getParent().args
	for cle, val in pairs(argsParent) do
		if val then
			args[cle] = mw.text.trim(val)
		end
	end
	
	return p._build(args)
end

function p._build(args)
	local banner = data[args.nom:lower()]
	
	local image = banner.image or 'bandeau de maintenance - defaut.png'
	local title = banner.title or 'Titre ?'
	local description = banner.description
	local category = banner.category or ''
	
	local game = args[1] or ''
	local note = args[2]
	
	if category ~= '' then
		if game ~= '' then
			game = require( 'Module:Abréviation' ).name(game) or ''
			if game ~= '' then
				game = ' (' .. game .. ')'
			end
		end
		category = '[[Catégorie:' .. category .. game .. ']]'
	end
	
	if type(title) == 'function' then
		title = title(args)
	end
	
	title = mw.html.create( 'p' )
		:addClass( 'avt-maintenance-banner-title' )
		:wikitext( title )
		:done()
	
	if description then
		if type(description) == 'function' then
			description = description(args)
		end
		
		description = mw.html.create( 'p' )
			:addClass( 'avt-maintenance-banner-desc' )
			:wikitext( description )
			:done()
	end
	
	if note then
		note = mw.html.create( 'p' )
			:addClass( 'avt-maintenance-banner-note' )
			:wikitext( 'Note : ' .. note )
			:done()
	end
	
	local res = mw.html.create( 'div' )
		:addClass( 'avt-maintenance-banner noexcerpt' )
		:tag( 'div' )
			:addClass( 'avt-maintenance-banner-img' )
			:wikitext( '[[Fichier:' .. image .. '|x50px|link=|alt=]]' )
			:done()
		:tag( 'div' )
			:addClass( 'avt-maintenance-banner-text' )
			:node(title)
			:node(description)
			:node(note)
			:done()
		:done()
	
	return tostring(res) .. category
end

return p