Smarty e è un template engine, ovvero una libreria che ci consente di separare il codice di developing dal codice di design. Serve ad evitare quegli spiacevolissimi echo “<tr><td>informazione da inserire</td></tr>”; che se includono anche le virgolette ci fanno diventare matti. Usare una libreria di questo genere aiuta a separare la logica di programmazione da quella di design e quindi a tenere un codice più pulito, più comprensibile e di conseguenza più manutenibile.
Il codice HTML che useremo sara piu o meno simile a questo:
Iniziamo con il creare qualche riga di codice PHP, non dobbiamo fare altro che importare la libreria Smarty nel progetto, creare un array che contiene i valori da stampare a schermo e visualizzare il template:Codice HTML:<table cellpadding="0" cellspacing="0"> <tr> <th>Cognomi</th> </tr> <tr> <td>Rossi</td> </tr> <tr> <td>Verdi</td> </tr> ... and so on ... </table> Il codice CSS resta lo stesso, ovvero: table { width: 100%; border: 1px solid [URL=http://www.italianhack.org/misc.php?do=dbtech_usertag_hash&hash=cef]#cef[/URL] text-align: left; } th { font-weight: bold; background-color: [URL=http://www.italianhack.org/misc.php?do=dbtech_usertag_hash&hash=acf]#acf[/URL] border-bottom: 1px solid [URL=http://www.italianhack.org/misc.php?do=dbtech_usertag_hash&hash=cef]#cef[/URL] } td,th { padding: 4px 5px; } .odd { background-color: [URL=http://www.italianhack.org/misc.php?do=dbtech_usertag_hash&hash=def]#def[/URL] } .odd td { border-bottom: 1px solid [URL=http://www.italianhack.org/misc.php?do=dbtech_usertag_hash&hash=cef]#cef[/URL] }
Passiamo ora al codice HTML/Smarty del file template.tpl che visualizzerà la tabella con i colori alternati:Codice HTML:<?php //includo e istanzio la libreria include_once('path_to_smarty/smarty.class.php'); $smarty->new Smarty(); //creo un array di valori che visualizzerò a schermo $cognomi = array('Rossi', 'Verdi', 'Bianchi','Mancini','Baldi'); //assegno l'array ad una variabile smarty $smarty->assign("cognomi",$cognomi); //inizializzo a 0 una variabile di iterazione $smarty->assign("i",0); //visualizzo il template $smarty->display("template.tpl");
L’unica riga da analizzare è quella dove faccio il controllo:Codice HTML:...some code... <table cellpadding="0" cellspacing="0"> <tr><th>Cognomi</th></tr> {foreach from=$cognomi item=cognome} <tr><td>{if $i++ is odd} class="odd"{/if}>{$cognome}</td></tr> {foreachelse} <tr><td>$cognomi vuoto...</td></tr> {/foreach} </table>
{if $i++ is odd}{/if}
Tale riga effettua due operazioni contemporaneamente:
Controlla che $i è dispari e in caso positivo visualizza ciò che è incluso tra i tag {if}{/if}
Una volta effettuato il check incrementa la variabile $i
In questo modo al prossimo ciclo foreach avrò la variabile incrementata di 1 che mi realizzerà la riga di colore alterno. Nulla di più semplice!
PER QUALUNQUE PROBLEMA CHIEDETE QUI A ME
Fonte:web




LinkBack URL
Riguardo i LinkBacks







