Aiuto:Funzioni parser: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
m typo
m commento § su installazione: imho fuorviante (installazione gia` fatta per it.wiki)
Riga 131: Riga 131:
==Numeri==
==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 <nowiki>{{NUMBEROFARTICLES}}</nowiki> usa la virgola per le migliaia, e in alcune versioni locali di MediaWiki il punto.
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 <nowiki>{{NUMBEROFARTICLES}}</nowiki> usa la virgola per le migliaia, e in alcune versioni locali di MediaWiki il punto.
<!-- TESTO COMMENTATO

== Installazione ==
== Installazione ==


Riga 146: Riga 146:


* [http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/ParserFunctions/ ParserFunctions in MediaWiki SVN]
* [http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/ParserFunctions/ ParserFunctions in MediaWiki SVN]
FINE TESTO COMMENTATO -->

== Collegamenti esterni ==
== Collegamenti esterni ==
* {{en}} [http://mail.wikipedia.org/pipermail/wikitech-l/2006-April/thread.html#34685 La discussione sulle ParserFunctions nell'archivio della lista Wikitech-l]
* {{en}} [http://mail.wikipedia.org/pipermail/wikitech-l/2006-April/thread.html#34685 La discussione sulle ParserFunctions nell'archivio della lista Wikitech-l]

Versione delle 15:10, 18 apr 2006


Questa estensione MediaWiki è una raccolta di funzioni parser. Sintassi:

{{#functionname: argomento 1 | argomento 2 | argomento 3...}}

Questa estensione supporta tra funzioni: expr, if, ifeq, ifexpr e rand.

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 7}} = 4.2857143
= 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.

if

La funzione if è un costrutto if-then-else construct. 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à vouto 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.

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> }}

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.

rand

La funzione rand restituisce un numero casuale entro dei limiti.

{{ #rand: <minimo> | <massimo> }}

Il numero cambierà soltanto quando si modifica la pagina in cui è presente.

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 {{NUMBEROFARTICLES}} usa la virgola per le migliaia, e in alcune versioni locali di MediaWiki il punto.

Collegamenti esterni