Featured Post

Bash, cercare un file in tutto il computer – il comando Find

Per eseguire una ricerca su tutto il computer possiamo utilizzare il comando find: 1sudo find / -type f -iname nome_del_file Dove il tipo (f per file e d per directory) può essere omesso e la ricerca può iniziare su una cartella qualsiasi, non necessariamente nella root (/). Viene anteposto il “sudo”...

Read More

SMARTY: BREVE INTRODUZIONE

Posted by admin | Posted in PHP, Smarty | Posted on 26-11-2008

Tag:,

0

Smarty è un motore per la creazione di template che permette di separare la parte di logica (PHP) dalla parte di presentazione (HTML, XML, ecc.).

Smarty offre un semplice linguaggio per creare i template, con la possibilità di avere condizioni e cicli.

Ho utilizzato questo strumento per riscrivere del codice che avevo già creato in precedenza ed effettivamente il codice prodotto è risultato di granlunga inferiore di quello che avevo in partenza. Il codice rimane più pulito e più semplice da modificare, sia nella parte di logica che in quella di template.

Come Funziona?

Per utilizzare Smarty bisogna prima di tutto scaricare le sue librerie e copiarle in una cartella del sito (io userò la cartella “libs”).  Sono necessarie altre due cartelle, la cartella templates e la cartella templates_c.

Nella cartella templates (Come dice il nome stesso) verranno creati i file di template, mentre la seconda è una cartella che serve per il funzionamento di Smarty, verrà quindi lasciata vuota. Bisogna assicurarsi che questa cartella abbia i permessi di scrittura per l’utente PHP.

Ora dovremo includere nella nostra pagina PHP le librerie e istanziare un oggetto Smarty.

1
require 'libs/Smarty.class.php';
2
$smarty = new Smarty;

I dati verranno passati al template tramite variabili assegnate a Smarty tramite codice.
1
$variabile = "In questa variabile c'è del contenuto magari preso da database";
2
$smarty->assign("variabile",$variabile);

La funzione assign ha come primo parametro il nome della variabile che sarà visibile e utilizzabile nel template, e come secondo parametro il valore da associare alla variabile, per esempio
1
$smarty->assign("menu_selezionato", 2);
2
$smarty->assign("titolo", "Esempio");

Smarty offre anche la possibilità di utilizzare un comodo strumento di debug.

Per attivarlo si usa il seguente comando:

1
$smarty->debugging = true;

A questo punto per associare un template alla pagina si usa il metodo display, l’estensione di default per la creazione di template è “tpl”:
1
$smarty->display("mio_template.tpl")

L’unica cosa che manca ora da fare è di definire il template:
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
<head>
5
<title>{$titolo}</title>
6
<body>
7
    {$contenuto}
8
</body>
9
</html>

Come vedete dal codice per utilizzare le variabili precedentemente definite è solo necessario chiuderle tra parentesi graffe utilizzando il $ prima del nome, come se fossero normali variabili PHP.