« Module:Bandeau d'avertissement » : différence entre les versions
Générateur de bandeau pour la maintenance des articles |
m Possibilité de rendre dynamique le titre et la description d'un bandeau |
||
Ligne 7 : | Ligne 7 : | ||
data = { | data = { | ||
["ébauche"] = { | ["ébauche"] = { | ||
image = " | image = "Atelier de rédaction.png", | ||
title = "Cet article est une ébauche et mériterait un meilleur développement.", | 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.", | 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" | 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" | |||
}, | }, | ||
} | } | ||
Ligne 49 : | Ligne 59 : | ||
end | end | ||
category = '[[Catégorie:' .. category .. game .. ']]' | category = '[[Catégorie:' .. category .. game .. ']]' | ||
end | |||
if type(title) == 'function' then | |||
title = title(args) | |||
end | end | ||
Ligne 57 : | Ligne 71 : | ||
if description then | if description then | ||
if type(description) == 'function' then | |||
description = description(args) | |||
end | |||
description = mw.html.create( 'p' ) | description = mw.html.create( 'p' ) | ||
:addClass( 'avt-maintenance-banner-desc' ) | :addClass( 'avt-maintenance-banner-desc' ) |
Version du 26 juin 2021 à 13:10
La documentation pour ce module peut être créée à Module:Bandeau d'avertissement/doc
local p = {}
-----------------------------------------------------------
----- Référentiel des bandeaux de maintenance -----
-----------------------------------------------------------
data = {
["é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