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[modifier le wikicode]

Modèles utilisant le module:

Avertissement[modifier le wikicode]

Attention

Ceci est un avertissement

Attention[modifier le wikicode]

Attention

Ceci est une information importante

Note[modifier le wikicode]

Note

Ceci est une Note

Information[modifier le wikicode]

Information

Ceci est une information

Astuce[modifier le wikicode]

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