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:
<sourcesyntaxhighlight lang=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>
</source>
 
=== Installazione su Windows ===
Riga 47:
 
Ora è tutto pronto per utilizzare Smarty:
<sourcesyntaxhighlight lang=php>
//carica la classe Smarty
require_once('Smarty.class.php');
Riga 59:
$smarty->cache_dir = 'c:/inetpub/wwwroot/cache';
 
</syntaxhighlight>
</source>
 
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):
<sourcesyntaxhighlight lang=php>
//carica la classe Smarty
require_once('smarty/libs/Smarty.class.php');
</syntaxhighlight>
</source>
 
== Iniziamo ad usare Smarty ==
Riga 74:
 
Ecco un esempio di un semplice template:
<sourcesyntaxhighlight lang=html4strict>
{* questo è un commento Smarty. Non comparirà nella pagina HTML *}
<!-- i commenti HTML saranno invece visibili normalmente -->
Riga 84:
{$contenuto}
</body>
</syntaxhighlight>
</source>
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:
<sourcesyntaxhighlight lang=php>
//inserisce il file di configurazione di Smarty creato da noi
require_once('global.php');
Riga 94:
 
$smarty->display('prova.tpl');
</syntaxhighlight>
</source>
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>:
<sourcesyntaxhighlight lang="php">
$smarty->assign('titolo', 'Prodotti') //valorizza la variabile "titolo"
</syntaxhighlight>
</source>
 
Potete assegnare alle variabili qualsiasi valore PHP, dalle stringhe ai numeri, compresi gli oggetti e gli '''array''':
<sourcesyntaxhighlight lang="php">
$smarty->assign('prodotti', array(
array (
Riga 122:
)
); //valorizza la variabile "prodotti" multidimensionale
</syntaxhighlight>
</source>
Nel nostro template Smarty potremmo scrivere:
{$prodotti[1].nome} {*stampa "Televisore"*}
Riga 129:
 
Alle variabili è possibile applicare i normali operatori aritmetici di PHP:
<sourcesyntaxhighlight lang=html4strict>
{$prezzo/100*(100-$sconto)} {* applica lo sconto al prezzo *}
</syntaxhighlight>
</source>
 
=== 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
<sourcesyntaxhighlight lang=html4strict>
{$smarty.get.id} <!--mostra il valore di $_GET['id']-->
</syntaxhighlight>
</source>
*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.
<sourcesyntaxhighlight lang=html4strict>
{$nome|default:Mario Rossi} <!-- se $nome è vuoto, verrà stampato "Mario Rossi -->
</syntaxhighlight>
</source>
* <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":
<sourcesyntaxhighlight lang=html4strict>
{$nome|lower} <!-- restituisce "mario rossi" -->
{$nome} <!-- restituisce "Mario Rossi" -->
{$nome|upper} <!-- restituisce "MARIO ROSSI" -->
</syntaxhighlight>
</source>
*<code>truncate</code>: tronca la parola al carattere indicato come primo argomento, concatenando alla fine la stringa indicata come secondo argomento:
<sourcesyntaxhighlight lang=html4strict>
{$nome|truncate:7:...} {* restituisce "mario r..." *}
</syntaxhighlight>
</source>
 
== Funzioni ==
Riga 174:
 
Gli operatori logici e di confronto sono gli stessi disponibili in PHP:
<sourcesyntaxhighlight lang=html4strict>
{if $prezzo > 300} <!-- applico uno sconto del 5% -->
<p>Prezzo totale: {$prezzo/100*95} &euro;</p>
Riga 190:
{if $nazione eq "it" }
<p>Per i residenti in Italia sconto 5% sulla spedizione!</p>
</syntaxhighlight>
</source>
 
=== foreach ===
Riga 209:
 
Facciamo un esempio. Valorizziamo una variabile Smarty da PHP:
<sourcesyntaxhighlight lang=php>$smarty->assign ( 'abba',
array(
array ( "nome" => "Björn", "cognome" => "Ulvaeus" ),
Riga 216:
array ( "nome" => "Anni-Frid", "cognome" => "Lyngstad" )
)
);</sourcesyntaxhighlight>
Nel file Smarty potremo scrivere:
<sourcesyntaxhighlight lang="html4strict">
<p>Ecco i quattro componenti degli ABBA:</p>
<ul>
Riga 225:
{/foreach}
</ul>
</syntaxhighlight>
</source>
 
È 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: