{{Man modulo}}

Questo è il meta-modulo che implementa i template di avviso {{Tl|Mbox}}, {{Tl|Ambox}}, {{Tl|Cmbox}}, {{Tl|Fmbox}}, {{Tl|Imbox}}, {{Tl|Ombox}}, and {{Tl|Tmbox}}. Questo è stato progettato per essere usato dai moduli Lua, e non dovrebbe essere usato direttamente dalle pagine wiki. Se intendi utilizzare le funzionalità di questo modulo da una pagina wiki, per favore al suo posto usa il singolo template di avviso.

== Uso ==
Per poter caricare questo modulo da un altro modulo Lua, prima necessita di essere caricato.

<syntaxhighlight lang="lua">
local messageBox = require('Module:Message box')
</syntaxhighlight>
Per creare un box di messaggio, usa la funzione <code>main</code>. Questa funzione ha due parametri, il primo è il tipo di stile del messaggio e il secondo è la tabella che contiene i parametri del box del messaggio.

<syntaxhighlight lang="lua">
local box = messageBox.main( boxType, {
    parametro1 = parametro1,
    parametro2 = parametro2,
    -- altri parametri...
})
</syntaxhighlight>

Sono disponibili 7 tipi di messaggio:

{| class="wikitable"
! Tipo !! Template !! Scopo
|-
| <code>mbox</code> || {{Tl|Mbox}} || Per i box dei messaggi usati in namesapace diversi
|-
| <code>ambox</code> || {{Tl|Ambox}} || Per i box dei messaggi usati nei lemmi
|-
| <code>cmbox</code> || {{Tl|Cmbox}} || Per i box dei messaggi usati nelle categorie
|-
| <code>fmbox</code> || {{Tl|Fmbox}} || Per i box dei messaggi usati nell'interfaccia
|-
| <code>imbox</code> || {{Tl|Imbox}} || Per i box dei messaggi usati nei file
|-
| <code>tmbox</code> || {{Tl|Tmbox}} || Per i box dei messaggi usati nelle discussioni
|-
| <code>ombox</code> || {{Tl|Ombox}} || Per i box dei messaggi usati negli altri namespace
|}

Vedi la pagina di ogni template per i parametri disponibili.

== Uso tramite #invoke ==

Così come la funzione <code>main</code>, qesto modulo ha funzioni separate per ogni tipologia di box. Vi si accede usando il codice <code><nowiki>{{#invoke:Message box|mbox|...}}</nowiki></code>, <code><nowiki>{{#invoke:Message box|ambox|...}}</nowiki></code>, ecc. Funzioneranno quando vengono richiamati da altri moduli, ma accedono al codice utilizzato per elaborare gli argomenti passati da #invoke, e quindi chiamarli sarà meno efficiente che chiamare <code>main</code>.

== Dettagli tecnici ==
Il modulo usa diversi 
Il modulo utilizza lo stesso codice di base per ciascuno dei modelli sopra elencati; le differenze tra ognuna di esse sono configurate utilizzando i dati in [[Module:Message box/configuration]]. Ecco le varie opzioni di configurazione e il loro significato:

* <code>types</code> - una tabella contenente i dati utilizzati dal parametro type della finestra di messaggio. Le chiavi della tabella sono i valori che possono essere passati al parametro type e i valori della tabella sono tabelle che contengono la classe e l'immagine utilizzata da quel tipo.
* <code>default</code> - il tipo di stile da utilizzare se non è viene passato alcun valore al parametro type o se è stato specificato un valore non valido.
* <code>showInvalidTypeError</code> - per mostrare un errore se il valore passato al parametro type non è valido.
* <code>allowBlankParams</code> - di solito i valori vuoti vengono rimossi dai parametri passati al modulo. Tuttavia, lo spazio bianco viene mantenuto per i parametri inclusi nella tabella allowBlankParams.
* <code>allowSmall</code> - se è possibile visualizzare una versione ridotta della finestra di messaggio con "small=yes".
* <code>smallParam</code> - un mome personalizzato per il parametro small. Per esempio, se viene impostato su "left" è possibile usare una vinestra piccola usando "small=left".
* <code>smallClass</code> - la classe da utilizzare per il box del messaggio piccolo.
* <code>substCheck</code> - whether to perform a subst check or not. <!-- non capisco come tradurla… nel dubbio la lascio in inglese -->
* <code>classes</code> - un array delle classi da utilizzare con i box.
* <code>imageEmptyCell</code> - se utilizzare un a cella <code><nowiki><td>...</td></nowiki></code> se non ci sono immagini impostate. Viene utilizzato per preservare la spaziatura delle finestre di messaggio con una larghezza inferiore al 100% dello schermo.
* <code>imageEmptyCellStyle</code> - se deve essere applicato uno stile alle cella vuote delle immagini.
* <code>imageCheckBlank</code> - se "immagine=blank" non visualizza alcuna immagine.
* <code>imageSmallSize</code> - in genere, le immagini utilizzate nelle caselle di messaggio piccole sono impostate su 30x30 px. Questo imposta una dimensione personalizzata.
* <code>imageCellDiv</code> - se racchiudere l'immagine in un div che applica la dimensione massima dell'immagine.
* <code>useCollapsibleTextFields</code> - e utilizzare i campi di testo che possono essere compressi, ad esempio "problema", "fix", "discussione", ecc. Attualmente utilizzato solo in ambox.
* <code>imageRightNone</code> - se immaginedestra=none non visualizza nessuna immagine sul lato destro della finestra del messaggio.
* <code>sectionDefault</code> - il nome di default per il parametro "sect". Dipende da <code>useCollapsibleTextFields</code>.
* <code>allowMainspaceCategories</code> - accettare la categorizzazione nel namespace principale.
* <code>templateCategory</code> - il nome di una categoria da inserire nella pagina del template.
* <code>templateCategoryRequireName</code> - se il parametro <code>nome</code> è necessario è necessario per visualizzare la categoria del template.
* <code>templateErrorCategory</code> - il nome della categoria di errore da utilizzare nella pagina del template.
* <code>templateErrorParamsToCheck</code> - una serie di nomi di parametri da controllare. Se sono assenti, <code> templateErrorCategory </ code> viene applicato alla pagina del template.


<noinclude>[[Categoria:Manuali dei moduli]]</noinclude>
<includeonly>[[Categoria:Moduli]]</includeonly>