Modulo:Box interwiki/man
Questa è la pagina di documentazione per Modulo:Box interwiki
Questo modulo implementa le funzionalità di alcuni dei template per i box con collegamenti interwiki contenuti nella Categoria:Template Wikimedia.
L'unica funzione esportata è getBox
. Nel resto del testo, ogni volta che ci si riferisce ad un #invoke
al modulo, è sottintesa la chiamata di questa funzione.
Il modulo:Box interwiki/Man generico per template derivati fornisce dei manuali standardizzati per i template derivati.
Gestione dei parametri
[modifica]Parametri di #invoke
[modifica]Per i box che linkano una sola pagina, il modulo ha bisogno solo di questi parametri. I box che linkano più pagine, invece, richiedono anche i parametri posizionali nella chiamata al template derivato; vedi alla sezione Parametri dei template derivati.
parametro | o/f [t 1] | x [t 2] | default [t 3] | descrizione | |
---|---|---|---|---|---|
pagina |
o | — | pagina da linkare con un wikilink
| ||
progetto |
o | — | nome del progetto per il wikilink alla Pagina principale del progetto p.e. Wikipedia | ||
prefisso |
o | — | prefisso per i wikilink al progetto
p.e. per Wikipedia è w vedi | ||
immagine |
o | — | file del logo del progetto | ||
etichetta-pagina |
f | x | pagina |
testo da visualizzare nel wikilink alla pagina
vedi | |
lingua |
f | it | codice linguistico del progetto | ||
progetto-multilingue |
f | — | da valorizzare con un testo qualsiasi quando si tratta di un progetto multilingue
influenza l'uso che il modulo fa dei parametri dei template derivati | ||
dimensione-immagine |
f | x55px | dimensione da impostare se con il valore di default le dimensioni del logo del progetto risultano sbilanciate rispetto a quelle degli altri progetti | ||
una-pagina |
f | una pagina | testo che sostituisce "una pagina" in pre-pagina
p.e. "una voce" per Wikipedia | ||
pre-progetto |
f | — | testo da inserire prima del wikilink al progetto | ||
pre-pagina |
f | ha una pagina su | sostituzione completa del testo tra il wikilink al progetto e quello alla pagina, nel caso di box con una sola pagina linkata | ||
pre-pagina-multi |
f | ha le pagine: | sostituzione completa del testo tra il wikilink al progetto e quello alla prima pagina, nel caso di box con più pagine linkate | ||
multi-pagina-come |
f | x | pagine | modalita di lettura dei parametri posizionali da {{{ 1 + parametri-riservati }}} in su
i valori ammessi sono :
lingua-pagina e lingua-pagina-etichetta sono incompatibili con | |
parametri-riservati |
f | 2 | numero di parametri posizionali riservati al template derivato
il modulo ricava gli eventuali link aggiuntivi a partire dal primo successivo |
- Note
- ↑ obbligatorio / facoltativo
- ↑
Per i parametri segnati con una x, il valore impostato in
#invoke
può essere sovrascritto impostando lo stesso parametro nella chiamata al template derivato. - ↑ Il tratto — indica l'assenza di un valore di default.
Esempi
[modifica]Il testo tra grafe indica i parametri valorizzati.
Base
[modifica]Per mostrare esattamente il risultato dei parametri, i wikilink sono mostrati come wikicode, grazie al fatto che la presenza delle grafe ne fa fallire il rendering.
In un template utilizzabile almeno il parametro pagina
è valorizzato tramite uno dei parametri del template stesso.
{{#invoke: Box interwiki | getBox
| pagina = {pagina}
| progetto = {progetto}
| prefisso = {prefisso}
| immagine = Arma ignota.jpg
}}

[[{prefisso}:Pagina principale|{progetto}]] ha una pagina su [[{prefisso}:{pagina}|{pagina}]].
[[Categoria:Pagine con box interwiki verso {progetto}|Modulo:Box interwiki/man]]
Messaggio d'errore in caso di parametri obbligatori mancanti
[modifica]Errore nell'#invoke al Modulo:Box interwiki.
I seguenti parametri devono essere sempre valorizzati :
- pagina
- progetto
- prefisso
- immagine
Base + lingua
[modifica]Per mostrare esattamente il risultato dei parametri, i wikilink sono mostrati come wikicode, grazie al fatto che la presenza delle grafe ne fa fallire il rendering.
Quando è indicato un codice lingua corretto, "lingua" in "in lingua ha una pagina su" viene sostituito dal nome della lingua per esteso.

[[{prefisso}:{lingua}:Main Page|{progetto}]] in ha una pagina su [[{prefisso}:{lingua}:{pagina}|{pagina}]].
[[Categoria:Pagine con box interwiki verso {progetto}|Modulo:Box interwiki/man]]
una-pagina
+ etichetta-pagina
[modifica]
Progetto ha {una-pagina} su {etichetta-pagina}.
pre-progetto
+ pre-pagina
[modifica]Parametri dei template derivati
[modifica]parametri-riservati
I template derivati dal modulo (ovvero che contengono un #invoke
allo stesso) possono adoperare qualsiasi parametro con nome, per valorizzare i parametri di #invoke
o per qualsiasi altro uso interno al template.
Una particolare gestione avviene invece per i parametri posizionali.
I primi parametri posizionali (nel numero indicato da parametri-riservati
) sono a libera disposizione del template. In diversi template {{{ 1 }}}
valorizza pagina
e {{{ 2 }}}
valorizza lingua
.
I parametri posizionali da {{{ 1 + parametri-riservati }}}
in su, se presenti, sono gestiti dal modulo e, una loro eventuale gestione anche nel template deve essere compatibile con quella effettuata dal modulo. In particolare, la valorizzazione del parametro {{{ 1 + parametri-riservati }}}
chiede al modulo la creazione di un box con link a più pagine.
L'interpretazione dei parametri posizionali dipende dal valore di multi-pagina-come
. Vedi nella tabella alla sezione Parametri di #invoke.
Una stringa vuota in una posizione corrispondente a una etichetta indica di non usare un testo sostitutivo per il link, ma il nome della pagina indicato dal parametro precedente.
Una stringa vuota in una posizione corrispondente a una lingua indica di usare la stessa lingua del link precedente.
Categorie impostate dal modulo
[modifica]Il modulo inserisce automaticamente alcune categorie, sia quando è richiamato tramite template che quando direttamente con un #invoke
.
In tutte le pagine
[modifica]- Nelle pagine del namespace principale che visualizzano un box :
- Nelle pagine di namespace diversi da quello principale che visualizzano un box :
Dove _Progetto_ viene sostituito dal testo del parametro progetto
. Queste categorie, raccolte sotto la categoria madre Categoria:Pagine con box interwiki e impostate come __HIODDENCAT__
, permettono di far manutenzione e tener d'occhio quantità e distribuzione dei box che linkano verso altri progetti.
- Nelle pagine in cui il modulo genera un errore :
Testo da inserire nelle pagine delle categorie :
__HIDDENCAT__
{{ServizioVuota}}
[[Categoria:Pagine con box interwiki]]
Nelle pagine dei template derivati
[modifica]- Nelle pagine dei template che richiamano il modulo, purché il box vi sia visualizzato :
Se, per qualsiasi motivo, il template non visualizza il box nella propria pagina ( per esempio perché la chiamata di #invoke
è sotto una condizione non verificata quando i parametri non sono valorizzati ), si può ottenere la categorizzazione del template tramite un box nel manuale del template.
Test nella console di debug
[modifica]Il seguente codice può essere inserito nella console di debug ( disponibile durante l'editing del modulo ) per testare l'output di una chiamata all'ipotetico template derivato definito dai valori nel secondo args = { ... }
, mentre i valori nel primo args = { ... }
simulano i parametri nella chiamata al template derivato.
I primi due valori nel primo args = { ... }
sono ininfluenti, solo i valori dal terzo in poi vengono letti dal modulo. L'eventuale uso che il template farà dei primi due valori, andrà simulato inserendo direttamente i valori risultanti nei parametri del secondo args = { ... }
, che simula la chiamata a #invoke
.
= p.getBox(
mw.getCurrentFrame()
:newChild{ args = {
'', '' -- , '', ''
} }
:newChild{ args = {
pagina = 'page',
progetto = 'project',
prefisso = 'pref',
immagine = 'image.svg',
[ 'etichetta-pagina' ] = nil,
lingua = nil,
[ 'progetto-multilingue' ] = nil,
[ 'dimensione-immagine' ] = nil,
[ 'una-pagina' ] = nil,
[ 'pre-progetto' ] = nil,
[ 'pre-pagina' ] = nil,
[ 'pre-pagina-multi' ] = nil,
[ 'multi-pagina-come' ] = nil,
[ 'parametri-riservati' ] = nil
} }
)
Il seguente codice permette di visualizzare il risultato della chiamata di un template già esistente basato sul modulo.
ATTENZIONE: questo secondo codice, a differenza del precedente, utilizza l'ultima versione salvata del modulo, non quella contenuta nella casella di modifica.
= mw.getCurrentFrame()
:expandTemplate{
title = 'Wikipedia', -- nome del template
args = { 'An article' } -- parametri passati al template
}