705
modifications
Aucun résumé des modifications Balise : Révoqué |
Annulation des modifications 729 de Kharmitch (discussion) Balise : Annulation |
||
Ligne 1 : | Ligne 1 : | ||
-- Module standardisant la création et le format des bandeaux | |||
-- Inspiré de https://fr.wikipedia.org/wiki/Module:Bandeau | |||
local p = {} | local p = {} | ||
local banner_styles = { | |||
local | ["simple"] = "sf-banner-simple", | ||
["article"] = "sf-banner-article", | |||
["section"] = "sf-banner-section", | |||
section = "banner-section | |||
} | } | ||
local banner_levels = { | |||
local | ["neutre"] = "sf-banner-neutral", | ||
["grave"] = "sf-banner-serious", | |||
grave = "banner-serious", | ["modéré"] = "sf-banner-moderate", | ||
["information"] = "sf-banner-info", | |||
["ébauche"] = "sf-banner-stub", | |||
} | } | ||
local config = { | |||
local | |||
image_format = "[[Fichier:%s|%spx|alt=%s|link=|class=noviewer]]", | image_format = "[[Fichier:%s|%spx|alt=%s|link=|class=noviewer]]", | ||
image_size = "x50", | image_size = "x50", | ||
style_default = "sf-banner-simple", | |||
level_default = "sf-banner-neutral", | |||
} | } | ||
-- Fonction | -- Fonction générant un bandeau | ||
function p._banner(args) | function p._banner(args) | ||
-- Contrôle des paramètres obligatoires | |||
local text = args.texte | local text = args.texte | ||
local title = args.titre | local title = args.titre | ||
if not text and not title then | if not text and not title then | ||
error(" | error( "Merci de renseigner au moins le titre ou le texte") | ||
end | end | ||
-- Création du conteneur et des cellules qui le compose | |||
local res = mw.html.create( "div" ) | |||
local res = mw.html.create("div") | |||
local cells = mw.html.create() | local cells = mw.html.create() | ||
res :addClass("banner") | res :addClass( "sf-banner" ) | ||
:addClass( | :addClass( banner_styles[args.forme] or config.style_default ) | ||
:addClass( | :addClass( banner_levels[args.niveau] or config.level_default ) | ||
local image = args.image | local image = args.image | ||
if image then | if image then | ||
local alt = args["image légende"] or "" | local alt = args["image légende"] or "" | ||
local size = args[ | local size = args['image taille'] or config.image_size | ||
image = cells | image = | ||
:tag("div") | cells | ||
:tag( "div" ) | |||
:addClass( "sf-banner-cell sf-banner-image" ) | |||
:wikitext(config.image_format:format(image, size, alt)) | |||
end | end | ||
local html_text = mw.html.create() | local html_text = mw.html.create() | ||
if title then | if title then | ||
html_text = html_text | html_text = html_text | ||
:tag("strong") | :tag( "strong" ) | ||
:addClass("banner-title") | :addClass( "sf-banner-title" ) | ||
:wikitext(title) | :wikitext(title) | ||
:done() | :done() | ||
end | end | ||
if text then | if text then | ||
html_text | html_text | ||
Ligne 88 : | Ligne 74 : | ||
cells | cells | ||
:tag( | :tag('div') | ||
:addClass( | :addClass('sf-banner-cell') | ||
:newline() | :newline() | ||
:wikitext(tostring(html_text)) | :wikitext(tostring(html_text)) | ||
Ligne 98 : | Ligne 84 : | ||
end | end | ||
-- Fonction | -- Fonction destinnée à être appelée dans les modèles | ||
function p.banner(frame) | function p.banner(frame) | ||
local args | local args | ||
Ligne 145 : | Ligne 92 : | ||
args = frame:getParent().args | args = frame:getParent().args | ||
end | end | ||
return p._banner(args) | |||
end | end | ||
return p | return p |