Module:Message box

De wikarphy

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

Modèles utilisant le module:

Avertissement

Attention

Ceci est un avertissement

Attention

Attention

Ceci est une information importante

Note

Note

Ceci est une Note

Information

Information

Ceci est une information

Astuce

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')
    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)
    root:tag('p'):wikitext(self.content)

    return tostring(root)
end

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

    return self
end

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

return p