PHP/Smarty: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Corretto: "contenente" |
m Update syntaxhighlight tags - remove use of deprecated <source> tags |
||
Riga 17:
Ora tutto è pronto per utilizzare Smarty nel vostro PHP:
<
//carica la classe Smarty
require_once('/usr/local/lib/php/Smarty/Smarty.class.php');
Riga 29:
$smarty->cache_dir = '/var/www/smarty/cache';
</syntaxhighlight>
=== Installazione su Windows ===
Riga 47:
Ora è tutto pronto per utilizzare Smarty:
<
//carica la classe Smarty
require_once('Smarty.class.php');
Riga 59:
$smarty->cache_dir = 'c:/inetpub/wwwroot/cache';
</syntaxhighlight>
Se non avete la possibilità di impostare il php.ini (ad esempio perché avete uno spazio web su un server condiviso) copiate la cartella libs di Smarty sul vostro spazio web, create le cartelle necessare e poi inserite nel vostro codice php (supponendo che il file sia posto nella root):
<
//carica la classe Smarty
require_once('smarty/libs/Smarty.class.php');
</syntaxhighlight>
== Iniziamo ad usare Smarty ==
Riga 74:
Ecco un esempio di un semplice template:
<
{* questo è un commento Smarty. Non comparirà nella pagina HTML *}
<!-- i commenti HTML saranno invece visibili normalmente -->
Riga 84:
{$contenuto}
</body>
</syntaxhighlight>
Salviamo il file nella cartella /smarty/templates sul nostro web server con il nome "prova.tpl". Ad esso associamo il nostro file PHP in questo modo:
<
//inserisce il file di configurazione di Smarty creato da noi
require_once('global.php');
Riga 94:
$smarty->display('prova.tpl');
</syntaxhighlight>
Salviamo il file sul server con il nome di prova_smarty.php.
Riga 103:
== Variabili ==
Lo scopo delle '''variabili''' è principalmente quello di passare dei valori dal codice PHP al template Smarty, tramite il metodo <code>assign</code>:
<
$smarty->assign('titolo', 'Prodotti') //valorizza la variabile "titolo"
</syntaxhighlight>
Potete assegnare alle variabili qualsiasi valore PHP, dalle stringhe ai numeri, compresi gli oggetti e gli '''array''':
<
$smarty->assign('prodotti', array(
array (
Riga 122:
)
); //valorizza la variabile "prodotti" multidimensionale
</syntaxhighlight>
Nel nostro template Smarty potremmo scrivere:
{$prodotti[1].nome} {*stampa "Televisore"*}
Riga 129:
Alle variabili è possibile applicare i normali operatori aritmetici di PHP:
<
{$prezzo/100*(100-$sconto)} {* applica lo sconto al prezzo *}
</syntaxhighlight>
=== La variabile $smarty ===
La variabile speciale <code>$smarty</code> permette di accedere a particolari valori:
*alle variabili superglobali di PHP get, post, cookies, server, environment e session
<
{$smarty.get.id} <!--mostra il valore di $_GET['id']-->
</syntaxhighlight>
*alla data corrente usando $smarty.now (restituisce un timestamp da formattare)
*alle costanti PHP usando $smarty.NOME_COSTANTE
Riga 148:
Alcuni dei modificatori più comuni sono, ad esempio:
* <code>default</code>: serve per indicare un valore di default nel caso la variabile sia vuota.
<
{$nome|default:Mario Rossi} <!-- se $nome è vuoto, verrà stampato "Mario Rossi -->
</syntaxhighlight>
* <code>lower</code> e <code>upper</code> restituisce il valore della variabile rispettivamente tutto minuscolo e tutto maiuscolo; ad esempio, se la variabile <code>$nome</code> contiene "Mario Rossi":
<
{$nome|lower} <!-- restituisce "mario rossi" -->
{$nome} <!-- restituisce "Mario Rossi" -->
{$nome|upper} <!-- restituisce "MARIO ROSSI" -->
</syntaxhighlight>
*<code>truncate</code>: tronca la parola al carattere indicato come primo argomento, concatenando alla fine la stringa indicata come secondo argomento:
<
{$nome|truncate:7:...} {* restituisce "mario r..." *}
</syntaxhighlight>
== Funzioni ==
Riga 174:
Gli operatori logici e di confronto sono gli stessi disponibili in PHP:
<
{if $prezzo > 300} <!-- applico uno sconto del 5% -->
<p>Prezzo totale: {$prezzo/100*95} €</p>
Riga 190:
{if $nazione eq "it" }
<p>Per i residenti in Italia sconto 5% sulla spedizione!</p>
</syntaxhighlight>
=== foreach ===
Riga 209:
Facciamo un esempio. Valorizziamo una variabile Smarty da PHP:
<
array(
array ( "nome" => "Björn", "cognome" => "Ulvaeus" ),
Riga 216:
array ( "nome" => "Anni-Frid", "cognome" => "Lyngstad" )
)
);</
Nel file Smarty potremo scrivere:
<
<p>Ecco i quattro componenti degli ABBA:</p>
<ul>
Riga 225:
{/foreach}
</ul>
</syntaxhighlight>
È possibile assegnare un nome alle istruzioni foreach, usando il parametro <code>name</code>; sarà quindi possibile accedere alla variabile Smarty <code>$smarty.foreach.nomeforeach</code>, che contiene le proprietà relative al ciclo foreach, come ad esempio:
|