Module:Message box

Version datée du 26 février 2025 à 01:55 par Linarphy (discussion | contributions) (fix typo)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Ceci est un module permettant une génération rapide de boîte de message associée ou non à un icône.

L'idée provient du module du même nom sur [[1]], mais est simplifié le plus possible.

Pour utiliser ce module sans utiliser directement les modèles, qui simplifient son usage, il est nécessaire d'utiliser le code:

{{#invoke:Message box|main|<titre>|<contenu>|<icône ou rien>|<classe ou rien>}}

en remplaçant <titre> par le titre de la boîte, <contenu> par le text contenu dans la boîte (description), <icône ou rien> par le nom du fichier de l'icône, ou par aucun texte, en laissant l'argument vide (voir en l'enlevant), et <classe ou rien> par la classe souhaité pour préciser un style, ou par aucun texte, en laissant le dernier argument vide (ou en l'enlevant).

Exemples modifier

Modèles utilisant le module:

Avertissement modifier

Attention

Ceci est un avertissement

Attention modifier

Attention

Ceci est une information importante

Note modifier

Note

Ceci est une Note

Information modifier

Information

Ceci est une information

Astuce modifier

Astuce

Ceci est une astuce


-- This is a meta-module for producing message box templates, inspired from mediawiki

local MessageBox= {}
local p = {}

function MessageBox:export()
    local root = mw.html.create('div')

    root:wikitext(
        mw.getCurrentFrame():extensionTag( 'templatestyles', '', { src = 'Module:Message_box/style.css' } )
    )
    root:addClass('box')
    if self.class ~= nil then
        root:addClass(self.class)
    end
    local left = root:tag('div'):addClass('left')
    local right = root:tag('div'):addClass('right')
    if self.image ~= nil then
        left:wikitext('[[File:' .. self.image .. ']]')
    end
    left:tag('h4'):wikitext(self.title)
    right:tag('p'):wikitext(self.content)

    return tostring(root)
end

-- Define class
function MessageBox:new (title, content, image, class)
    self.__index = self
    self.title = title
    self.content = content
    self.image = image
    self.class = class

    return self
end

function p.main(frame)
    local box = MessageBox:new(frame.args[1], frame.args[2], frame.args[3], frame.args[4])
    return box:export()
end

return p