Aiuto:ParserFunctions
Da Wikipedia, l'enciclopedia libera.
Indice |
Questa estensione MediaWiki è una raccolta di funzioni parser. Sintassi:
- {{#functionname: argomento 1 | argomento 2 | argomento 3...}}
Questa estensione supporta le funzioni: expr, if, ifeq, ifexpr e switch.
[modifica] expr
La funzione expr elabora operazioni matematiche. Gli operatori supportati (in ordine di precedenza) sono:
-
Operatore Operazione Esempio * Moltiplicazione {{#expr: 30 * 7}} = 210 / or div Divisione {{#expr: 30 / 7}} = 4.2857142857143 + Addizione {{#expr: 30 + 7}} = 37 - Sottrazione (o negazione) {{#expr: 30 - 7}} = 23 mod Modulo, restituisce il resto di una divisione {{#expr: 30 mod 7}} = 2 round Arrotonda il numero a sinistra con il numero
di cifre decimali indicato dal numero a destra{{#expr: 30 / 7 round 6}} = 4.285714 = Uguaglianza {{#expr: 30 = 7}} = 0 <> or != Disuguaglianza {{#expr: 30 <> 7}} = 1 < Minore {{#expr: 30 < 7}} = 0 > Maggiore {{#expr: 30 > 7}} = 1 <= Minore o uguale {{#expr: 30 <= 7}} = 0 >= Maggiore o uguale {{#expr: 30 >= 7}} = 1 and AND logico {{#expr: 30 and 7}} = 1 or OR logico {{#expr: 30 or 7}} = 1 not NOT logico {{#expr: not 7}} = 0 ( ) Parentesi {{#expr: (30 + 7) * 7 }} = 259
Gli operatori booleani considerano 0 come falso e 1 come vero.
Esempio:
{{ #expr: (100 - 32) / 9 * 5 round 0 }}
restituisce:
38
che è 100°F in °C, arrotondato al numero intero più vicino.
[modifica] if
La funzione if è un costrutto if-then-else. Sintassi:
{{ #if: <condizione> | <allora testo> | <altrimenti testo> }}
Se la condizione consiste in una stringa vuota o uno spazio bianco, allora è considerata falsa, e viene restituito altrimenti testo. Altrimenti, viene restituito allora testo. altrimenti testo può essere omesso: in tale caso il risultato sarà vuoto se l'espressione è falsa.
Esempio:
{{Template|parametro=qualcosa}} {{Template}} {{Template|parametro=}} | | | | | | | | | {{ #if: {{{parametro|}}} | Parametro è indicato. | Parametro non è indicato, o è vuoto. }}
Notare che la funzione if non supporta il segno "=" o espressioni matematiche. {{#if: 1 = 2|sì|no}} restituirà "sì", perché la stringa "1 = 2" non è vuota. La funzione if è intesa come una funzione if defined. Per confrontare delle stringhe, usa ifeq. Per confrontare numeri, usa ifexpr.
[modifica] ifeq
La funzione ifeq confronta due stringhe, e ritorna un'altra stringa che dipende dal risultato del confronto. Sintassi:
{{ #ifeq: <testo 1> | <testo 2> | <se sono uguali restituisce questo> | <altrimenti questo> }}
[modifica] ifexpr
La funzione ifexpr risolve un'espressione matematica e restituisce un testo sulla base del risultato.
{{ #ifexpr: <espressione> | <allora testo> | <altrimenti testo> }}
Se l'espressione risulta 0, allora viene restituito altrimenti testo, in caso contrario viene restituito allora testo. La sintassi delle espressioni è la stessa di expr.
[modifica] ifexist
ifexist restituisce uno dei due risultati, basandosi sull'esistenza o meno di una data pagina.
{{#ifexist:Biologia|La voce [[biologia]] esiste!|La voce [[biologia]] non esiste.}}
restituisce La voce biologia esiste! perché biologia esiste.{{#ifexist:Aiuto:ParserFunctions|Sì|No}}
restituisce Sì.{{#ifexist:m:Help:Calculation|Sì|Oops}}
restituisce Oops sebbene m:Help:Calculation esista, a causa del prefisso di interwiki.
Il primo parametro è il titolo da cercare, il secondo è il risultato da restituire se la pagina esiste e il terzo è il risultato da restituire se la pagina non esiste. Se il primo parametro non è un titolo valido, la funzione restituisce il risultato negativo.
[modifica] switch
La funzione switch
confronta una stringa con altre, restituendo una data stringa se trova una corrispondenza. Sintassi:
{{ #switch: <valore di confronto> | <valore1>=<risultato1> | <valore2>=<risultato2> | ... | <valoren>=<risultaton> | <risultato di default> }}
switch
cercherà tra tutti i valori dati finché non trova una corrispondenza. Quando la corrispondenza viene trovata, viene restituito il risultato assegnato a tale valore (il testo dopo il segno di uguale). Se non viene trovata alcuna corrispondenza, ma l'ultimo elemento non ha il segno di uguale, verrà restituito come valore di default.
È anche possibile assegnare un risultato a più valori, evitando di duplicare testo. Per esempio:
{{ #switch: <valore di confronto> | <valore1> | <valore2> | <valore3>=<risultato3> | ... | <valoren>=<risultaton> | <risultato di default> }}
Nota che valore1 e valore2 non contengono il simbolo uguale. Se si trovasse una corrispondenza con essi, verrebbe restituito il risultato assegnato a valore3 (risultato3).
[modifica] Numeri
Nelle espressioni è consentito usare il punto decimale, e i numeri non interi restituiti dalle espressioni hanno un punto decimale. Le virgole non sono né accettate in input, né prodotte in output. Questo è valido anche se la variabile {{NUMBEROFARTICLES}} usa la virgola per le migliaia, e in alcune versioni locali di MediaWiki il punto.
[modifica] time
La funzione time è un costrutto per la formattazione del tempo. Sintassi:
{{ #time: formato }}
o
{{ #time: formato | time }}
Se non è specificato un valore per time viene usata la data e ora della conversione in HTML della pagina. Attenzione che a causa del meccanismo di caching questo valore può differire notevolmente dal momento in cui la pagina viene visualizzata. Per aggiornare il valore è necessario salvare la pagina (senza averla modificata, ovvero facendo un "edit nullo"), o visualizzarla richiedendo la ripulitura della cache ( &action=purge aggiunto all'url) oppure selezionare l'opzione che disabilita il caching delle pagine nelle proprie preferenze.
[modifica] Parametro formato
Il parametro formato è una stringa che utilizza una sintassi simile a quella usata nelle date in PHP [1].
Parametro | Descrizione | Esempio |
---|---|---|
d | Il giorno del mese, con lo zero davanti. | 13 |
D | Abbrevazione del mese della settimana | ven |
j | Il giorno del mese, senza lo zero davanti. | 13 |
l | Il giorno della settimana | venerdì |
N | Il giorno settimanale nel formato ISO 8601 (1 (per Lunedì) - 7 (per Domenica)) | 5 |
w | Il giorno settimanale (0 (per Domenica) - 6 (per Sabato)) | 5 |
z | Il giorno annuale (Partendo da 0 fino a 365) | 102 |
W | Numero della settimana in formato ISO 8601 | 15 |
F | Il nome completo del mese | aprile |
m | Il numero del mese, con lo zero davanti. | 04 |
M | Abbrevazione del mese | apr |
n | Il numero del mese, senza lo zero davanti. | 4 |
t | Numero di giorni del mese | 30 |
L | 1 se l'anno è bisestile, 0 altrimenti | 0 |
Y | Anno in 4 cifre | 2007 |
y | Anno in 2 cifre | 07 |
a | am o pm | am |
A | AM o PM | AM |
g | L'ora in formato 12 ore, senza lo zero davanti (1 - 12) | 12 |
G | L'ora in formato 24 ore, senza lo zero davanti (0 - 23) | 0 |
h | L'ora in formato 12 ore, con lo zero davanti (01 - 12) | 12 |
H | L'ora in formato 24 ore, con lo zero davanti (00 - 23) | 00 |
i | Il minuto (00 - 59) | 32 |
s | Il secondo (00 - 59) | 23 |
c | La data in formato ISO 8601 | 2007-04-13T00:32:23+00:00 |
r | La data in formato RFC 2822 | Fri, 13 Apr 2007 00:32:23 +0000 |
U | Secondi dal Gennaio 1 1970 00:00:00 GMT | 1176424343 |
I caratteri non riconosciuti vengono lasciati inalterati. Esistono due tecniche per evitare l'elaborazione di caratteri inseriti in stringhe di descrizione:
- racchiudere gli stessi fra doppi apici (i singoli apici non verranno considerati)
- Corretto: {{ #time: "Attualmente è" F}} → Attualmente è aprile
- Errato: {{ #time: Attualmente è F}} → AM3030uamvenerdì04e430e è aprile
- Singoli apici: {{ #time:G:i's"}} → 0:32'23"
- Utilizzare il carattere di escape "\".
- {{ #time:\H}} → H
- {{ #time:\"}} → "
[modifica] Parametro time
Il formato del parametro time è identico a quello usato dalla funzione PHP strtotime(). Supporta date sia assolute sia relative. Le date devono essere espresse in formato inglese ovvero "December 11" e non "11 Dicembre" e "+10 hours" e non "+ 10 ore". Questa caratteristica può essere usata per la gestione delle "timezone" ovvero per la conversione dall'orario UTC usato per default all'orario CET o CEST usato in Italia. Per ulteriori informazioni vedere the GNU tar manual.
[modifica] Esempi
- {{#time:G:i's"|+1 hours}} → 1:32'23" torna l'ora CET (ora solare)
- {{#time:G:i's"|+2 hours}} → 2:32'23" torna l'ora CEST (ora legale)
- {{#time:j F Y|-14 days}} ritorna 30 marzo 2007 (14 giorni fa)
- {{#time:H:i|+6 hours}} ritorna 06:32 (6 ore più UTC)
- {{#time:H:i|8:15 +6 hours}} ritorna 14:15
- {{#time:m/Y|-1 months}} ritorna 03/2007 (1 mese fa)
- {{#time:m/Y|11 Dicembre}} ritorna Error: invalid time (11 Dicembre)
- {{#time:m/Y|December 11}} ritorna 12/2007 (11 Dicembre)
[modifica] Intervallo di validità
L'intervallo di date che vengono correttamente gestite da questa funzione va dal 1970-1-1 00:00:01 fino al 2038-1-19 03:14:07 (da 1 a 231 secondi dall'inizio del 1970). Vedi anche Problema dell'anno 2038.