mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-10-31 20:31:41 +01:00 
			
		
		
		
	
		
			
	
	
		
			533 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
		
		
			
		
	
	
			533 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
|   | <?xml version="1.0" encoding="iso-8859-1"?> | |||
|  | <!-- $Revision$ --> | |||
|  | <part id="getting.started"> | |||
|  |  <title>Introduzione</title> | |||
|  | 
 | |||
|  |  <chapter id="what.is.smarty"> | |||
|  |   <title>Cos'<27> Smarty?</title> | |||
|  |   <para> | |||
|  |    Smarty <20> un motore di template per PHP. Pi<50> specificatamente, fornisce un | |||
|  |    modo semplice di separare la logica e il contenuto dell'applicazione dalla | |||
|  |    sua presentazione. Questo concetto si pu<70> comprendere meglio in una situazione | |||
|  |    in cui il programmatore ed il progettista dei template hanno ruoli diversi, | |||
|  |    o nella maggior parte dei casi non sono la stessa persona.  | |||
|  |   </para> | |||
|  |   <para> | |||
|  |    Per esempio, | |||
|  |    diciamo che dovete creare una pagina web che mostra un articolo di giornale. | |||
|  |    Il titolo, il sommario, l'autore e il corpo dell'articolo sono gli elementi | |||
|  |    del contenuto: non contengono informazioni su come saranno presentati. Vengono | |||
|  |    passati a Smarty dall'applicazione, dopodich<63> il grafico modifica i template | |||
|  |    e usa una combinazione di tag HTML e tag di template per formattare la | |||
|  |    presentazione di questi elementi (tabelle HTML, colori di sfondo, dimensione | |||
|  |    dei caratteri, fogli di stile ecc.). Un giorno il programmatore ha bisogno  | |||
|  |    di cambiare il sistema in cui viene ottenuto il contenuto dell'articolo (si | |||
|  |    tratta di una modifica alla logica dell'applicazione). Questa modifica non | |||
|  |    influisce sul lavoro del grafico, infatti il contenuto arriver<65> al template | |||
|  |    esattamente uguale a prima. Allo stesso modo, se il grafico vuole ridisegnare | |||
|  |    completamente il template, questo non richieder<65> modifica alla logica  | |||
|  |    applicativa. Quindi, il programmatore pu<70> fare modifice alla logica senza | |||
|  |    bisogno di ristrutturare i template, e il grafico pu<70> modificare i template | |||
|  |    senza rovinare la logica dell'applicazione. | |||
|  |   </para> | |||
|  |   <para> | |||
|  |    Uno degli obiettivi progettuali di Smarty <20> la separazione della logica di  | |||
|  |    business dalla logica di presentazione. Questo significa che i template possono | |||
|  |    contenere logica, a condizione che tale logica sia esclusivamente relativa alla | |||
|  |    presentazione. Cose come includere un altro template, alternare i colori delle | |||
|  |    righe di tabella, mostrare un dato in maiuscolo, ciclare su un array di dati | |||
|  |    per visualizzarli, ecc., sono tutti esempi di logica di presentazione. Questo non | |||
|  |    significa che Smarty forza una separazione fra la logica di business e quella di | |||
|  |    presentazione. Smarty non pu<70> sapere che cosa <20> una cosa e cosa <20> l'altra, per | |||
|  |    cui se mettete logica di business nel template sono affari vostri. Inoltre, | |||
|  |    se <emphasis>non volete</emphasis> alcuna logica nei template, potete  | |||
|  |    sicuramente ottenere ci<63> riducendo il contenuto a solo testo e variabili. | |||
|  |   </para> | |||
|  |   <para> | |||
|  |    Uno degli aspetti caratteristici di Smarty <20> la compilazione dei template. Questo | |||
|  |    significa che Smarty legge i file dei template e crea script PHP a partire da | |||
|  |    questi. Una volta creati, questi script vengono eseguiti da quel momento in poi: | |||
|  |    di conseguenza si evita una costosa analisi dei template ad ogni richiesta, e | |||
|  |    ogni template pu<70> avvantaggiarsi pienamente di strumenti per velocizzare  | |||
|  |    l'esecuzione come Zend Accelerator (<ulink url="&url.zend;">&url.zend;</ulink>)  | |||
|  |    o PHP Accelerator (<ulink url="&url.php-accelerator;">&url.php-accelerator;</ulink>). | |||
|  |   </para> | |||
|  |   <para> | |||
|  |    Ecco alcune delle funzionalit<69> di Smarty: | |||
|  |   </para> | |||
|  |   <itemizedlist> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      E' estremamente veloce. | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      E' efficiente, perch<63> <20> l'analizzatore di PHP a fare il "lavoro sporco". | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      Non c'<27> sovraccarico per l'analisi del template, che viene compilato una sola volta. | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      E' abbastanza furbo da saper ricompilare solo i template che sono stati modificati. | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      Potete creare <link linkend="language.custom.functions">funzioni personalizzate</link> | |||
|  |      e <link linkend="language.modifiers">modificatori di variabili</link> personalizzati, | |||
|  |      il che rende il linguaggio dei template estremamente estensibile. | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      La sintassi dei tag di delimitazione dei template <20> configurabile: potete usare | |||
|  |      {}, {{}}, <!--{}-->, ecc. | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      I costrutti if/elseif/else/endif vengono passati al PHP, quindi la sintassi delle | |||
|  |      espressioni condizionali pu<70> essere semplice o complicata a vostro piacimento. | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      E' consentito nidificare in maniera illimitata sezioni, test, ecc. | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      E' possibile incorporare direttamente codice PHP nei file di template, sebbene | |||
|  |      non dovrebbe essercene bisogno (e nemmeno <20> raccomandato), essendo il motore | |||
|  |      cos<6F> personalizzabile. | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      Supporto nativo al caching | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      Scelta arbitraria dei sorgenti dei template | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      Funzioni personalizzate di gestione della cache | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |    <listitem> | |||
|  |     <para> | |||
|  |      Architettura a plugin | |||
|  |     </para> | |||
|  |    </listitem> | |||
|  |   </itemizedlist> | |||
|  |  </chapter> | |||
|  |  <chapter id="installation"> | |||
|  |   <title>Installazione</title> | |||
|  | 
 | |||
|  |   <sect1 id="installation.requirements"> | |||
|  |    <title>Requisiti</title> | |||
|  |    <para> | |||
|  |     Smarty necessita di un web server su cui gira PHP 4.0.6 o successivo. | |||
|  |    </para> | |||
|  |   </sect1> | |||
|  | 
 | |||
|  |   <sect1 id="installing.smarty.basic"> | |||
|  |    <title>Installazione di base</title> | |||
|  |    <para> | |||
|  |     Installate i file delle librerie di Smarty che si trovano nella directory | |||
|  |     /libs/ della distribuzione. Questi sono i file PHP che NON DOVETE modificare. | |||
|  |     Sono condivisi da tutte le applicazioni e vengono modificati solo quando | |||
|  |     passate ad una nuova versione di Smarty. | |||
|  |    </para> | |||
|  |    <example> | |||
|  |     <title>File delle librerie di Smarty</title> | |||
|  |     <screen> | |||
|  | <![CDATA[ | |||
|  | Smarty.class.php | |||
|  | Smarty_Compiler.class.php | |||
|  | Config_File.class.php | |||
|  | debug.tpl | |||
|  | /internals/*.php (tutti) | |||
|  | /plugins/*.php (tutti) | |||
|  | ]]> | |||
|  |     </screen> | |||
|  |    </example> | |||
|  |    <para> | |||
|  |     Smarty usa una costante PHP chiamata <link | |||
|  |     linkend="constant.smarty.dir">SMARTY_DIR</link> che contiene il path di sistema | |||
|  |     della directory delle librerie di Smarty. Fondamentalmente, se la vostra applicazione | |||
|  |     <20> in grado di trovare il file <filename>Smarty.class.php</filename>, non avete bisogno | |||
|  |     di impostare SMARTY_DIR, in quanto Smarty la trover<65> da solo. Tuttavia, se | |||
|  |     <filename>Smarty.class.php</filename> non si trova nel vostro include_path, o se non | |||
|  |     fornite alla vostra applicazione un percorso assoluto per questo file, allora dovete | |||
|  |     definire manualmente SMARTY_DIR. La costante SMARTY_DIR <emphasis>deve</emphasis>  | |||
|  |     contenere uno slash (/) finale. | |||
|  |    </para> | |||
|  |    <para> | |||
|  |     Ecco come creerete un'istanza di Smarty nei vostri script PHP: | |||
|  |    </para> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Creazione di un'istanza di Smarty</title> | |||
|  |     <programlisting role="php"> | |||
|  | <![CDATA[ | |||
|  | <?php | |||
|  | require('Smarty.class.php'); | |||
|  | $smarty = new Smarty; | |||
|  | ?> | |||
|  | ]]> | |||
|  |     </programlisting> | |||
|  |    </example> | |||
|  | 
 | |||
|  |    <para> | |||
|  |     Provate a lanciare lo script qui sopra. Se ricevete un errore che dice che | |||
|  |     il file <filename>Smarty.class.php</filename> non si trova, dovete fare una | |||
|  |     delle cose seguenti: | |||
|  |    </para> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Fornire un percorso assoluto al file delle librerie</title> | |||
|  |     <programlisting role="php"> | |||
|  | <![CDATA[ | |||
|  | <?php | |||
|  | require('/usr/local/lib/php/Smarty/Smarty.class.php'); | |||
|  | $smarty = new Smarty; | |||
|  | ?> | |||
|  | ]]> | |||
|  |     </programlisting> | |||
|  |    </example> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Aggiungere la directory della libreria all'include_path di PHP</title> | |||
|  |     <programlisting role="php"> | |||
|  | <![CDATA[ | |||
|  | <?php | |||
|  | // Modificate il file php.ini, aggiungete la directory delle | |||
|  | // librerie di Smarty all'include_path e riavviate il server web. | |||
|  | // A questo punto il codice seguente dovrebbe funzionare: | |||
|  | require('Smarty.class.php'); | |||
|  | $smarty = new Smarty; | |||
|  | ?> | |||
|  | ]]> | |||
|  |     </programlisting> | |||
|  |    </example> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Impostare manualmente la costante SMARTY_DIR</title> | |||
|  |     <programlisting role="php"> | |||
|  | <![CDATA[ | |||
|  | <?php | |||
|  | define('SMARTY_DIR', '/usr/local/lib/php/Smarty/'); | |||
|  | require(SMARTY_DIR . 'Smarty.class.php'); | |||
|  | $smarty = new Smarty; | |||
|  | ?> | |||
|  | ]]> | |||
|  |     </programlisting> | |||
|  |    </example> | |||
|  | 
 | |||
|  |    <para> | |||
|  |     Ora che i file delle librerie sono al loro posto, <20> ora di impostare le | |||
|  |     directory di Smarty per la vostra applicazione. Smarty necessita di quattro | |||
|  |     directory chiamate (per default) <filename class="directory">templates</filename>, | |||
|  |     <filename class="directory">templates_c</filename>, <filename  | |||
|  |     class="directory">configs</filename> e <filename class="directory">cache</filename>.  | |||
|  |     Ciascuna di queste <20> definibile dalle propriet<65> | |||
|  |     della classe Smarty <varname>$template_dir</varname>, | |||
|  |     <varname>$compile_dir</varname>, <varname>$config_dir</varname>, e | |||
|  |     <varname>$cache_dir</varname> rispettivamente. E' altamente raccomandato | |||
|  |     impostare un insieme separato di queste directory per ogni applicazione che | |||
|  |     user<65> Smarty. | |||
|  |    </para> | |||
|  |    <para> | |||
|  |     Assicuratevi di conoscere il percorso della document root del vostro web  | |||
|  |     server. Nel nostro esempio, la document root <20> <filename  | |||
|  |     class="directory">/web/www.mydomain.com/docs/</filename>. | |||
|  |     Le directory di Smarty vengono accedute solo dalle librerie di Smarty e mai | |||
|  |     direttamente dal browser. Tuttavia, per evitare problemi di sicurezza, si | |||
|  |     raccomanda di mettere queste directory <emphasis>al di fuori</emphasis> della | |||
|  |     document root. | |||
|  |    </para> | |||
|  |    <para> | |||
|  |     Per la nostra installazione di esempio, imposteremo l'ambiente di Smarty per | |||
|  |     una applicazione di guest book. Abbiamo scelto un'applicazione al solo scopo | |||
|  |     di avere una convenzione per il nome delle directory. Potete usare lo stesso | |||
|  |     ambiente per qualsiasi applicazione, soltanto sostituendo "guestbook" con il | |||
|  |     nome della vostra applicazione. Metteremo le nostre directory di Smarty sotto | |||
|  |     <filename class="directory">/web/www.mydomain.com/smarty/guestbook/</filename>. | |||
|  |    </para> | |||
|  |    <para> | |||
|  |     Avrete bisogno di almeno un file sotto la document root, e quello sar<61> lo script | |||
|  |     a cui pu<70> accedere ilbrowser. Lo chiameremo <filename>index.php</filename>,  | |||
|  |     e lo metteremo in una sottodirectory della document root chiamata <filename  | |||
|  |     class="directory">/guestbook/</filename>. | |||
|  |    </para> | |||
|  | 
 | |||
|  |    <note> | |||
|  |     <title>Nota tecnica</title> | |||
|  |     <para> | |||
|  |      Conviene impostare il web server in modo che "index.php" possa essere identificato | |||
|  |      come indice di default della directory, cos<6F> se provate a richiedere | |||
|  |      "http://www.example.com/guestbook/", lo script index.php verr<72> eseguito senza | |||
|  |      "index.php" nell'URL. In Apache questo pu<70> essere impostato aggiungendo | |||
|  |      "index.php" alla fine dell'impostazione DirectoryIndex (le voci vanno separate | |||
|  |      con uno spazio l'una dall'altra). | |||
|  |     </para> | |||
|  |    </note> | |||
|  | 
 | |||
|  |    <para> | |||
|  |     Diamo un'occhiata alla struttura dei file fino ad ora: | |||
|  |    </para> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Esempio di struttura dei file</title> | |||
|  |     <screen> | |||
|  | <![CDATA[ | |||
|  | /usr/local/lib/php/Smarty/Smarty.class.php | |||
|  | /usr/local/lib/php/Smarty/Smarty_Compiler.class.php | |||
|  | /usr/local/lib/php/Smarty/Config_File.class.php | |||
|  | /usr/local/lib/php/Smarty/debug.tpl | |||
|  | /usr/local/lib/php/Smarty/internals/*.php | |||
|  | /usr/local/lib/php/Smarty/plugins/*.php | |||
|  | 
 | |||
|  | /web/www.example.com/smarty/guestbook/templates/ | |||
|  | /web/www.example.com/smarty/guestbook/templates_c/ | |||
|  | /web/www.example.com/smarty/guestbook/configs/ | |||
|  | /web/www.example.com/smarty/guestbook/cache/ | |||
|  | 
 | |||
|  | /web/www.example.com/docs/guestbook/index.php | |||
|  | ]]> | |||
|  |     </screen> | |||
|  |    </example> | |||
|  | 
 | |||
|  |    <para> | |||
|  |     Smarty necessita del diritto di scrittura su <emphasis>$compile_dir</emphasis> e su | |||
|  |     <emphasis>$cache_dir</emphasis>, quindi assicuratevi che l'utente del web | |||
|  |     server possa scriverci sopra. Di solito si tratta dell'utente "nobody" e | |||
|  |     gruppo "nobody". Per utenti di OS X, il default <20> utente "www" e gruppo "www". | |||
|  |     Se usate Apache, potete guardare nel file httpd.conf (di solito in  | |||
|  |     "/usr/local/apache/conf/") per vedere quale utente e gruppo vengono usati. | |||
|  |    </para> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Impostazione dei permessi sui file</title> | |||
|  |     <programlisting role="shell"> | |||
|  | <![CDATA[ | |||
|  | chown nobody:nobody /web/www.example.com/smarty/guestbook/templates_c/ | |||
|  | chmod 770 /web/www.example.com/smarty/guestbook/templates_c/ | |||
|  | 
 | |||
|  | chown nobody:nobody /web/www.example.com/smarty/guestbook/cache/ | |||
|  | chmod 770 /web/www.example.com/smarty/guestbook/cache/ | |||
|  | ]]> | |||
|  |     </programlisting> | |||
|  |    </example> | |||
|  | 
 | |||
|  |    <note> | |||
|  |     <title>Nota tecnica</title> | |||
|  |     <para> | |||
|  |      chmod 770 vi garantisce una notevole sicurezza, in quanto consente solo  | |||
|  |      all'utente e al gruppo "nobody" l'accesso in lettura/scrittura alle directory. | |||
|  |      Se volete consentire la lettura a chiunque (soprattutto per vostra comodit<69>, | |||
|  |      se volete guardare questi file), potete impostare invece 775. | |||
|  |     </para> | |||
|  |    </note> | |||
|  | 
 | |||
|  |    <para> | |||
|  |     Ora dobbiamo creare il file index.tpl che Smarty caricher<65>. Si trover<65> nella | |||
|  |     directory $template_dir. | |||
|  |    </para> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Edit di /web/www.example.com/smarty/guestbook/templates/index.tpl</title> | |||
|  |     <screen> | |||
|  | <![CDATA[ | |||
|  | 
 | |||
|  | {* Smarty *} | |||
|  | 
 | |||
|  | Hello, {$name}! | |||
|  | ]]> | |||
|  |     </screen> | |||
|  |    </example> | |||
|  | 
 | |||
|  |    <note> | |||
|  |     <title>Nota tecnica</title> | |||
|  |     <para> | |||
|  |      {* Smarty *} <20> un commento del template. Non <20> obbligatorio, ma <20> buona pratica | |||
|  |      iniziare tutti i file di template con questo commento. Rende semplice  | |||
|  |      riconoscere il file, indipendentemente dalla sua estensione. Ad esempio, | |||
|  |      un editor di testo potrebbe riconoscere il file ed attivare una particolare | |||
|  |      evidenziazione della sintassi. | |||
|  |     </para> | |||
|  |    </note> | |||
|  | 
 | |||
|  |    <para> | |||
|  |     Ora editiamo index.php. Creeremo un'istanza di Smarty, valorizzeremo una | |||
|  |     variabile del template e faremo il display del file index.tpl. Nel nostro | |||
|  |     ambiente di esempio, "/usr/local/lib/php/Smarty" si trova nell'include_path. | |||
|  |     Assicuratevi che sia cos<6F> anche per voi, oppure usate percorsi assoluti. | |||
|  |    </para> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Edit di /web/www.example.com/docs/guestbook/index.php</title> | |||
|  |     <programlisting role="php"> | |||
|  | <![CDATA[ | |||
|  | <?php | |||
|  | 
 | |||
|  | // caricamento delle librerie di Smarty | |||
|  | require('Smarty.class.php'); | |||
|  | 
 | |||
|  | $smarty = new Smarty; | |||
|  | 
 | |||
|  | $smarty->template_dir = '/web/www.example.com/smarty/guestbook/templates/'; | |||
|  | $smarty->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/'; | |||
|  | $smarty->config_dir = '/web/www.example.com/smarty/guestbook/configs/'; | |||
|  | $smarty->cache_dir = '/web/www.example.com/smarty/guestbook/cache/'; | |||
|  | 
 | |||
|  | $smarty->assign('name','Ned'); | |||
|  | 
 | |||
|  | $smarty->display('index.tpl'); | |||
|  | ?> | |||
|  | ]]> | |||
|  |     </programlisting> | |||
|  |    </example> | |||
|  | 
 | |||
|  |    <note> | |||
|  |     <title>Nota tecnica</title> | |||
|  |     <para> | |||
|  |      Nell'esempio stiamo usando percorsi assoluti per tutte le directory | |||
|  |      di Smarty. Se <filename | |||
|  |      class="directory">/web/www.example.com/smarty/guestbook/</filename> fa  | |||
|  |      parte dell'include_path di PHP, questo non <20> necessario. Comunque, <20> pi<70> | |||
|  |      efficiente e (per esperienza) meno soggetto ad errori usare percorsi | |||
|  |      assoluti. Questo vi garantisce che Smarty prenda i file dalle directory | |||
|  |      giuste. | |||
|  |     </para> | |||
|  |    </note> | |||
|  | 
 | |||
|  |    <para> | |||
|  |     Ora richiamate il file <filename>index.php</filename> dal browser.  | |||
|  |     Dovreste vedere "Hello, Ned!" | |||
|  |    </para> | |||
|  |    <para> | |||
|  |     Avete completato l'installazione base di Smarty! | |||
|  |    </para> | |||
|  |   </sect1> | |||
|  |   <sect1 id="installing.smarty.extended"> | |||
|  |    <title>Installazione avanzata</title> | |||
|  | 
 | |||
|  |    <para> | |||
|  |     Questo <20> il seguito della <link | |||
|  |     linkend="installing.smarty.basic">installazione di base</link>, siete pregati | |||
|  |     di leggerla prima! | |||
|  |    </para> | |||
|  |    <para> | |||
|  |     Un modo leggermente pi<70> flessibile di installare Smarty <20> di estendere la | |||
|  |     classe e inizializzare il vostro ambiente di Smarty. Cos<6F>, invece di impostare | |||
|  |     ripetutamente i percorsi delle directory, riassegnare le stesse variabili ecc., | |||
|  |     possiamo farlo in un unico punto.  | |||
|  |     Creiamo una nuova directory "/php/includes/guestbook/" e un file chiamato | |||
|  |     <filename>setup.php</filename>. Nel nostro ambiente di esempio, "/php/includes" fa parte | |||
|  |     dell'include_path. Assicuratevi che sia cos<6F> anche per voi, oppure usate percorsi | |||
|  |     assoluti. | |||
|  |    </para> | |||
|  | 
 | |||
|  |    <example> | |||
|  |     <title>Edit di /php/includes/guestbook/setup.php</title> | |||
|  |     <programlisting role="php"> | |||
|  | <![CDATA[ | |||
|  | <?php | |||
|  | 
 | |||
|  | // caricamento delle librerie di Smarty | |||
|  | require('Smarty.class.php'); | |||
|  | 
 | |||
|  | // Il file setup.php <20> un buon punto dal quale caricare | |||
|  | // le librerie necessarie all'applicazione, quindi | |||
|  | // potete farlo qui. Ad esempio: | |||
|  | // require('guestbook/guestbook.lib.php'); | |||
|  | 
 | |||
|  | class Smarty_GuestBook extends Smarty { | |||
|  | 
 | |||
|  |    function Smarty_GuestBook() | |||
|  |    { | |||
|  | 
 | |||
|  |         // Costruttore della Classe. Questi dati vengono automaticamente impostati | |||
|  |         // per ogni nuova istanza. | |||
|  | 
 | |||
|  |         $this->Smarty(); | |||
|  | 
 | |||
|  |         $this->template_dir = '/web/www.example.com/smarty/guestbook/templates/'; | |||
|  |         $this->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/'; | |||
|  |         $this->config_dir = '/web/www.example.com/smarty/guestbook/configs/'; | |||
|  |         $this->cache_dir = '/web/www.example.com/smarty/guestbook/cache/'; | |||
|  | 
 | |||
|  |         $this->caching = true; | |||
|  |         $this->assign('app_name', 'Guest Book'); | |||
|  |    } | |||
|  | 
 | |||
|  | } | |||
|  | ?> | |||
|  | ]]> | |||
|  |     </programlisting> | |||
|  |    </example> | |||
|  | 
 | |||
|  |   <para> | |||
|  |    Ora modifichiamo il file index.php per usare setup.php: | |||
|  |   </para> | |||
|  | 
 | |||
|  |   <example> | |||
|  |    <title>Edit di /web/www.example.com/docs/guestbook/index.php</title> | |||
|  |    <programlisting role="php"> | |||
|  | <![CDATA[ | |||
|  | <?php | |||
|  | 
 | |||
|  | require('guestbook/setup.php'); | |||
|  | 
 | |||
|  | $smarty = new Smarty_GuestBook; | |||
|  | 
 | |||
|  | $smarty->assign('name','Ned'); | |||
|  | 
 | |||
|  | $smarty->display('index.tpl'); | |||
|  | ?> | |||
|  | ]]> | |||
|  |    </programlisting> | |||
|  |   </example> | |||
|  | 
 | |||
|  |   <para> | |||
|  |    Come potete vedere, <20> molto semplice creare un'istanza di Smarty, basta usare | |||
|  |    Smarty_GuestBook che inizializza automaticamente tutto ci<63> che serve alla | |||
|  |    nostra applicazione. | |||
|  |   </para> | |||
|  | 
 | |||
|  |   </sect1> | |||
|  | 
 | |||
|  |  </chapter> | |||
|  | </part> | |||
|  | 
 | |||
|  | <!-- Keep this comment at the end of the file
 | |||
|  | Local variables: | |||
|  | mode: sgml | |||
|  | sgml-omittag:t | |||
|  | sgml-shorttag:t | |||
|  | sgml-minimize-attributes:nil | |||
|  | sgml-always-quote-attributes:t | |||
|  | sgml-indent-step:1 | |||
|  | sgml-indent-data:t | |||
|  | indent-tabs-mode:nil | |||
|  | sgml-parent-document:nil | |||
|  | sgml-default-dtd-file:"../../../../manual.ced" | |||
|  | sgml-exposed-tags:nil | |||
|  | sgml-local-catalogs:nil | |||
|  | sgml-local-ecat-files:nil | |||
|  | End: | |||
|  | vim600: syn=xml fen fdm=syntax fdl=2 si | |||
|  | vim: et tw=78 syn=sgml | |||
|  | vi: ts=1 sw=1 | |||
|  | --> |