diff --git a/docs/it/appendixes/bugs.xml b/docs/it/appendixes/bugs.xml new file mode 100644 index 00000000..efacdb1d --- /dev/null +++ b/docs/it/appendixes/bugs.xml @@ -0,0 +1,30 @@ + + + + BUGS + + Verificate il file BUGS compreso nella + distribuzione più recente di Smarty, oppure controllate + direttamente sul sito web. + + + diff --git a/docs/it/appendixes/resources.xml b/docs/it/appendixes/resources.xml new file mode 100644 index 00000000..39732356 --- /dev/null +++ b/docs/it/appendixes/resources.xml @@ -0,0 +1,32 @@ + + + + Risorse + + La homepage di Smarty è &url.smarty;. + Potete sottoscrivere la mailing list inviando una e-mail + a &ml.general.sub;. L'archivio della mailing list è + disponibile a &url.ml.archive;. + + + diff --git a/docs/it/appendixes/tips.xml b/docs/it/appendixes/tips.xml new file mode 100644 index 00000000..3d90ace5 --- /dev/null +++ b/docs/it/appendixes/tips.xml @@ -0,0 +1,378 @@ + + + + Tips & Tricks (trucchi e consigli) + + + + Gestione delle variabili vuote + + Certe volte potreste voler stampare un valore di default per una + variabile vuota invece di stampare niente, ad esempio " " + in modo che gli sfondi delle tabelle funzionino regolarmente. Molti + userebbero una {if} per gestire questo caso, ma c'è un modo più veloce + con Smarty, che è l'uso del modificatore default. + + + Stampare   quando una variabile è vuota + + + + + + + + Gestione dei default delle variabili + + Se una variabile viene usata più volte nel template, applicarle ogni + volta il modificatore default può diventare pesante. E' possibile + rimediare a ciò assegnando alla variabile il suo valore di default + con la funzione assign. + + + Assegnazione del valore di default a una variabile del template + + + + + + + Passare una variabile titolo ad un template di intestazione + + Quando la maggior parte dei template usa gli stessi intestazione e pié di + pagina, è abbastanza comune creare dei template a parte per questi ultimi + e poi includerli negli altri. Ma cosa succede se l'intestazione ha bisogno + di avere un titolo diverso a seconda della pagina in cui ci troviamo? + Potete passare il titolo all'intestazione nel momento dell'inclusione. + + + Passare la variabile titolo al template dell'intestazione + + + +{$title|default:"BC News"} + + + + +footer.tpl +---------- + + +]]> + + + + Quando viene disegnata la pagina principale, il titolo "Main Page" viene + passato a header.tpl, e quindi sarà usato come titolo. Quando viene + disegnata la pagina degli archivi, il titolo sarà "Archives". Notate + che nell'esempio degli archivi abbiamo usato una variabile del file + archives_page.conf invece che una definita nel codice. Notate anche che + se la variabile $title non è impostata viene stampato "BC News", attraverso + il modificatore di variabile default. + + + + Date + + Come regola generale, passate sempre le date a Smarty in forma di + timestamp. Questo consente ai progettisti di usare date_format per un + pieno controllo sulla formattazione delle date, e rende semplice + anche il confronto fra date quando necessario. + + + + A partire da Smarty 1.4.0, potete passare date a Smarty come + timestamp unix, timestamp mysql, o qualsiasi altro formato + leggibile da strtotime(). + + + + uso di date_format + + + + + Questo stamperà: + + + + + + + + + Questo stamperà: + + + + + + + + + + Quando usate {html_select_date} in un template, il programmatore + probabilmente vorrà convertire l'output del modulo in un formato + timestamp. Ecco una funzione che può aiutarvi in questo. + + + convertire le date provenienti da un modulo in timestamp + + +]]> + + + + + WAP/WML + + I template WAP/WML richiedono header php di tipo Content-Type che deve + essere passato insieme al template. Il modo più semplice per farlo sarebbe + scrivere una funzione utente che stampi l'header. Tuttavia, se usate + il caching, questo sistema non funziona, per cui lo faremo con il tag + insert (ricordate che i tag insert non vanno in cache!). Assicuratevi + che nulla sia inviato in output al browser prima del template, altrimenti + l'header non potrà essere spedito. + + + usare insert per scrivere un header Content-Type WML + + +]]> + + + il template deve iniziare con il tag insert: + + + + + + + + + + + + +

+ Welcome to WAP with Smarty! + Press OK to continue... +

+
+ + +

+ Pretty easy isn't it? +

+
+
+]]> +
+
+
+ + Template a componenti + + Tradizionalmente, programmare le applicazioni a template funziona + così: per prima cosa si accumulano le variabili nell'applicazione + PHP (magari con query al database). Poi, si istanzia l'oggetto + Smarty, si assegnano le variabili e si visualizza il template. + Allora supponiamo di avere, ad esempio, un riquadro che visualizza + le quotazioni di Borsa (stock ticker) nel nostro template. In + questo caso raccoglieremmo i dati sulle azioni nell'applicazione, + poi assegneremmo le variabili al template e le visualizzeremmo. Ma + non sarebbe bello poter aggiungere questo stock ticker a qualsiasi + applicazione semplicemente includendo il template, senza preoccuparci + della parte relativa al caricamento dei dati? + + + E' possibile fare questo scrivendo un plugin personalizzato che + recuperi il contenuto e lo assegni ad una variabile del template. + + + template a componenti + +assign($params['assign'], $ticker_info); +} +?> +]]> + + + + + + + + Offuscare gli indirizzi E-mail + + Vi siete mai chiesti come fanno i vostri indirizzi E-mail a finire su + così tante mailing list di spam? Uno dei modi che hanno gli spammer + per raccogliere indirizzi E-mail è dalle pagine web. Per combattere + questo problema, potete fare in modo che gli indirizzi E-mail appaiano + in maniera criptata da javascript nel sorgente HTML, anche se continueranno + ad essere visti e a funzionare correttamente nel browser. E' possibile + farlo con il plugin mailto. + + + Esempio di offuscamento di indirizzo E-mail + + + + + + Nota tecnica + + Questo metodo non è sicuro al 100%. Uno spammer, concettualmente, potrebbe + programmare il suo raccoglitore di e-mail per decodificare questi valori, + ma non è una cosa semplice. + + + +
+ diff --git a/docs/it/appendixes/troubleshooting.xml b/docs/it/appendixes/troubleshooting.xml new file mode 100644 index 00000000..d5202aac --- /dev/null +++ b/docs/it/appendixes/troubleshooting.xml @@ -0,0 +1,77 @@ + + + + Troubleshooting + + + Errori Smarty/PHP + + Smarty è in grado di trovare molti errori, ad esempio attributi + mancanti nei tag, o nomi di variabile non corretti. Quando questo + succede, vedrete un errore simile al seguente: + + + Errori Smarty + + + + + + Smarty vi mostra il nome del template, il numero di riga e l'errore. + Dopodiché, vi viene mostrato anche il numero reale di riga nella classe + Smarty alla quale si è verificato l'errore. + + + + Ci sono alcuni errori che Smarty non riesce a trovare, ad esempio tag + di chiusura mancanti. Questi tipi di errore di solito portano ad errori + di parsing PHP al momento della compilazione. + + + + Errori di parsing PHP + + + + + + + Quando vi trovate davanti un errore di parsing PHP, il numero di riga + indicato corrisponderà allo script PHP compilato, non al template sorgente. + Normalmente dando un'occhiata al template si riesce a capire dov'è + l'errore di sintassi. Ecco alcuni errori comuni da controllare: mancanza + del tag di chiusura per blocchi {if}{/if} o {section}{/section}, oppure + problemi di sintassi all'interno di un tag {if}. Se non riuscite a trovare + l'errore, andata nel file compilato PHP e trovate il numero di riga indicato + per capire dove si trova l'errore corrispondente nel template. + + + + diff --git a/docs/it/bookinfo.xml b/docs/it/bookinfo.xml new file mode 100644 index 00000000..104f1ef2 --- /dev/null +++ b/docs/it/bookinfo.xml @@ -0,0 +1,41 @@ + + + + Smarty - il motore di template PHP con compilatore + + + Monte + Ohrt <monte@ispi.net> + + + Andrei + Zmievski <andrei@php.net> + + + &build-date; + + 2001-2004 + ispi of Lincoln, Inc. + + + + diff --git a/docs/it/designers/chapter-debugging-console.xml b/docs/it/designers/chapter-debugging-console.xml new file mode 100644 index 00000000..859db419 --- /dev/null +++ b/docs/it/designers/chapter-debugging-console.xml @@ -0,0 +1,60 @@ + + + + Console di Debugging + + C'è una console di debugging inclusa in Smarty. La console vi informa di + tutti i template che sono stati inclusi, le variabili assegnate e quelle + dei file di configurazione per la chiamata attuale del template. Nella + distribuzione di Smarty è incluso un template chiamato "debug.tpl" che + controlla la formattazione della console. Impostate $debugging a true in + Smarty, e se necessario impostate $debug_tpl con il percorso del file + debug.tpl (di default si trova nella SMARTY_DIR). Quando caricate la pagina, + dovrebbe apparire in pop up una console creata con javascript che vi informa di + tutti i nomi dei template inclusi e delle variabili assegnate nella pagina + attuale. Per vedere le variabili disponibili per un particolare template, + consultate la funzione {debug}. + Per disabilitare la console di debugging impostate $debugging a false. + Potete anche attivare temporaneamente la console mettendo SMARTY_DEBUG + nell'URL, se abilitate questa opzione con $debugging_ctrl. + + + Nota tecnica + + La console di debugging non funziona quando usate la API fetch(), funziona + solo con display(). E' un insieme di istruzioni javascript aggiunte in + fondo al template generato. Se non vi piace l'uso di javascript, potete + modificare il template debug.tpl per formattare l'output come preferite. + I dati di debug non vengono messi in cache e i dati relativi a debug.tpl non + sono inclusi nell'output della console di debug. + + + + + I tempi di caricamento di ogni template e file di configurazione sono in + secondi o frazioni di secondo. + + + + + diff --git a/docs/it/designers/config-files.xml b/docs/it/designers/config-files.xml new file mode 100644 index 00000000..e9e35e37 --- /dev/null +++ b/docs/it/designers/config-files.xml @@ -0,0 +1,96 @@ + + + + File di configurazione + + I file di configurazione sono utili ai progettisti per gestire le + variabili globali del template in un unico file. Un esempio è quello + dei colori. Normalmente, se volete cambiare lo schema dei colori di + un'applicazione, dovreste andare in ogni template a cambiare i colori. + Con un file di configurazione, i colori possono essere tenuti in un + unico punto, e solo un file deve essere modificato. + + + Esempio di sintassi di file di configurazione + + + + + + I valori delle variabili dei file di configurazione possono essere + fra virgolette, ma non è necessario. Potete usare sia gli apici singoli + ('), sia le virgolette doppie ("). Se avete un valore che occupa più + di una riga, racchiudete l'intero valore fra triple virgolette ("""). + Potete mettere commenti usando qualsiasi sintassi che non sia valida + per il file di configurazione. Noi consigliamo l'uso di un cancelletto + (#) all'inizio della riga. + + + Questo esempio di file di configurazione ha due sezioni. I nomi di sezione + sono racchiusi fra parentesi quadre []. I nomi di sezioni possono essere + stringhe dal contenuto arbitrario, purché non comprenda [ + o ]. Le quattro variabili in alto sono variabili globali, + non contenute in alcuna sezione. Queste variabili vengono sempre caricate + dal file di configurazione. Se viene caricata una particolare sezione, + allora saranno caricate le variabili globali e quelle di quella sezione. + Se una variabile esiste sia come globale che in una sezione, verrà usata + la variabile di sezione. Se date lo stesso nome a due variabili nella stessa + sezione verrà usato l'ultimo valore. + + + I file di configurazione vengono caricati nel template con la funzione + config_load. + + + Potete nascondere variabili o intere sezioni anteponendo un punto al nome + della variabile o della sezione. Questo è utile se la vostra applicazione + legge dai file di configurazione dati sensibili di cui il motore di + template non ha bisogno. Se affidate a terzi la modifica del template, + potete stare sicuri che non potranno leggere dati sensibili dal file di + configurazione caricandolo nel template. + + + + diff --git a/docs/it/designers/language-basic-syntax.xml b/docs/it/designers/language-basic-syntax.xml new file mode 100644 index 00000000..784bd4be --- /dev/null +++ b/docs/it/designers/language-basic-syntax.xml @@ -0,0 +1,45 @@ + + + + Sintassi di base + + Tutti i tag dei template di Smarty sono racchiusi fra delimitatori. + Per default i delimitatori sono { e + }, ma possono essere cambiati. + + + Per questi esempi supporremo di usare i delimitatori di default. + In Smarty, tutto il contenuto al di fuori dei delimitatori viene + mostrato come contenuto statico, senza modifiche. Quando Smarty + incontra i tag dei template, cerca di interpretarli, e visualizza + al loro posto l'output relativo. + + + &designers.language-basic-syntax.language-syntax-comments; + &designers.language-basic-syntax.language-syntax-functions; + &designers.language-basic-syntax.language-syntax-attributes; + &designers.language-basic-syntax.language-syntax-quotes; + &designers.language-basic-syntax.language-math; + &designers.language-basic-syntax.language-escaping; + + + diff --git a/docs/it/designers/language-basic-syntax/language-escaping.xml b/docs/it/designers/language-basic-syntax/language-escaping.xml new file mode 100644 index 00000000..ca9bf33c --- /dev/null +++ b/docs/it/designers/language-basic-syntax/language-escaping.xml @@ -0,0 +1,84 @@ + + + + Evitare il parsing di Smarty + + A volte è desiderabile o necessario che Smarty ignori sezioni che altrimenti + verrebbero analizzate. Un esempio tipico è l'incorporazione di codice Javascript + o CSS in un template. Il problema nasce dal fatto che questi linguaggi utilizzano + i caratteri { e } che per Smarty sono i delimitatori di default. + + + + La cosa più semplice sarebbe evitare queste situazioni tenendo il codice Javascript + e CSS separato in appositi file e usando i collegamenti standard dell'HTML per + recuperarli. + + + + E' possibile includere contenuto letterale usando blocchi di questo tipo: + {literal} .. {/literal}. + Potete anche usare, in modo simile alle entità HTML, {ldelim},{rdelim} oppure {$smarty.ldelim},{$smarty.rdelim} + per visualizzare i delimitatori senza che Smarty ne analizzi il contenuto. + + + + Spesso risulta semplicemente conveniente cambiare il $left_delimiter ed il + $right_delimiter di Smarty. + + + esempio di cambio dei delimitatori + +left_delimiter = ''; +$smarty->assign('foo', 'bar'); +$smarty->display('example.tpl'); + +?> +]]> + + + Dove example.tpl è: + + + +var foo = ; +function dosomething() { + alert("foo is " + foo); +} +dosomething(); + +]]> + + + + diff --git a/docs/it/designers/language-basic-syntax/language-math.xml b/docs/it/designers/language-basic-syntax/language-math.xml new file mode 100644 index 00000000..93850959 --- /dev/null +++ b/docs/it/designers/language-basic-syntax/language-math.xml @@ -0,0 +1,48 @@ + + + + Funzioni aritmetiche + + Le funzioni aritmetiche possono essere applicate direttamente ai valori delle variabili. + + + esempi di funzioni aritmetiche + +bar-$bar[1]*$baz->foo->bar()-3*7} + +{if ($foo+$bar.test%$baz*134232+10+$b+10)} + +{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"} + +{assign var="foo" value="`$foo+$bar`"} +]]> + + + + diff --git a/docs/it/designers/language-basic-syntax/language-syntax-attributes.xml b/docs/it/designers/language-basic-syntax/language-syntax-attributes.xml new file mode 100644 index 00000000..7c573503 --- /dev/null +++ b/docs/it/designers/language-basic-syntax/language-syntax-attributes.xml @@ -0,0 +1,58 @@ + + + + Attributi + + La maggior parte delle funzioni accetta attributi che specificano + o modificano il loro comportamento. Gli attributi delle funzioni + Smarty assomigliano agli attributi HTML. I valori statici non hanno + bisogno di essere racchiusi fra virgolette, ma è raccomandato farlo + per le stringhe. Possono essere usate anche variabili, che non devno + essere fra virgolette. + + + Alcuni attributi richiedono valori booleani (vero o falso). Per + specificarli si possono usare i seguenti valori, senza virgolette: + true, on, e yes, + oppure false, off, e + no. + + + sintassi per gli attributi delle funzioni + + +{html_options values=$vals selected=$selected output=$output} + +]]> + + + + diff --git a/docs/it/designers/language-basic-syntax/language-syntax-comments.xml b/docs/it/designers/language-basic-syntax/language-syntax-comments.xml new file mode 100644 index 00000000..5bd831de --- /dev/null +++ b/docs/it/designers/language-basic-syntax/language-syntax-comments.xml @@ -0,0 +1,51 @@ + + + + Commenti + + I commenti nei template sono preceduti e seguiti da asterischi, i quali + sono a loro volta compresi dai tag delimitatori: {* questo è un commento *} + I commenti di Smarty non vengono visualizzati nell'output del template. + Sono usati per note interne al template. + + + Commenti + + +{html_options values=$vals selected=$selected output=$output} + +]]> + + + + diff --git a/docs/it/designers/language-basic-syntax/language-syntax-functions.xml b/docs/it/designers/language-basic-syntax/language-syntax-functions.xml new file mode 100644 index 00000000..04622b93 --- /dev/null +++ b/docs/it/designers/language-basic-syntax/language-syntax-functions.xml @@ -0,0 +1,58 @@ + + + + Funzioni + + Ogni tag di Smarty può stampare una variable + o chiamare una qualche funzione. Le funzioni vengono richiamate richiudendo + la funzione e i suoi attributi fra i delimitatori, così: {nomefunzione + attr1="val" attr2="val"}. + + + sintassi delle funzioni + +{$name}! +{else} + Welcome, {$name}! +{/if} + +{include file="footer.tpl"} +]]> + + + + Sia le funzioni incorporate che le funzioni utente hanno la stessa + sintassi nel template. Le funzioni incorporate sono il cuore pulsante + di Smarty, ad esempio if, section e + strip. Non possono essere modificate. Le funzioni + utente sono funzioni addizionali sviluppate attraverso i plugin. Potete + modificarle a piacere, e potete crearne di nuove. html_options + e html_select_date sono esempi di funzioni utente. + + + diff --git a/docs/it/designers/language-basic-syntax/language-syntax-quotes.xml b/docs/it/designers/language-basic-syntax/language-syntax-quotes.xml new file mode 100644 index 00000000..3503802c --- /dev/null +++ b/docs/it/designers/language-basic-syntax/language-syntax-quotes.xml @@ -0,0 +1,50 @@ + + + + Incorporare variabili fra virgolette + + Smarty riconosce le variabili incorporate nelle stringhe fra virgolette (") + se contengono solo numeri, lettere, underscore (_) e parentesi quadre ([]). + Se sono presenti altri caratteri (punti, riferimento a oggetti, ecc.) la + variabile deve essere posta tra backticks (`). I backticks si possono ottenere + digitando ALT+96 (sul tastierino numerico). + + + embedded quotes syntax + + + + + + diff --git a/docs/it/designers/language-builtin-functions.xml b/docs/it/designers/language-builtin-functions.xml new file mode 100644 index 00000000..9e9ab431 --- /dev/null +++ b/docs/it/designers/language-builtin-functions.xml @@ -0,0 +1,45 @@ + + + + Funzioni incorporate + + Smarty è dotato di numerose funzioni incorporate. Queste funzioni + sono integrate nel linguaggio del template: non è possibile creare funzioni + utente con gli stessi nomi, e nemmeno modificare le funzioni + incorporate. + + + &designers.language-builtin-functions.language-function-capture; + &designers.language-builtin-functions.language-function-config-load; + &designers.language-builtin-functions.language-function-foreach; + &designers.language-builtin-functions.language-function-include; + &designers.language-builtin-functions.language-function-include-php; + &designers.language-builtin-functions.language-function-insert; + &designers.language-builtin-functions.language-function-if; + &designers.language-builtin-functions.language-function-ldelim; + &designers.language-builtin-functions.language-function-literal; + &designers.language-builtin-functions.language-function-php; + &designers.language-builtin-functions.language-function-section; + &designers.language-builtin-functions.language-function-strip; + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-capture.xml b/docs/it/designers/language-builtin-functions/language-function-capture.xml new file mode 100644 index 00000000..56dce140 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-capture.xml @@ -0,0 +1,105 @@ + + + + capture + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + name + stringa + no + default + Nome del blocco catturato + + + assign + stringa + no + nessuno + Nome della variabile cui assegnare l'output catturato + + + + + + capture si usa per intercettare l'output del template assegnandolo + ad una variabile invece di visualizzarlo. Qualsiasi contenuto compreso + fra {capture name="foo"} e {/capture} viene aggiunto alla variabile + specificata nell'attributo name. Il contenuto catturato può essere + usato nel template utilizzando la variabile speciale $smarty.capture.foo + dove foo è il nome passato nell'attributo name. Se non fornite un + attributo name, verrà usato "default". Tutti i comandi {capture} + devono essere chiusi con {/capture}. E' possibile nidificarli. + + + Nota tecnica + + Le versioni da 1.4.0 a 1.4.4 di Smarty mettevano il contenuto catturato + nella variabile $return. A partire dalla 1.4.5 si utilizza l'attributo + name, quindi modificate i vostri template di conseguenza. + + + + + Fate attenzione se catturate l'output di insert. + Se avete il caching attivato e usate comandi insert + che vi aspettate vengano eseguiti nel contenuto in cache, non + catturate questo contenuto. + + + + + catturare il contenuto del template + + + + {$smarty.capture.banner} + + +{/if} +]]> + + + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-config-load.xml b/docs/it/designers/language-builtin-functions/language-function-config-load.xml new file mode 100644 index 00000000..e6643a54 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-config-load.xml @@ -0,0 +1,148 @@ + + + + config_load + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + file + stringa + + nessuno + Nome del file di configurazione da importare + + + section + stringa + no + nessuno + Nome della sezione da caricare + + + scope + stringa + no + local + + Campo di applicazione delle variabili caricate, + che può essere local, parent o global. local significa + che le variabili vengono caricate nel contesto del + template locale. parent significa che le variabili + vengono caricate sia nel contesto locale che nel template + genitore che lo ha chiamato. global significa che le + variabili sono disponibili a tutti i template. + + + + global + booleano + no + false + + Se le variabili sono visibili o meno al template + genitore: equivale a scope=parent. NOTA: Questo attributo + è deprecato per via dell'esistenza dell'attributo scope, + ma è ancora supportato. Se è presente scope, questo valore + è ignorato. + + + + + + + Questa funzione è usata per caricare variabili nel template da + un file di configurazione. + Vedere Config Files per + maggiori informazioni. + + + funzione config_load + + +{#pageTitle#} + + + + + + + +
FirstLastAddress
+ + +]]> +
+
+ + I file di configurazione possono contenere sezioni. Potete caricare + variabili da una sezione con l'attributo aggiuntivo + section. + + + + Le sezioni dei file di configurazione e la funzione + incorporata dei template chiamata section non hanno + nulla a che fare fra di loro, hanno soltanto lo stesso nome. + + + + funzione config_load con section + + +{#pageTitle#} + + + + + + + +
FirstLastAddress
+ + +]]> +
+
+
+ + diff --git a/docs/it/designers/language-builtin-functions/language-function-foreach.xml b/docs/it/designers/language-builtin-functions/language-function-foreach.xml new file mode 100644 index 00000000..7a822a8a --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-foreach.xml @@ -0,0 +1,191 @@ + + + + foreach,foreachelse + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + from + array + + nessuno + Array sul quale viene eseguito il ciclo + + + item + stringa + + nessuno + Nome della variabile che rappresenta + l'elemento attuale + + + key + stringa + no + nessuno + Nome della variabile che rappresenta la chiave attuale + + + name + stringa + no + nessuno + Nome del ciclo foreach per l'accesso alle sue proprietà + + + + + + I cicli foreach sono un'alternativa ai cicli + section. foreach si usa + per ciclare su un singolo array associativo. La sintassi di + foreach è molto più semplice di + session, ma in compenso può essere usata solo + per un array singolo. I tag foreach devono + essere chiusi con /foreach. I parametri + obbligatori sono from e item. + Il nome del ciclo foreach può essere quello che preferite, composto + di lettere, numeri e underscore. I cicli foreach + possono essere nidificati, ma i nomi dei cicli nidificati devono + essere diversi tra di loro. La variabile from + (di solito un array di valori) determina quante volte verrà eseguito + il ciclo foreach. + foreachelse viene eseguito quando non ci sono + valori nella variabile from. + + +foreach + + +{* questo esempio stamperà tutti i valori dell'array $custid *} +{foreach from=$custid item=curr_id} + id: {$curr_id}<br> +{/foreach} + +OUTPUT: + +id: 1000<br> +id: 1001<br> +id: 1002<br> + + + +foreach con key + +{* key contiene la chiave per ogni valore del ciclo + +l'assegnazione può essere qualcosa del genere: + +$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"), + array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234"))); + +*} + +{foreach name=outer item=contact from=$contacts} + {foreach key=key item=item from=$contact} + {$key}: {$item}<br> + {/foreach} +{/foreach} + +OUTPUT: + +phone: 1<br> +fax: 2<br> +cell: 3<br> +phone: 555-4444<br> +fax: 555-3333<br> +cell: 760-1234<br> + + + + I cicli foreach hanno anche le proprie variabili che gestiscono le proprietà + del foreach. Queste vengono indicate così: {$smarty.foreach.foreachname.varname}, + dove foreachname è il nome indicato come attributo name + del foreach + + + + + iteration + + iteration si usa per mostrare l'iterazione corrente del ciclo. + + + iteration comincia sempre per 1 ed è incrementata di uno + ad ogni iterazione. + + + + + first + + first vale true quando l'iterazione attuale è la prima del ciclo. + + + + + last + + last vale true quando l'iterazione attuale è l'ultima del ciclo. + + + + + show + + show si usa come parametro per il foreach. + show è un valore booleano, true o false. Quando + è false, il foreach non verrà visualizzato. Se è presente un + foreachelse, verrà visualizzato al suo posto. + + + + + total + + total si usa per visualizzare il numero di iterazioni che il + ciclo foreach effettuerà. Può essere usato all'interno o dopo il foreach. + + + + + + + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-if.xml b/docs/it/designers/language-builtin-functions/language-function-if.xml new file mode 100644 index 00000000..eb04b5d5 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-if.xml @@ -0,0 +1,219 @@ + + + + if,elseif,else + + Le istruzioni {if} in Smarty hanno praticamente la + stessa flessibilità delle istruzioni if PHP, con qualche caratteristica + aggiuntiva per il motore di template. + Ogni {if} deve essere chiuso con un + {/if}. Sono previsti anche {else} + e {elseif}. Sono riconosciuti tutti gli operatori condizionali + di PHP, come ||, or, + &&, and, ecc. + + + + Quella che segue è una lista degli operatori riconosciuti, che devono + essere separati con degli spazi dagli elementi circostanti. Notate che + gli elementi mostrati fra [parentesi quadre] sono opzionali. Quando esistono + sono mostrati gli equivalenti in PHP. + + + + + + + + + + + + Operatore + Alternative + Esempio di sintassi + Significato + Equivalente PHP + + + + + == + eq + $a eq $b + uguale + == + + + != + ne, neq + $a neq $b + diverso + != + + + > + gt + $a gt $b + maggiore di + > + + + < + lt + $a lt $b + minore di + < + + + >= + gte, ge + $a ge $b + maggiore o uguale + >= + + + <= + lte, le + $a le $b + minore o uguale + <= + + + ! + not + not $a + negazione (unario) + ! + + + % + mod + $a mod $b + modulo (resto della divisione) + % + + + is [not] div by + + $a is not div by 4 + divisibile per + $a % $b == 0 + + + is [not] even + + $a is not even + [non] è un numero pari (unario) + $a % 2 == 0 + + + is [not] even by + + $a is not even by $b + livello di raggruppamento [non] pari + ($a / $b) % 2 == 0 + + + is [not] odd + + $a is not odd + [non] è un numero dispari (unario) + $a % 2 != 0 + + + is [not] odd by + + $a is not odd by $b + livello di raggruppamento [non] dispari + ($a / $b) % 2 != 0 + + + + + +Istruzioni if + +{if $name eq "Fred"} + Welcome Sir. +{elseif $name eq "Wilma"} + Welcome Ma'am. +{else} + Welcome, whatever you are. +{/if} + +{* un esempio con "or" logico *} +{if $name eq "Fred" or $name eq "Wilma"} + ... +{/if} + +{* come sopra *} +{if $name == "Fred" || $name == "Wilma"} + ... +{/if} + +{* questa sintassi NON funziona, gli operatori condizionali + devono essere separati con spazi dagli elementi circostanti *} +{if $name=="Fred" || $name=="Wilma"} + ... +{/if} + + +{* si possono usare le parentesi *} +{if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#} + ... +{/if} + +{* potete anche incorporare chiamate a funzioni php *} +{if count($var) gt 0} + ... +{/if} + +{* test su valori pari o dispari *} +{if $var is even} + ... +{/if} +{if $var is odd} + ... +{/if} +{if $var is not odd} + ... +{/if} + +{* test se var è divisibile per 4 *} +{if $var is div by 4} + ... +{/if} + +{* test se var è pari, raggruppato per due. Ad es.: +0=pari, 1=pari, 2=dispari, 3=dispari, 4=pari, 5=pari, etc. *} +{if $var is even by 2} + ... +{/if} + +{* 0=pari, 1=pari, 2=pari, 3=dispari, 4=dispari, 5=dispari, etc. *} +{if $var is even by 3} + ... +{/if} + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-include-php.xml b/docs/it/designers/language-builtin-functions/language-function-include-php.xml new file mode 100644 index 00000000..e8405e5e --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-include-php.xml @@ -0,0 +1,140 @@ + + + + include_php + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + file + stringa + + nessuno + Nome del file php da includere + + + once + booleano + no + true + Se includere o no il file php più di una volta nel + caso venga richiesto più volte + + + assign + stringa + no + nessuno + Nome della variabile cui sarà assegnato l'output + di include_php + + + + + + Nota Tecnica + + include_php è deprecato da Smarty, in quanto potete ottenere la + stessa funzionalità attraverso una funzione utente. + L'unica ragione per usare include_php è se avete una reale + necessità di tenere fuori la funzione php dalla directory dei plugin + o dal vostro codice applicativo. Vedere l'esempio di template a + componenti per i dettagli. + + + + i tag include_php sono usati per includere uno script php nel + template. Se la security è abilitata, lo script php si deve + trovare nel percorso di $trusted_dir. Il tag include_php deve + avere l'attributo "file", che contiene il percorso al file da + includere, che può essere assoluto relativo alla directory $trusted_dir. + + + include_php è un ottimo modo per gestire template a componenti, e + tiene il codice PHP separato dai file dei template. Diciamo che abbiamo + un template che mostra la navigazione del nostro sito, che viene + prelevata dinamicamente da un database. Possiamo tenere la logica PHP + che ottiene il contenuto del database in una directory separata, ed + includerla in cima al template. Ora possiamo includere questo + template ovunque senza preoccuparci che l'applicazione abbia + preventivamente caricato i dati del database. + + + Per default, i file php sono inclusi una sola volta, anche se richiesti + più volte nel template. Potete specificare che devono essere inclusi + ogni volta con l'attributo once. Se impostate + once a false, lo script verrà incluso tutte le volte che viene + richiesto nel template. + + + Opzionalmente potete passare l'attributo assign, + che specifica un nome di variabile cui sarà assegnato l'output di + include_php, invece di essere visualizzato. + + + L'oggetto smarty è disponibile come $this all'interno dello script + PHP che viene incluso. + + +funzione include_php + +load_nav.php +------------- + +<?php + + // carichiamo le variabili da un db mysql e le assegnamo al template + require_once("MySQL.class.php"); + $sql = new MySQL; + $sql->query("select * from site_nav_sections order by name",SQL_ALL); + $this->assign('sections',$sql->record); + +?> + + +index.tpl +--------- + +{* percorso assoluto, o relativo a $trusted_dir *} +{include_php file="/path/to/load_nav.php"} + +{foreach item="curr_section" from=$sections} + <a href="{$curr_section.url}">{$curr_section.name}</a><br> +{/foreach} + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-include.xml b/docs/it/designers/language-builtin-functions/language-function-include.xml new file mode 100644 index 00000000..afde72b1 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-include.xml @@ -0,0 +1,123 @@ + + + + include + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + file + stringa + + nessuno + Nome del file di template da includere + + + assign + stringa + no + nessuno + Nome della variabile cui sarà assegnato + l'output dell'include + + + [variabile ...] + [tipo variabile] + no + nessuno + Variabile da passare localmente al template + + + + + + I tag include sono usati per includere altri template in quello attuale. + Tutte le variabili del template corrente sono disponibili anche nel + template incluso. Il tag include deve comprendere l'attributo "file", + che contiene il percorso del template da includere. + + + Opzionalmente si può passare l'attributo assign, + che specifica un nome di variabile del template alla quale + sarà assegnato l'output dell'include, invece + di essere visualizzato. + + +funzione include + +{include file="header.tpl"} + +{* qui va il corpo del template *} + +{include file="footer.tpl"} + + + Potete anche passare variabili ai template inclusi sotto forma di + attributi. Queste variabili saranno disponibili soltanto nello + scope del file incluso. Le variabili attributo prevalgono su quelle + del template attuale in caso di omonimia. + + +funzione include con passaggio di variabili + +{include file="header.tpl" title="Main Menu" table_bgcolor="#c0c0c0"} + +{* qui va il corpo del template *} + +{include file="footer.tpl" logo="http://my.example.com/logo.gif"} + + + Usate la sintassi delle risorse dei template per + includere file esterni alla directory $template_dir. + + +esempi di funzione include con le risorse dei template + +{* percorso assoluto *} +{include file="/usr/local/include/templates/header.tpl"} + +{* percorso assoluto (come sopra) *} +{include file="file:/usr/local/include/templates/header.tpl"} + +{* percorso assoluto su windows (NECESSARIO usare il prefisso "file:") *} +{include file="file:C:/www/pub/templates/header.tpl"} + +{* include da una risorsa chiamata "db" *} +{include file="db:header.tpl"} + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-insert.xml b/docs/it/designers/language-builtin-functions/language-function-insert.xml new file mode 100644 index 00000000..6b8aa4c4 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-insert.xml @@ -0,0 +1,144 @@ + + + + insert + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + name + stringa + + nessuno + Nome della funzione di insert (insert_name) + + + assign + stringa + no + nessuno + Nome della variabile del template cui verrà + assegnato l'output + + + script + stringa + no + nessuno + Nome dello script php che viene incluso prima + della chiamata alla funzione di insert + + + [variabile ...] + [tipo variabile] + no + nessuno + Variabile da passare alla funzione di insert + + + + + + I tag insert funzionano praticamente come i tag include, ad + eccezione del fatto che i tag insert non vengono messi in + cache quando avete il caching + del template abilitato. Verranno quindi eseguiti ad ogni + chiamata del template. + + + Diciamo che abbiamo un template con uno spazio banner in cima + alla pagina. Il banner può contenere qualsiasi mescolanza di HTML, + immagini, flash, ecc., quindi non possiamo usare un link statico, + e non vogliamo che questo contenuto sia messo in cache con la + pagina. Ecco quindi l'utilità del tag insert: il template conosce i + valori di #banner_location_id# e #site_id# (presi da un file di + configurazione), e ha bisogno di chiamare una funzione per ottenere + il contenuto del banner. + + +funzione insert + +{* esempio di caricamento di un banner *} +{insert name="getBanner" lid=#banner_location_id# sid=#site_id#} + + + In questo esempio stiamo usando il nome "getBanner" e passiamo i + parametri #banner_location_id# e #site_id#. Smarty cercherà una + funzione chiamata insert_getBanner() nell'applicazione PHP, passandole + i valori di #banner_location_id# e #site_id# come primo argomento + in un array associativo. Tutti i nomi di funzioni di insert + nell'applicazione devono essere prefissati con "insert_", per evitare + possibili conflitti nei nomi di funzione. La nostra funzione + insert_getBanner() farà qualcosa con i valori passati e restituirà + il risultato, che verrà visualizzato nel templat al posto del tag + insert. + In questo esempio, Smarty chiamerebbe questa funzione: + insert_getBanner(array("lid" => "12345","sid" => "67890")); + e visualizzerebbe il risultato restituito al posto del tag insert. + + + Se fornite l'attributo "assign", l'output del tag insert verrà + assegnato a questa variabile invece di essere mostrato nel template. + NOTA: assegnare l'output ad una variabile non è molto utile se il + caching è abilitato. + + + Se fornite l'attributo "script", questo script verrà incluso (una + volta sola) prima dell'esecuzione della funzione di insert. Questo + caso può presentarsi quando la funzione di insert può non esistere + ancora, e uno script php deve essere quindi incluso per farla + funzionare. Il percorso può essere assoluto o relativo a $trusted_dir. + Se la security è abilitata, lo script deve trovarsi in $trusted_dir. + + + Come secondo argomento viene passato l'oggetto Smarty. In questo + modo potete ottenere e modificare informazioni nell'oggetto Smarty + dall'interno della funzione di insert. + + + Nota tecnica + + E' possibile avere porzioni di template non in cache. Se + avete il caching abilitato, + i tag insert non verranno messi in cache. Verranno quindi + eseguiti dinamicamente ogni volta che la pagina viene creata, + anche se questa si trova in cache. Questo viene utile per cose + come banner, sondaggi, situazione del tempo, risultati di ricerche, + aree di feedback utenti, ecc. + + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-ldelim.xml b/docs/it/designers/language-builtin-functions/language-function-ldelim.xml new file mode 100644 index 00000000..78ef6d83 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-ldelim.xml @@ -0,0 +1,52 @@ + + + + ldelim,rdelim + + ldelim e rdelim si usano per fare l'escape dei delimitatori del template, nel nostro caso + "{" o "}". Potete usare anche {literal}{/literal} per fare l'escape su + blocchi di testo. + Vedere anche {$smarty.ldelim} + e {$smarty.rdelim} + + + ldelim, rdelim + + + + + L'esempio sopra produrrà: + + + + + + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-literal.xml b/docs/it/designers/language-builtin-functions/language-function-literal.xml new file mode 100644 index 00000000..cc97d3fe --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-literal.xml @@ -0,0 +1,60 @@ + + + + literal + + I tag literal vi consentono di far sì che un blocco di dati venga letto + "letteralmente". Ciò è utile tipicamente quando avete un blocco javascript + o CSS nel quale le parentesi graffe si confonderebbero con i delimitatori + del template. Tutto ciò che si trova fra {literal} e {/literal} non viene + interpretato, ma visualizzato così com'è. Se avete bisogno di usare tag + del template all'interno del blocco literal, considerate la possibilità di + usare invece {ldelim}{rdelim} + per fare l'escape dei singoli delimitatori. + + + tag literal + + + + + + +{/literal} +]]> + + + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-php.xml b/docs/it/designers/language-builtin-functions/language-function-php.xml new file mode 100644 index 00000000..e130d689 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-php.xml @@ -0,0 +1,42 @@ + + + + php + + I tag php vi consentono di incorporare codice php direttamente + nel template. Non sarà fatto l'escape, indipendentemente + dall'impostazione di $php_handling. + Questa funzione è solo per utenti avanzati, normalmente non + dovreste averne bisogno. + + +tag php + +{php} + // inclusione di uno script php + // direttamente dal template. + include("/path/to/display_weather.php"); +{/php} + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-section.xml b/docs/it/designers/language-builtin-functions/language-function-section.xml new file mode 100644 index 00000000..2ed4b7e5 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-section.xml @@ -0,0 +1,569 @@ + + + + section,sectionelse + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + name + stringa + + nessuno + Nome della sezione + + + loop + [$variable_name] + + nessuno + Nome della variabile che determina il numero + di iterazioni del ciclo + + + start + intero + no + 0 L'indice + dal quale inizierà il ciclo. Se il valore è negativo, + la posizione di partenza è calcolata dalla fine dell'array. + Ad esempio, se ci sono sette valori nell'array da ciclare + e start è -2, l'indice di partenza sarà 5. Valori non + validi (cioè al di fuori della lunghezza dell'array da + ciclare) saranno automaticamente convertiti al valore + valido più vicino. + + + step + intero + no + 1 + Il valore di passo da usare per attraversare + l'array da ciclare. Ad esempio, step=2 ciclerà sugli + indici 0,2,4, ecc. Se step è negativo il ciclo procederà + sull'array all'indietro. + + + max + intero + no + nessuno + Massimo numero di cicli per la sezione. + + + show + booleano + no + true + Stabilisce se mostrare o no la sezione + + + + + + Le sezioni sono usate per ciclare su array di dati. Tutti i tag + section devono essere chiusi con + /section. I parametri obbligatori sono + name e loop. Il nome + della sezione può essere quello che preferite, formato da lettere, + numeri e underscore. Le sezioni possono essere nidificate, ed i nomi + delle sezioni nidificate devono essere diversi fra loro. La variabile + loop (di solito un array di valori) determina quante volte sarà + eseguito il ciclo. Quando stampate una variabile all'interno di una + sezione, il nome della sezione deve essere indicato a fianco del + nome della variabile fra parentesi quadre []. + sectionelse viene eseguito quando non ci sono + valori nella variabile loop. + + +section + + +{* questo esempio stamperà tutti i valori dell'array $custid *} +{section name=customer loop=$custid} + id: {$custid[customer]}<br> +{/section} + +OUTPUT: + +id: 1000<br> +id: 1001<br> +id: 1002<br> + + + +variabile loop + +{* la variabile loop determina soltanto il numero di cicli da ripetere. + Potete accedere a qualsiasi variabile dal template della sezione. + In questo esempio presumiamo che $custid, $name e $address siano + tutti array contenenti lo stesso numero di valori *} +{section name=customer loop=$custid} + id: {$custid[customer]}<br> + name: {$name[customer]}<br> + address: {$address[customer]}<br> + <p> +{/section} + + +OUTPUT: + +id: 1000<br> +name: John Smith<br> +address: 253 N 45th<br> +<p> +id: 1001<br> +name: Jack Jones<br> +address: 417 Mulberry ln<br> +<p> +id: 1002<br> +name: Jane Munson<br> +address: 5605 apple st<br> +<p> + + + +nomi delle sezioni + +{* come nome della sezione potete usare quello che preferite, + e viene usato per riferirsi ai dati all'interno della sezione *} +{section name=mydata loop=$custid} + id: {$custid[mydata]}<br> + name: {$name[mydata]}<br> + address: {$address[mydata]}<br> + <p> +{/section} + + + +sezioni nidificate + +{* le sezioni possono essere nidificate a qualsiasi profondità. Con + le sezioni nidificate potete accedere a strutture di dati complesse, + ad esempio array multidimensionali. In questo esempio, $contact_type[customer] + è un array di tipi di contatto per il cliente corrente. *} +{section name=customer loop=$custid} + id: {$custid[customer]}<br> + name: {$name[customer]}<br> + address: {$address[customer]}<br> + {section name=contact loop=$contact_type[customer]} + {$contact_type[customer][contact]}: {$contact_info[customer][contact]}<br> + {/section} + <p> +{/section} + + +OUTPUT: + +id: 1000<br> +name: John Smith<br> +address: 253 N 45th<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: john@myexample.com<br> +<p> +id: 1001<br> +name: Jack Jones<br> +address: 417 Mulberry ln<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: jack@myexample.com<br> +<p> +id: 1002<br> +name: Jane Munson<br> +address: 5605 apple st<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: jane@myexample.com<br> +<p> + + + +sezioni e array associativi + +{* questo è un esempio di stampa di un array associativo + di dati in una sezione *} +{section name=customer loop=$contacts} + name: {$contacts[customer].name}<br> + home: {$contacts[customer].home}<br> + cell: {$contacts[customer].cell}<br> + e-mail: {$contacts[customer].email}<p> +{/section} + + +OUTPUT: + +name: John Smith<br> +home: 555-555-5555<br> +cell: 555-555-5555<br> +e-mail: john@myexample.com<p> +name: Jack Jones<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: jack@myexample.com<p> +name: Jane Munson<br> +home phone: 555-555-5555<br> +cell phone: 555-555-5555<br> +e-mail: jane@myexample.com<p> + + + + + +sectionelse + +{* sectionelse viene eseguito se non ci sono valori in $custid *} +{section name=customer loop=$custid} + id: {$custid[customer]}<br> +{sectionelse} + there are no values in $custid. +{/section} + + + Le sezioni hanno anche le proprie variabili di gestione delle proprietà. + Vengono indicate così: {$smarty.section.nomesezione.nomevariabile} + + + + A partire da Smarty 1.5.0, la sintassi per le variabili delle proprietà + di sessione è cambiata da {%nomesezione.nomevariabile%} a + {$smarty.section.sectionname.varname}. La vecchia sintassi è ancora + supportata, ma negli esempi del manuale troverete solo riferimenti + alla nuova. + + + + index + + index si usa per visualizzare l'attuale indice del ciclo, partendo + da zero (o dall'attributo start se presente), e con incrementi di uno + (o dell'attributo step se presente). + + + Nota tecnica + + Se le proprietà step e start non vengono modificate, index + funziona allo stesso modo della proprietà iteration, ad + eccezione del fatto che parte da 0 invece che da 1. + + + + proprietà index + + {section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {/section} + + + OUTPUT: + + 0 id: 1000<br> + 1 id: 1001<br> + 2 id: 1002<br> + + + + + index_prev + + index_prev visualizza l'indice del ciclo precedente. + Sul primo ciclo è impostata a -1. + + + proprietà index_prev + + {section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {* nota: $custid[customer.index] e $custid[customer] hanno identico significato *} + {if $custid[customer.index_prev] ne $custid[customer.index]} + The customer id changed<br> + {/if} + {/section} + + + OUTPUT: + + 0 id: 1000<br> + The customer id changed<br> + 1 id: 1001<br> + The customer id changed<br> + 2 id: 1002<br> + The customer id changed<br> + + + + + index_next + + index_next visualizza l'indice del prossimo ciclo. Sull'ultimo + ciclo ha sempre il valore maggiore dell'attuale (rispettando + l'attributo step, quando presente). + + + proprietà index_next + + {section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {* nota: $custid[customer.index] e $custid[customer] hanno identico significato *} + {if $custid[customer.index_next] ne $custid[customer.index]} + The customer id will change<br> + {/if} + {/section} + + + OUTPUT: + + 0 id: 1000<br> + The customer id will change<br> + 1 id: 1001<br> + The customer id will change<br> + 2 id: 1002<br> + The customer id will change<br> + + + + + iteration + + iteration visualizza l'iterazione attuale del ciclo. + + + + Al contrario di index, questa proprietà non è influenzata dalle + proprietà start, step e max. Inoltre iteration comincia da 1 + invece che da 0 come index. rownum è un alias di iteration, e + funziona in modo identico. + + + + proprietà iteration + + {section name=customer loop=$custid start=5 step=2} + current loop iteration: {$smarty.section.customer.iteration}<br> + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {* nota: $custid[customer.index] e $custid[customer] hanno identico significato *} + {if $custid[customer.index_next] ne $custid[customer.index]} + The customer id will change<br> + {/if} + {/section} + + + OUTPUT: + + current loop iteration: 1 + 5 id: 1000<br> + The customer id will change<br> + current loop iteration: 2 + 7 id: 1001<br> + The customer id will change<br> + current loop iteration: 3 + 9 id: 1002<br> + The customer id will change<br> + + + + + first + + first vale true se l'iterazione attuale è la prima. + + + proprietà first + + {section name=customer loop=$custid} + {if $smarty.section.customer.first} + <table> + {/if} + + <tr><td>{$smarty.section.customer.index} id: + {$custid[customer]}</td></tr> + + {if $smarty.section.customer.last} + </table> + {/if} + {/section} + + + OUTPUT: + + <table> + <tr><td>0 id: 1000</td></tr> + <tr><td>1 id: 1001</td></tr> + <tr><td>2 id: 1002</td></tr> + </table> + + + + + last + + last vale true se l'attuale iterazione è l'ultima. + + + proprietà last + + {section name=customer loop=$custid} + {if $smarty.section.customer.first} + <table> + {/if} + + <tr><td>{$smarty.section.customer.index} id: + {$custid[customer]}</td></tr> + + {if $smarty.section.customer.last} + </table> + {/if} + {/section} + + + OUTPUT: + + <table> + <tr><td>0 id: 1000</td></tr> + <tr><td>1 id: 1001</td></tr> + <tr><td>2 id: 1002</td></tr> + </table> + + + + + rownum + + rownum visualizza l'iterazione attuale del ciclo, partendo + da uno. E' un alias di iteration, e funziona in modo identico. + + + proprietà rownum + + {section name=customer loop=$custid} + {$smarty.section.customer.rownum} id: {$custid[customer]}<br> + {/section} + + + OUTPUT: + + 1 id: 1000<br> + 2 id: 1001<br> + 3 id: 1002<br> + + + + + loop + + loop visualizza l'index dell'ultimo ciclo visualizzato dalla + sezione. Può essere usato all'interno o dopo la sezione. + + + proprietà index + + {section name=customer loop=$custid} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {/section} + + There were {$smarty.section.customer.loop} customers shown above. + + OUTPUT: + + 0 id: 1000<br> + 1 id: 1001<br> + 2 id: 1002<br> + + There were 3 customers shown above. + + + + + show + + show è usato come parametro per la sezione. + show è un valore booleano, true o false. Se + false, la sezione non verrà visualizzata. Se è presente un sectionelse, + verrà visualizzato questo. + + + attributo show + + {* $show_customer_info potrebbe essere stato passato dall'applicazione + PHP, per stabilire se questa sezione deve essere visualizzata o no *} + {section name=customer loop=$custid show=$show_customer_info} + {$smarty.section.customer.rownum} id: {$custid[customer]}<br> + {/section} + + {if $smarty.section.customer.show} + the section was shown. + {else} + the section was not shown. + {/if} + + + OUTPUT: + + 1 id: 1000<br> + 2 id: 1001<br> + 3 id: 1002<br> + + the section was shown. + + + + + total + + total visualizza il numero totale di iterazioni che la sezione + eseguirà. Può essere usato all'interno o dopo la sezione. + + + proprietà total + + {section name=customer loop=$custid step=2} + {$smarty.section.customer.index} id: {$custid[customer]}<br> + {/section} + + There were {$smarty.section.customer.total} customers shown above. + + OUTPUT: + + 0 id: 1000<br> + 2 id: 1001<br> + 4 id: 1002<br> + + There were 3 customers shown above. + + + + + diff --git a/docs/it/designers/language-builtin-functions/language-function-strip.xml b/docs/it/designers/language-builtin-functions/language-function-strip.xml new file mode 100644 index 00000000..5f50c3b6 --- /dev/null +++ b/docs/it/designers/language-builtin-functions/language-function-strip.xml @@ -0,0 +1,79 @@ + + + + strip + + Molte volte i progettisti di pagine web si trovano davanti al + problema causato da spazi e "a capo" che influiscono sull'output + HTML generato (a causa delle "caratteristiche" del browser), per + cui si trovano costretti a mettere tutti insieme i tag del template + per ottenere il risultato voluto. Questo di solito significa + ritrovarsi con un template illeggibile o ingestibile. + + + Tutto ciò che è compreso fra i tag {strip}{/strip} in Smarty viene + ripulito dagli spazi extra o dai caratteri di ritorno a capo all'inizio + e alla fine delle righe, prima di essere visualizzato. In + questo modo potete mantenere la leggibilità dei vostri template senza + preoccuparvi dei problemi causati dagli spazi. + + + Nota tecnica + + {strip}{/strip} non modificano il contenuto delle variabili del template. + Vedere la funzione strip modifier. + + + +tag strip + + + + + + This is a test + + + + +{/strip} + + +OUTPUT: + +
This is a test
+]]> +
+
+ + Notate che nell'esempio qui sopra tutte le righe iniziano e + finiscono con tag HTML. Tenete presente che tutte le linee + vengono "attaccate", per cui se avete del testo all'inizio + o alla fine di qualche riga, questo verrà attaccato, e probabilmente + non è ciò che volete. + +
+ + diff --git a/docs/it/designers/language-combining-modifiers.xml b/docs/it/designers/language-combining-modifiers.xml new file mode 100644 index 00000000..42de7df8 --- /dev/null +++ b/docs/it/designers/language-combining-modifiers.xml @@ -0,0 +1,64 @@ + + + + Combinare i modificatori + + Potete applicare qualsiasi numero di modificatori ad una variabile. + Verranno eseguiti nell'ordine in cui li avete indicati, da sinistra + a destra. Devono essere separati con un carattere | (pipe). + + + combinare i modificatori + +assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.'); +$smarty->display('index.tpl'); +?> + +index.tpl: + +{$articleTitle} +{$articleTitle|upper|spacify} +{$articleTitle|lower|spacify|truncate} +{$articleTitle|lower|truncate:30|spacify} +{$articleTitle|lower|spacify|truncate:30:". . ."} +]]> + + + L'esempio sopra stamperà: + + + + + + + + diff --git a/docs/it/designers/language-custom-functions.xml b/docs/it/designers/language-custom-functions.xml new file mode 100644 index 00000000..2cd4ae5f --- /dev/null +++ b/docs/it/designers/language-custom-functions.xml @@ -0,0 +1,49 @@ + + + + Custom Functions + + Smarty è fornito di numerose funzioni utente che potete + utilizzare nei template. + + + &designers.language-custom-functions.language-function-assign; + &designers.language-custom-functions.language-function-counter; + &designers.language-custom-functions.language-function-cycle; + &designers.language-custom-functions.language-function-debug; + &designers.language-custom-functions.language-function-eval; + &designers.language-custom-functions.language-function-fetch; + &designers.language-custom-functions.language-function-html-checkboxes; + &designers.language-custom-functions.language-function-html-image; + &designers.language-custom-functions.language-function-html-options; + &designers.language-custom-functions.language-function-html-radios; + &designers.language-custom-functions.language-function-html-select-date; + &designers.language-custom-functions.language-function-html-select-time; + &designers.language-custom-functions.language-function-html-table; + &designers.language-custom-functions.language-function-math; + &designers.language-custom-functions.language-function-mailto; + &designers.language-custom-functions.language-function-popup-init; + &designers.language-custom-functions.language-function-popup; + &designers.language-custom-functions.language-function-textformat; + + + diff --git a/docs/it/designers/language-custom-functions/language-function-assign.xml b/docs/it/designers/language-custom-functions/language-function-assign.xml new file mode 100644 index 00000000..b2c83f63 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-assign.xml @@ -0,0 +1,74 @@ + + + + assign + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + var + stringa + + nessuno + Nome della variabile valorizzata + + + value + stringa + + nessuno + Valore assegnato alla variabile + + + + + + assign è usato per assegnare valori alle variabili del template + durante l'esecuzione dello stesso. + + +assign + +{assign var="name" value="Bob"} + +The value of $name is {$name}. + +OUTPUT: + +The value of $name is Bob. + + + diff --git a/docs/it/designers/language-custom-functions/language-function-counter.xml b/docs/it/designers/language-custom-functions/language-function-counter.xml new file mode 100644 index 00000000..cddbde46 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-counter.xml @@ -0,0 +1,122 @@ + + + + counter + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + name + stringa + no + default + Nome del contatore + + + start + numerico + no + 1 + Valore di partenza del contatore + + + skip + numerico + no + 1 + Passo del contatore + + + direction + stringa + no + up + Direzione del conteggio (up/down) + + + print + booleano + no + true + Se stampare il valore oppure no + + + assign + stringa + no + nessuno + la variabile del template a cui assegnare il valore + + + + + + counter si usa per stampare un conteggio. counter terrà il conto + del valore ad ogni iterazione. Potete impostare il valore di partenza, + l'intervallo e la direzione del conteggio, così come decidere se + stampare il valore oppure no. Potete utilizzare più contatori + contemporaneamente indicando un nome diverso per ciascuno. Se non indicate + un nome, verrà usato il nome 'default'. + + + Se fornite lo speciale attributo "assign", l'output della funzione contatore + verrà assegnato a questa variabile invece di essere stampata in output. + + + counter + + +{counter}
+{counter}
+{counter}
+]]> +
+ + questo stamperà: + + + +2
+4
+6
+]]> +
+
+
+ diff --git a/docs/it/designers/language-custom-functions/language-function-cycle.xml b/docs/it/designers/language-custom-functions/language-function-cycle.xml new file mode 100644 index 00000000..e1f1c4f3 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-cycle.xml @@ -0,0 +1,135 @@ + + + + cycle + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + name + stringa + no + default + Nome del ciclo + + + values + misto + + nessuno + Valori da usare nel ciclo: può essere + una lista delimitata da un separatore (vedere attributo + delimiter), oppure un array di valori. + + + print + booleano + no + true + Se stampare il valore oppure no. + + + advance + booleano + no + true + Se avanzare o no al prossimo valore. + + + delimiter + stringa + no + , + Delimitatore per l'attributo values. + + + assign + stringa + no + nessuno + Variabile del template cui assegnare l'output. + + + + + + Cycle si usa per effettuare un ciclo alternato fra un insieme di valori. + Ci dà la possibilità di alternare facilmente due o più colori in una + tabella, o di effettuare un ciclo su un array di valori. + + + Potete effettuare il ciclo su più di un insieme di valori nel template + fornendo l'attributo name, se date ad ogni insieme un nome diverso. + + + Potete evitare che il valore corrente venga stampato impostando + l'attributo set a false. Può essere utile per saltare un valore. + + + L'attributo advance serve per ripetere un valore. Se lo impostate a + false, l'iterazione successiva del ciclo stamperà lo stesso valore. + + + Se fornite lo speciale attributo "assign", l'output della funzione cycle + verrà assegnato a questa variabile invece di essere stampato in output. + + + cycle + + + {$data[rows]} + +{/section} +]]> + + + + 1 + + + 2 + + + 3 + +]]> + + + + diff --git a/docs/it/designers/language-custom-functions/language-function-debug.xml b/docs/it/designers/language-custom-functions/language-function-debug.xml new file mode 100644 index 00000000..e286f2d7 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-debug.xml @@ -0,0 +1,60 @@ + + + + debug + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + output + stringa + no + html + tipo di output: html o javascript + + + + + + {debug} produce un dump sulla pagina della console di debug. Funziona + indipendentemente dall'impostazione debug + di Smarty. Siccome viene eseguita a runtime, è in grado di + mostrare soltanto le variabili, non i template che state utilizzando. + Comunque vedrete tutte le variabili attualmente disponibili nello + scope di questo template. + + + diff --git a/docs/it/designers/language-custom-functions/language-function-eval.xml b/docs/it/designers/language-custom-functions/language-function-eval.xml new file mode 100644 index 00000000..ee3e518e --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-eval.xml @@ -0,0 +1,120 @@ + + + + eval + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + var + misto + + nessuno + variabile (o stringa) da valorizzare + + + assign + stringa + no + nessuno + la variabile cui verrà assegnato l'output + + + + + + eval si usa per valorizzare una variabile come se fosse un + template. Si può usare per incorporare tag o variabili di template + dentro altre variabili, oppure tag o variabili nelle variabili dei + file di configurazione. + + + Se fornite lo speciale attributo "assign" l'output della funzione + eval sarà assegnato a questa variabile invece di essere stampato + in output. + + + Nota tecnica + + La variabili valorizzate con eval sono trattate allo stesso modo + dei template. Seguono le stesse regole di escape e di sicurezza, + come se fossero template + + + + Nota tecnica + + Le variabili valorizzate con eval vengono compilate ad ogni chiamata: + la versione compilata non viene salvata! Comunque, se avete il + caching abilitato, l'output verrà messo in cache con il resto del + template. + + + +eval + +setup.conf +---------- + +emphstart = <b> +emphend = </b> +title = Welcome to {$company}'s home page! +ErrorCity = You must supply a {#emphstart#}city{#emphend#}. +ErrorState = You must supply a {#emphstart#}state{#emphend#}. + + +index.tpl +--------- + +{config_load file="setup.conf"} + +{eval var=$foo} +{eval var=#title#} +{eval var=#ErrorCity#} +{eval var=#ErrorState# assign="state_error"} +{$state_error} + +OUTPUT: + +This is the contents of foo. +Welcome to Foobar Pub & Grill's home page! +You must supply a <b>city</b>. +You must supply a <b>state</b>. + + + + + diff --git a/docs/it/designers/language-custom-functions/language-function-fetch.xml b/docs/it/designers/language-custom-functions/language-function-fetch.xml new file mode 100644 index 00000000..9d600287 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-fetch.xml @@ -0,0 +1,111 @@ + + + + fetch + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + file + stringa + + nessuno + il file o l'indirizzo http o ftp da caricare + + + assign + stringa + no + nessuno + la variabile del template cui assegnare l'output + + + + + + fetch si usa per recuperare file dal filesystem locale, oppure da + un indirizzo http o ftp, e visualizzarne il contenuto. Se il nome + del file inizia per "http://", la pagina web verrà letta e + visualizzata. Se il nome del file inizia per "ftp://", il file + verrà recuperato dal server ftp e visualizzato. Per i file locali + deve essere indicato l'intero percorso sul filesystem oppure un + percorso relativo all'indirizzo dello script php in esecuzione. + + + Se fornite lo speciale attributo "assign", l'output della funzione + fetch verrà assegnato a questa variabile invece di essere stampato + in output. (novità di Smarty 1.5.0) + + + Nota tecnica + + I redirect http non sono supportati, quindi assicuratevi di + mettere lo slash finale sull'indirizzo della pagina web quando + necessario. + + + + Nota tecnica + + Se è attivata la security del template e state cercando di + caricare un file dal filesystem locale, saranno consentiti + soltanto file compresi in una delle directory definite sicure + ($secure_dir). + + + + fetch + +{$weather} +{/if} +]]> + + + + diff --git a/docs/it/designers/language-custom-functions/language-function-html-checkboxes.xml b/docs/it/designers/language-custom-functions/language-function-html-checkboxes.xml new file mode 100644 index 00000000..cd60a0f4 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-html-checkboxes.xml @@ -0,0 +1,165 @@ + + + + html_checkboxes + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + name + stringa + no + checkbox + nome della lista di checkbox + + + values + array + sì, a meno che si usi l'attributo options + nessuno + array di valori per le checkbox + + + output + array + sì, a meno che si usi l'attributo options + nessuno + array di output per le checkbox + + + selected + stringa/array + no + vuoto + la/le checkbox preselezionata/e + + + options + array associativo + sì, a meno che si usino values e output + nessuno + array associativo di valori e output + + + separator + stringa + no + vuoto + stringa di testo da usare come separatore fra le checkbox + + + labels + booleano + no + true + aggiunge i tag <label> all'output + + + + + + html_checkboxes è una funzione utente che usa i dati forniti per + creare un gruppo di checkbox html. Si occupa anche di impostare + la casella selezionata per default. Gli attributi obbligatori sono + values e output, a meno che non usiate invece options. Tutto + l'output generato è compatibile XHTML. + + + Tutti i parametri non compresi nella lista qui sopra vengono + stampati come coppie nome/valore all'interno di ogni tag <input>. + + + html_checkboxes + +assign('cust_ids', array(1000,1001,1002,1003)); +$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane Johnson','Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + +?> +]]> + + + dove index.tpl è: + + +"} +]]> + + +assign('cust_checkboxes', array( + 1000 => 'Joe Schmoe', + 1001 => 'Jack Smith', + 1002 => 'Jane Johnson', + 1003 => 'Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); +?> +]]> + + + dove index.tpl è: + + +"} +]]> + + + entrambi gli esempi produrranno in output: + + +Joe Schmoe
+
+
+
+]]> +
+
+
+ diff --git a/docs/it/designers/language-custom-functions/language-function-html-image.xml b/docs/it/designers/language-custom-functions/language-function-html-image.xml new file mode 100644 index 00000000..ff9ae88c --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-html-image.xml @@ -0,0 +1,160 @@ + + + + html_image + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + file + stringa + + nessuno + nome/percorso dell'immagine + + + border + stringa + no + 0 + dimensione del bordo dell'immagine + + + height + stringa + no + altezza effettiva dell'immagine + altezza con cui visualizzare l'immagine + + + width + stringa + no + larghezza effettiva dell'immagine + larghezza con cui visualizzare l'immagine + + + basedir + stringa + no + doc root del web server + directory di base per percorsi relativi + + + alt + stringa + no + "" + descrizione alternativa dell'immagine + + + href + stringa + no + nessuno + valore di href per il link dell'immagine + + + + + + html_image è una funzione utente che genera un tag HTML per una + immagine. L'altezza e la larghezza, quando non indicate, vengono + calcolate automaticamente dal file dell'immagine. + + + basedir è la directory di riferimento per percorsi relativi. Se non + viene indicata, viene usata come base la document root del web + server (variabile di ambiente DOCUMENT_ROOT). Se la security è + abilitata, il percorso dell'immagine deve trovarsi in una directory + considerata sicura. + + + href è l'indirizzo del link a cui collegare + l'immagine. Se viene fornito, verrà creato un tag + <a href="LINKVALUE"><a> attorno al tag image. + + + Tutti i parametri non compresi nella lista qui sopra vengono + stampati come coppie nome/valore all'interno del tag <img> + generato. + + + Nota tecnica + + html_image richiede un accesso al disco per leggere il + file dell'immagine e calcolarne altezza e larghezza. Se non + usate il caching dei template, è generalmente consigliabile + evitare html_image e lasciare i tag image statici per + ottenere prestazioni ottimali. + + + + esempio di html_image + +display('index.tpl'); + +?> +]]> + + + dove index.tpl è: + + + + + + un possibile output potrebbe essere: + + + + + +]]> + + + + diff --git a/docs/it/designers/language-custom-functions/language-function-html-options.xml b/docs/it/designers/language-custom-functions/language-function-html-options.xml new file mode 100644 index 00000000..1b3c1bad --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-html-options.xml @@ -0,0 +1,153 @@ + + + + html_options + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + values + array + sì, a meno che si usi l'attributo options + nessuno + array di valori per il menù a discesa + + + output + array + sì, a meno che si usi l'attributo options + nessuno + array di output per il menù a discesa + + + selected + stringa/array + no + vuoto + l'elemento/gli elementi selezionato/i + + + options + array associativo + sì, a meno che si usino values e output + nessuno + array associativo di valori e output + + + name + stringa + no + vuoto + nome del gruppo select + + + + + + html_options è una funzione utente che usa i dati forniti per creare + un gruppo di opzioni, cioè di valori option per un menù a discesa + (casella select). Si occupa anche di quale o quali valori devono + essere preselezionati. Gli attributi obbligatori sono values e output, + a meno che non usiate invece options. + + + Se uno dei valori forniti è un array, verrà trattato come un gruppo + di opzioni (OPTGROUP), e visualizzato di conseguenza. E' possibile + creare gruppi ricorsivi (a più livelli). Tutto l'output generato è + compatibile XHTML. + + + Se viene fornito l'attributo opzionale name, + la lista di opzioni verrà racchiusa con il tag + <select name="groupname"></select>. In caso contrario + verrà generata solo la lista di opzioni. + + + Tutti i parametri non compresi nella lista qui sopra verranno + stampati come coppie nome/valore nel tag <select>. + Saranno ignorati se l'attributo name non è + presente. + + +html_options + +index.php: + +require('Smarty.class.php'); +$smarty = new Smarty; +$smarty->assign('cust_ids', array(1000,1001,1002,1003)); +$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane +Johnson','Carlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + +index.tpl: + +<select name=customer_id> + {html_options values=$cust_ids selected=$customer_id output=$cust_names} +</select> + + +index.php: + +require('Smarty.class.php'); +$smarty = new Smarty; +$smarty->assign('cust_options', array( + 1001 => 'Joe Schmoe', + 1002 => 'Jack Smith', + 1003 => 'Jane Johnson', + 1004 => 'Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + +index.tpl: + +<select name=customer_id> + {html_options options=$cust_options selected=$customer_id} +</select> + + +OUTPUT: (per entrambi gli esempi) + +<select name=customer_id> + <option value="1000">Joe Schmoe</option> + <option value="1001" selected="selected">Jack Smith</option> + <option value="1002">Jane Johnson</option> + <option value="1003">Charlie Brown</option> +</select> + + + diff --git a/docs/it/designers/language-custom-functions/language-function-html-radios.xml b/docs/it/designers/language-custom-functions/language-function-html-radios.xml new file mode 100644 index 00000000..886ac3bd --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-html-radios.xml @@ -0,0 +1,144 @@ + + + + html_radios + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + name + stringa + no + radio + nome dell'insieme di pulsanti radio + + + values + array + sì, a meno che si usi l'attributo options + nessuno + array di valori per i pulsanti radio + + + output + array + sì, a meno che si usi l'attributo options + nessuno + array di output per i pulsanti radio + + + selected + stringa + no + vuoto + l'elemento preselezionato + + + options + array associativo + sì, a meno che si usino values e output + n/a + array associativo di valori e output + + + separator + stringa + no + vuoto + stringa di testo da usare come separatore fra le diverse voci + + + + + + html_radios è una funzione utente che usa i dati forniti per creare + un gruppo di pulsanti radio html. Si occupa anche di quale deve + essere selezionato per default. Gli attributi obbligatori sono values + e output, a meno che non usiate invece options. Tutto l'output + generato è compatibile XHTML. + + + Tutti i parametri non compresi nella lista qui sopra verranno + stampati come coppie nome/valore in ciascuno dei tag <input> + creati. + + + +html_radios + +index.php: + +require('Smarty.class.php'); +$smarty = new Smarty; +$smarty->assign('cust_ids', array(1000,1001,1002,1003)); +$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane +Johnson','Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + + +index.tpl: + +{html_radios name="id" values=$cust_ids selected=$customer_id output=$cust_names separator="<br />"} + + +index.php: + +require('Smarty.class.php'); +$smarty = new Smarty; +$smarty->assign('cust_radios', array( + 1000 => 'Joe Schmoe', + 1001 => 'Jack Smith', + 1002 => 'Jane Johnson', + 1003 => 'Charlie Brown')); +$smarty->assign('customer_id', 1001); +$smarty->display('index.tpl'); + + +index.tpl: + +{html_radios name="id" options=$cust_radios selected=$customer_id separator="<br />"} + + +OUTPUT: (per entrambi gli esempi) + +<input type="radio" name="id" value="1000">Joe Schmoe<br /> +<input type="radio" name="id" value="1001" checked="checked">Jack Smith<br /> +<input type="radio" name="id" value="1002">Jane Johnson<br /> +<input type="radio" name="id" value="1003">Charlie Brown<br /> + + + diff --git a/docs/it/designers/language-custom-functions/language-function-html-select-date.xml b/docs/it/designers/language-custom-functions/language-function-html-select-date.xml new file mode 100644 index 00000000..74682558 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-html-select-date.xml @@ -0,0 +1,361 @@ + + + + html_select_date + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + prefix + stringa + no + Date_ + prefisso per i nomi delle variabili + + + time + timestamp/YYYY-MM-DD + no + data attuale in formato unix timestamp o YYYY-MM-DD + data preselezionata + + + start_year + stringa + no + anno corrente + primo anno visualizzato: può essere in valore assoluto + o relativo all'anno corrente(+/- N) + + + end_year + stringa + no + uguale a start_year + ultimo anno visualizzato: può essere in valore assoluto + o relativo all'anno corrente(+/- N) + + + display_days + booleano + no + true + se visualizzare i giorni oppure no + + + display_months + booleano + no + true + se visualizzare i mesi oppure no + + + display_years + booleano + no + true + se visualizzare gli anni oppure no + + + month_format + stringa + no + %B + formato per i mesi in output (strftime) + + + day_format + stringa + no + %02d + formato per i giorni in output (sprintf) + + + day_value_format + string + no + %d + formato per il valore dei giorni (sprintf) + + + year_as_text + booleano + no + false + se visualizzare gli anni in forma testuale oppure no + + + reverse_years + booleano + no + false + se visualizzare gli anni in ordine inverso + + + field_array + stringa + no + null + se viene fornito un nome, le caselle select + verranno create in modo che il risultato + venga fornito a PHP nella forma nome[Day], + nome[Year], nome[Month]. + + + + day_size + stringa + no + null + se presente aggiunge l'attributo size al tag select + + + month_size + stringa + no + null + se presente aggiunge l'attributo size al tag select + + + year_size + stringa + no + null + se presente aggiunge l'attributo size al tag select + + + all_extra + stringa + no + null + se presente aggiunge attributi extra a tutti i tag select + + + day_extra + stringa + no + null + se presente aggiunge attributi extra ai tag select/input + + + month_extra + stringa + no + null + se presente aggiunge attributi extra ai tag select/input + + + year_extra + stringa + no + null + se presente aggiunge attributi extra ai tag select/input + + + field_order + stringa + no + MDY + ordine di visualizzazione dei campi (mese, giorno, anno) + + + field_separator + stringa + no + \n + stringa di separazione fra i campi + + + month_value_format + stringa + no + %m + formato strftime per i valori dei mesi + + + year_empty + stringa + no + null + Se presente, il primo elemento della casella select per gli anni + conterrà questo valore come output e "" come valore. E' utile per mostrare, + ad esempio, sul menù a discesa la frase "Selezionare l'anno". + Notate che potete utilizzare valori del tipo "-MM-DD" nell'attributo time + per indicare che l'anno non deve essere preselezionato. + + + month_empty + stringa + no + null + Se presente, il primo elemento della casella select per i mesi + conterrà questo valore come output e "" come valore. + Notate che potete utilizzare valori del tipo "YYYY---DD" nell'attributo time + per indicare che il mese non deve essere preselezionato. + + + day_empty + stringa + no + null + Se presente, il primo elemento della casella select per i giorni + conterrà questo valore come output e "" come valore. + Notate che potete utilizzare valori del tipo "YYYY-MM-" nell'attributo time + per indicare che il giorno non deve essere preselezionato. + + + + + + html_select_date è una funzione utente che crea per voi menù a discesa + per le date. Può mostrare anno, mese e giorno o solo qualcuno di questi + valori. + + + L'attributo time può avere diversi formati: può essere un timestamp UNIX + o una stringa di tipo Y-M-D (anno-mese-giorno). Il formato più comune + sarebbe YYYY-MM-DD, ma vengono riconosciuti anche mesi e giorni con meno + di due cifre. Se uno dei tre valori (Y,M,D) è una stringa vuota, il campo + select corrispondente non avrà nessuna preselezione. Ciò è utile in + special modo con gli attributi year_empty, month_empty e day_empty. + + +html_select_date + + + + +Questo stamperà: + + + + + + + + + + + + + + + + + + +]]> + + + + +html_select_date + + + + +Questo stamperà: (l'anno corrente è il 2000) + + + + + + + + + + + + + + + + + +]]> + + + + diff --git a/docs/it/designers/language-custom-functions/language-function-html-select-time.xml b/docs/it/designers/language-custom-functions/language-function-html-select-time.xml new file mode 100644 index 00000000..da19fcb6 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-html-select-time.xml @@ -0,0 +1,331 @@ + + + + html_select_time + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + prefix + stringa + no + Time_ + prefisso per i nomi delle variabili + + + time + timestamp + no + ora corrente + ora preselezionata + + + display_hours + booleano + no + true + se mostrare o no le ore + + + display_minutes + booleano + no + true + se mostrare o no i minuti + + + display_seconds + booleano + no + true + se mostrare o no i secondi + + + display_meridian + booleano + no + true + se mostrare o no il valore "am/pm" (antimeridiano / pomeridiano). + Questo valore non viene mai mostrato (e quindi il parametro + ignorato) se use_24_hours è true. + + + use_24_hours + booleano + no + true + se usare o no l'orologio di 24 ore + + + minute_interval + intero + no + 1 + intervallo dei minuti nel menù a discesa relativo + + + second_interval + intero + no + 1 + intervallo dei secondi nel menù a discesa relativo + + + field_array + stringa + no + nessuno + imposta i valori in un array con questo nome + + + all_extra + stringa + no + null + se presente aggiunge attributi extra a tutti i tag select/input + + + hour_extra + stringa + no + null + se presente aggiunge attributi extra al tag select/input + + + minute_extra + stringa + no + null + se presente aggiunge attributi extra al tag select/input + + + second_extra + stringa + no + null + se presente aggiunge attributi extra al tag select/input + + + meridian_extra + stringa + no + null + se presente aggiunge attributi extra al tag select/input + + + + + + html_select_time è una funzione utente che crea per voi menù a discesa per + la selezione di un orario. Potete scegliere quali campi visualizzare fra + ore, minuti, secondi e antimeridiano/postmeridiano. + + + L'attributo time può avere vari formati. Può essere un timestamp o + una stringa nel formato YYYYMMDDHHMMSS o una stringa leggibile + dalla funzione php strtotime(). + + + html_select_time + + + + + This will output: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + diff --git a/docs/it/designers/language-custom-functions/language-function-html-table.xml b/docs/it/designers/language-custom-functions/language-function-html-table.xml new file mode 100644 index 00000000..03acbd9b --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-html-table.xml @@ -0,0 +1,152 @@ + + + + html_table + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + loop + array + + nessuno + array di dati da visualizzare nella tabella + + + cols + intero + no + 3 + numero di colonne della tabella + + + table_attr + stringa + no + border="1" + attributi per il tag table + + + tr_attr + stringa + no + vuoto + attributi per i tag tr (gli array vengono alternati) + + + td_attr + stringa + no + vuoto + attributi per i tag td (gli array vengono alternati) + + + trailpad + stringa + no + &nbsp; + valore per le celle aggiuntive dell'ultima riga, + se presenti + + + + hdir + stringa + no + right + direzione di riempimento delle righe. Valori possibili: left/right + + + vdir + stringa + no + down + direzione di riempimento delle colonne. Valori possibili: up/down + + + + + + html_table è una funzione utente che formatta + un array di dati in una tabella HTML. L'attributo cols + determina il numero di colonne che formeranno la tabella. I valori + di table_attr, tr_attr e + td_attr determinano gli attributi dei tag table, + tr e td. Se tr_attr o td_attr + sono array, la funzione userà un ciclo per alternarne i valori. + trailpad è il valore da usare nelle ultime celle + da aggiungere all'ultima riga, nel caso in cui il numero di valori + nell'array loop non sia divisibile per il numero di colonne. + + +html_table + +assign('data',array(1,2,3,4,5,6,7,8,9)); +$smarty->assign('tr',array('bgcolor="#eeeeee"','bgcolor="#dddddd"')); +$smarty->display('index.tpl'); + +index.tpl: + +{html_table loop=$data} +{html_table loop=$data cols=4 table_attr='border="0"'} +{html_table loop=$data cols=4 tr_attr=$tr} + +OUTPUT: + + + + + +
123
456
789
+ + + + +
1234
5678
9   
+ + + + +
1234
5678
9   
+]]>
+
+
+ diff --git a/docs/it/designers/language-custom-functions/language-function-mailto.xml b/docs/it/designers/language-custom-functions/language-function-mailto.xml new file mode 100644 index 00000000..71107b70 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-mailto.xml @@ -0,0 +1,150 @@ + + + + mailto + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + address + stringa + + nessuno + l'indirizzo e-mail + + + text + stringa + no + nessuno + il testo da visualizzare sul link; il default + è l'indirizzo e-mail + + + encode + stringa + no + none + Come codificare l'indirizzo. Può essere + none, hex o + javascript. + + + cc + stringa + no + nessuno + indirizzi e-mail da mettere 'per conoscenza'. + Separateli con una virgola. + + + bcc + stringa + no + nessuno + indirizzi e-mail da mettere 'in copia nascosta'. + Separateli con una virgola. + + + subject + stringa + no + nessuno + oggetto della e-mail. + + + newsgroups + stringa + no + nessuno + newsgroups a cui scrivere. Separateli con una virgola. + + + followupto + stringa + no + n/a + indirizzi per il follow up to. Separateli con una virgola. + + + extra + stringa + no + nessuno + qualsiasi informazione ulteriore che vogliate passare + al link, ad esempio classi per i fogli di stile + + + + + + La funzione mailto automatizza la creazione di link mailto e, + opzionalmente, li codifica. Codificare gli indirizzi e-mail + rende più difficile per i web spider raccoglierli dal vostro sito. + + + Nota tecnica + + javascript è probabilmente il metodo più completo di + codifica, ma potete usare anche la codifica esadecimale. + + + + mailto + +{mailto address="me@example.com"} +{mailto address="me@example.com" text="send me some mail"} +{mailto address="me@example.com" encode="javascript"} +{mailto address="me@example.com" encode="hex"} +{mailto address="me@example.com" subject="Hello to you!"} +{mailto address="me@example.com" cc="you@example.com,they@example.com"} +{mailto address="me@example.com" extra='class="email"'} + +OUTPUT: + +<a href="mailto:me@example.com" >me@domain.com</a> +<a href="mailto:me@example.com" >send me some mail</a> +<script type="text/javascript" language="javascript">eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%6 +9%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d% +61%69%6e%2e%63%6f%6d%22%20%3e%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%3c%2f%61%3e +%27%29%3b'))</script> +<a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d" >me@domain.com</a> +<a href="mailto:me@example.com?subject=Hello%20to%20you%21" >me@domain.com</a> +<a href="mailto:me@example.com?cc=you@domain.com%2Cthey@domain.com" >me@domain.com</a> +<a href="mailto:me@example.com" class="email">me@domain.com</a> + + + diff --git a/docs/it/designers/language-custom-functions/language-function-math.xml b/docs/it/designers/language-custom-functions/language-function-math.xml new file mode 100644 index 00000000..e645e50a --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-math.xml @@ -0,0 +1,148 @@ + + + + math + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + equation + stringa + + nessuno + l'equazione da eseguire + + + format + stringa + no + nessuno + formato del risultato (sprintf) + + + var + numerico + + nessuno + valore di una variabile dell'equazione + + + assign + stringa + no + nessuno + variabile del template cui verrà assegnato il risultato + + + [var ...] + numerico + + nessuno + valore di una variabile dell'equazione + + + + + + La funzione math permette al progettista di effettuare equazioni + matematiche nel template. Qualsiasi variabile numerica del template + può essere utilizzata nell'equazione; il risultato verrà stampato + al posto del tag. Le variabili usate nell'equazione vengono passate + come parametri, che possono essere variabili del template o valori + statici. +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, + min, pi, pow, rand, round, sin, sqrt, srans e tan sono tutti operatori + validi. Controllate la documentazione di PHP per ulteriori informazioni + su queste funzioni matematiche. + + + Se fornite lo speciale attributo "assign", l'output della + funzione verrà assegnato a questa variabile del template, + invece di essere stampato in output. + + + Nota tecnica + + math è una funzione costosa in termini di prestazioni, a + causa dell'uso che fa della funzione php eval(). Fare i + calcoli matematici in PHP è molto più efficiente, quindi, + quando possibile, fate i calcoli in PHP ed assegnate i + risultati al template. Evitate decisamente chiamate + ripetitive alla funzione math, ad esempio in cicli section. + + + +math + +{* $height=4, $width=5 *} + +{math equation="x + y" x=$height y=$width} + +OUTPUT: + +9 + + +{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *} + +{math equation="height * width / division" + height=$row_height + width=$row_width + division=#col_div#} + +OUTPUT: + +100 + + +{* potete usare le parentesi *} + +{math equation="(( x + y ) / z )" x=2 y=10 z=2} + +OUTPUT: + +6 + + +{* potete indicare un parametro format in formato sprintf *} + +{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"} + +OUTPUT: + +9.44 + + + diff --git a/docs/it/designers/language-custom-functions/language-function-popup-init.xml b/docs/it/designers/language-custom-functions/language-function-popup-init.xml new file mode 100644 index 00000000..2bc20302 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-popup-init.xml @@ -0,0 +1,52 @@ + + + + popup_init + + popup è un'integrazione di overLib, una libreria usata per + le finestre popup. Tali finestre (si tratta di finestre interne + al documento, non finestre di programma come quelle che si aprono + con "javascript:window.open...") si usano per informazioni + relative al contesto, ad esempio aiuto o suggerimenti. + popup_init deve essere chiamata una volta all'inizio di ogni + pagina in cui pensate di utilizzare la funzione popup. overLib è stata + scritta da Erik Bosrup, e la sua homepage si trova all'indirizzo + http://www.bosrup.com/web/overlib/. + + + A partire dalla versione di Smarty 2.1.2, overLib NON fa più + parte della release. Quindi scaricate overLib, piazzate il file + overlib.js sotto la vostra document root e indicate il percorso + relativo a questo file come parametro "src" di popup_init. + + + popup_init + + + + + + diff --git a/docs/it/designers/language-custom-functions/language-function-popup.xml b/docs/it/designers/language-custom-functions/language-function-popup.xml new file mode 100644 index 00000000..64edcf97 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-popup.xml @@ -0,0 +1,428 @@ + + + + popup + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + text + stringa + + nessuno + testo o codice html da visualizzare nel popup + + + trigger + stringa + mo + onMouseOver + evento usato per attivare il popup. Può essere + onMouseOver oppure onClick + + + sticky + booleano + no + false + fa sì che il popup rimanga visibile fino a quando non viene chiuso + + + caption + stringa + no + nessuno + imposta il titolo del popup + + + fgcolor + stringa + no + nessuno + colore dell'interno del popup + + + bgcolor + stringa + no + nessuno + colore del bordo del popup + + + textcolor + stringa + no + nessuno + colore del testo del popup + + + capcolor + stringa + no + nessuno + colore del titolo del popup + + + closecolor + stringa + mo + nessuno + colore del link di chiusura + + + textfont + stringa + no + nessuno + carattere del testo + + + captionfont + stringa + no + nessuno + carattere del titolo + + + closefont + stringa + mo + nessuno + carattere del link di chiusura + + + textsize + stringa + no + nessuno + dimensione del carattere del testo + + + captionsize + stringa + no + nessuno + dimensione del carattere del titolo + + + closesize + stringa + no + nessuno + dimensione del carattere del link di chiusura + + + width + intero + no + nessuno + larghezza del box + + + height + intero + no + nessuno + altezza del box + + + left + boolean + No + false + posiziona il popup a sinistra del mouse + + + right + booleanp + no + false + posiziona il popup a destra del mouse + + + center + booleano + no + false + posiziona il popup centrato rispetto al mouse + + + above + booleano + no + false + posiziona il popup al di sopra del mouse. NOTA: possibile + solo se è stata impostata l'altezza + + + below + booleano + no + false + posiziona il popup al di sotto del mouse + + + border + intero + no + nessuno + rende il bordo del popup più grosso o più sottile + + + offsetx + intero + no + nessuno + distanza orizzontale del popup rispetto al mouse + + + offsety + intero + no + nessuno + distanza verticale del popup rispetto al mouse + + + fgbackground + url di un'immagine + no + nessuno + definisce un'immagine da usare invece del colore di + sfondo nel popup. + + + bgbackground + url di un'immagine + no + nessuno + definisce un'immagine da usare invece del colore per + il bordo del popup. NOTA: dovete impostare il bgcolor a "", + altrimenti il colore si vedrà comunque. NOTA: quando è + presente un link di chiusura, Netscape ridisegnerà le + celle della tabella, rendendo la visualizzazione + non corretta + + + closetext + stringa + no + nessuno + imposta un testo come link di chiusura invece di "Close" + + + noclose + booleano + no + nessuno + non mostra il link di chiusura sui popup "sticky" + con un titolo + + + status + stringa + no + nessuno + imposta il testo sulla barra di stato del browser + + + autostatus + booleano + no + nessuno + imposta il testo della barra di stato uguale a quello del popup. + NOTA: prevale sull'impostazione di status + + + autostatuscap + stringa + no + nessuno + imposta il testo della barra di stato uguale a quello del titolo. + NOTA: prevale sull'impostazione di status e autostatus + + + inarray + intero + no + nessuno + comunica ad overLib di leggere il testo da questo indice + dell'array ol_text, che si trova in overlib.js. Questo parametro + può essere usato al posto di text + + + caparray + intero + no + nessuno + comunica ad overLib di leggere il titolo da + questo indice nell'array ol_caps + + + capicon + url + no + nessuno + mostra l'immagine indicata prima del titolo + + + snapx + intero + no + nessuno + aggancia il popup ad una posizione in una griglia + orizzontale + + + snapy + intero + no + nessuno + aggancia il popup ad una posizione in una griglia + verticale + + + fixx + intero + no + nessuno + blocca la posizione orizzontale del popup. Nota: + prevale su qualsiasi altro posizionamento orizzontale + + + fixy + intero + no + nessuno + blocca la posizione verticale del popup. Nota: + prevale su qualsiasi altro posizionamento verticale + + + background + url + no + nessuno + imposta un'immagine da utilizzare al posto dello + sfondo della tabella + + + padx + intero,intero + no + nessuno + imposta un padding orizzontale sull'immagine di sfondo + per il testo. Nota: l'attributo richiede due valori + + + pady + intero,intero + no + nessuno + imposta un padding verticale sull'immagine di sfondo + per il testo. Nota: l'attributo richiede due valori + + + fullhtml + booleano + no + nessuno + consente di utilizzare codice html per l'immagine di sfondo. + Il codice html dovrà trovarsi nell'attributo text + + + frame + stringa + no + nessuno + controlla il popup in un altro frame. Vedere la documentazione + di overlib per maggiori informazioni su questa funzione + + + timeout + stringa + no + nessuno + chiama la funzione javascript specificata e prende il + valore restituito come testo da mostrare nel popup + + + delay + intero + no + nessuno + fa sì che il popup si comporti come un tooltip. Verrà + visualizzato solo dopo questo ritardo in millisecondi. + + + hauto + booleano + no + nessuno + determina automaticamente se il popup deve apparire a sinistra + o a destra del mouse. + + + vauto + booleano + no + nessuno + determina automaticamente se il popup deve + apparire sopra o sotto il mouse. + + + + + + popup si usa per creare finestre popup javascript. + + + popup + +mypage + +{* potete usare html, links, etc nel testo del popup *} +mypage +]]> + + + + diff --git a/docs/it/designers/language-custom-functions/language-function-textformat.xml b/docs/it/designers/language-custom-functions/language-function-textformat.xml new file mode 100644 index 00000000..a7394a67 --- /dev/null +++ b/docs/it/designers/language-custom-functions/language-function-textformat.xml @@ -0,0 +1,254 @@ + + + + textformat + + + + + + + + + + Nome Attributo + Tipo + Obbligatorio + Default + Descrizione + + + + + style + stringa + no + nessuno + stile predefinito + + + indent + numero + no + 0 + numero di caratteri da rientrare ad ogni riga + + + indent_first + numero + no + 0 + numero di caratteri da rientrare alla prima riga + + + indent_char + stringa + no + (spazio singolo) + carattere (o stringa di caratteri) da usare come rientro + + + wrap + numero + no + 80 + a quanti caratteri spezzare ogni riga + + + wrap_char + stringa + no + \n + caratteri (o stringa di caratteri) da usare per + spezzare le righe + + + wrap_cut + booleano + no + false + se vero, le righe verranno spezzate al carattere esatto + invece che al termine di una parola + + + assign + stringa + no + nessuno + variabile del template cui assegnare l'output + + + + + + textformat è una funzione di blocco usata per formattare il testo. + Fondamentalmente rimuove spazi e caratteri speciali, e formatta + i paragrafi spezzando le righe ad una certa lunghezza ed inserendo + dei rientri. + + + Potete impostare i parametri esplicitamente oppure usare uno + stile predefinito. Attualmente "email" è l'unico stile disponibile. + + +textformat + +{textformat wrap=40} + +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. + +This is bar. + +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. + +{/textformat} + +OUTPUT: + +This is foo. This is foo. This is foo. +This is foo. This is foo. This is foo. + +This is bar. + +bar foo bar foo foo. bar foo bar foo +foo. bar foo bar foo foo. bar foo bar +foo foo. bar foo bar foo foo. bar foo +bar foo foo. bar foo bar foo foo. + + +{textformat wrap=40 indent=4} + +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. + +This is bar. + +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. + +{/textformat} + +OUTPUT: + + This is foo. This is foo. This is + foo. This is foo. This is foo. This + is foo. + + This is bar. + + bar foo bar foo foo. bar foo bar foo + foo. bar foo bar foo foo. bar foo + bar foo foo. bar foo bar foo foo. + bar foo bar foo foo. bar foo bar + foo foo. + +{textformat wrap=40 indent=4 indent_first=4} + +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. + +This is bar. + +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. + +{/textformat} + +OUTPUT: + + This is foo. This is foo. This + is foo. This is foo. This is foo. + This is foo. + + This is bar. + + bar foo bar foo foo. bar foo bar + foo foo. bar foo bar foo foo. bar + foo bar foo foo. bar foo bar foo + foo. bar foo bar foo foo. bar foo + bar foo foo. + +{textformat style="email"} + +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. +This is foo. + +This is bar. + +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. +bar foo bar foo foo. + +{/textformat} + +OUTPUT: + +This is foo. This is foo. This is foo. This is foo. This is foo. This is +foo. + +This is bar. + +bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo +bar foo foo. bar foo bar foo foo. bar foo bar foo foo. bar foo bar foo +foo. + + + + + diff --git a/docs/it/designers/language-modifiers.xml b/docs/it/designers/language-modifiers.xml new file mode 100644 index 00000000..51380b27 --- /dev/null +++ b/docs/it/designers/language-modifiers.xml @@ -0,0 +1,101 @@ + + + + Modificatori delle variabili + + I modificatori delle variabili si possono applicare alle variabili, alle + funzioni utente o a stringhe. Per applicare un modificatore bisogna indicare + il valore seguito da | (pipe) e dal nome del modificatore. + Un modificatore può accettare parametri addizionali che modificano il suo + comportamento. Questi parametri seguono il nome del modificatore e sono + separati da : (due punti). + + + esempio di modificatore + +{$title|upper} + +{* Troncare il topic a 40 caratteri usando ... alla fine *} +Topic: {$topic|truncate:40:"..."} + +{* Formattare una stringa indicata direttamente *} +{"now"|date_format:"%Y/%m/%d"} + +{* Applicare un modificatore ad una funzione utente *} +{mailto|upper address="me@domain.dom"} +]]> + + + + Se applicate un modificatore ad un array invece che ad un singolo valore, + il modificatore verrà applicato ad ogni valore dell'array. Se volete che + il modificatore lavori sull'intero array considerandolo un valore unico, + dovete premettere al nome del modificatore un simbolo @, + così: {$articleTitle|@count} (questo stampa il numero + di elementi nell'array $articleTitle). + + + I modificatori possono essere autocaricati dalla $plugins_dir (vedere Convenzioni di nomenclatura) + oppure possono essere registrati esplicitamente (vedere register_modifier). Inoltre tutte + le funzioni php possono essere usate implicitamente come modificatori. + (L'esempio @count visto sopra usa in realtà la funzione + php count e non un modificatore di Smarty). L'uso delle funzioni php + come modificatori porta con sé due piccoli trabocchetti: Primo: A volte + l'ordine dei parametri delle funzioni non è quello desiderato + ({"%2.f"|sprintf:$float} funziona, ma non è molto + intuitivo. Più facile è {$float|string_format:"%2.f"}, + che è fornito da Smarty). Secondo: con $security + attivato, tutte le funzioni php che si vogliono usare come modificatori + devono essere dichiarate affidabili nell'array + $security_settings['MODIFIER_FUNCS']. + + + &designers.language-modifiers.language-modifier-capitalize; + &designers.language-modifiers.language-modifier-count-characters; + &designers.language-modifiers.language-modifier-cat; + &designers.language-modifiers.language-modifier-count-paragraphs; + &designers.language-modifiers.language-modifier-count-sentences; + &designers.language-modifiers.language-modifier-count-words; + &designers.language-modifiers.language-modifier-date-format; + &designers.language-modifiers.language-modifier-default; + &designers.language-modifiers.language-modifier-escape; + &designers.language-modifiers.language-modifier-indent; + &designers.language-modifiers.language-modifier-lower; + &designers.language-modifiers.language-modifier-nl2br; + &designers.language-modifiers.language-modifier-regex-replace; + &designers.language-modifiers.language-modifier-replace; + &designers.language-modifiers.language-modifier-spacify; + &designers.language-modifiers.language-modifier-string-format; + &designers.language-modifiers.language-modifier-strip; + &designers.language-modifiers.language-modifier-strip-tags; + &designers.language-modifiers.language-modifier-truncate; + &designers.language-modifiers.language-modifier-upper; + &designers.language-modifiers.language-modifier-wordwrap; + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-capitalize.xml b/docs/it/designers/language-modifiers/language-modifier-capitalize.xml new file mode 100644 index 00000000..90280996 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-capitalize.xml @@ -0,0 +1,90 @@ + + + + capitalize + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + booleano + No + false + Stabilisce se le parole contenenti cifre verranno + trasformate in maiuscolo + + + + + + Si usa per mettere in maiuscolo la prima lettera di tutte le parole nella variabile. + + + capitalize + +assign('articleTitle', 'next x-men film, x3, delayed.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-cat.xml b/docs/it/designers/language-modifiers/language-modifier-cat.xml new file mode 100644 index 00000000..9342ec9d --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-cat.xml @@ -0,0 +1,83 @@ + + + + cat + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + stringa + No + vuoto + Valore che viene concatenato alla variabile. + + + + + + Questo valore viene concatenato alla variabile data. + + + cat + +assign('articleTitle', "Psychics predict world didn't end"); +$smarty->display('index.tpl'); +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-count-characters.xml b/docs/it/designers/language-modifiers/language-modifier-count-characters.xml new file mode 100644 index 00000000..e0bee43b --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-count-characters.xml @@ -0,0 +1,89 @@ + + + + count_characters + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + booleano + No + false + Stabilisce se gli spazi devono essere inclusi nel conteggio. + + + + + + E' usato per contare il numero di caratteri contenuti in una variabile. + + + count_characters + +assign('articleTitle', 'Cold Wave Linked to Temperatures.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-count-paragraphs.xml b/docs/it/designers/language-modifiers/language-modifier-count-paragraphs.xml new file mode 100644 index 00000000..2d99df81 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-count-paragraphs.xml @@ -0,0 +1,61 @@ + + + + count_paragraphs + + Si usa per contare il numero di paragrafi contenuti in una variabile. + + + count_paragraphs + +assign('articleTitle', "War Dims Hope for Peace. Child's Death Ruins +Couple's Holiday.\n\nMan is Fatally Slain. Death Causes Loneliness, Feeling of Isolation."); +$smarty->display('index.tpl'); +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-count-sentences.xml b/docs/it/designers/language-modifiers/language-modifier-count-sentences.xml new file mode 100644 index 00000000..933dbadf --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-count-sentences.xml @@ -0,0 +1,60 @@ + + + + count_sentences + + E' usato per contare il numero di frasi contenute in una variabile. + + + count_sentences + +assign('articleTitle', 'Two Soviet Ships Collide - One Dies. Enraged Cow Injures Farmer with Axe.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-count-words.xml b/docs/it/designers/language-modifiers/language-modifier-count-words.xml new file mode 100644 index 00000000..4727579c --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-count-words.xml @@ -0,0 +1,60 @@ + + + + count_words + + E' usato per contare il numero di parole contenute in una variabile. + + + count_words + +assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-date-format.xml b/docs/it/designers/language-modifiers/language-modifier-date-format.xml new file mode 100644 index 00000000..f0c92927 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-date-format.xml @@ -0,0 +1,234 @@ + + + + date_format + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + stringa + No + %b %e, %Y + E' il formato per la data in output. + + + 2 + stringa + No + nessuno + E' la data di default se la variabile in input è vuota. + + + + + + Questo modificatore formatta una data e un'ora nel formato dato di + strftime(). Le date possono essere passate a Smarty come timestamp Unix, + timestamp MySql o una qualsiasi stringa contenente mese giorno anno + (riconoscibile da strtotime). I progettisti quindi possono usare + date_format per avere il pieno controllo della formattazione della data. + Se la data passata a date_format è vuota ed è presente un secondo parametro, + verrà usato questo come data da formattare. + + + date_format + +assign('yesterday', strtotime('-1 day')); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + Parametri di conversione di date_format: + + + %a - nome abbreviato del giorno della settimana in base all'impostazione di "locale" + + + %A - nome intero del giorno della settimana in base all'impostazione di "locale" + + + %b - nome abbreviato del mese in base all'impostazione di "locale" + + + %B - nome intero del mese in base all'impostazione di "locale" + + + %c - rappresentazione preferita di ora e data in base all'impostazione di "locale" + + + %C - numero del secolo (l'anno diviso per 100 e troncato ad intero, range da 00 a 99) + + + %d - giorno del mese come numero decimale (range da 00 a 31) + + + %D - corrisponde a %m/%d/%y + + + %e - giorno del mese come numero decimale; la cifra singola è preceduta da uno spazio (range da 1 a 31) + + + %g - anno in base alle settimane, su due cifre [00,99] + + + %G - anno in base alle settimane, su quattro cifre [0000,9999] + + + %h - corrisponde a %b + + + %H - ora come numero decimale, su 24 ore (range da 00 a 23) + + + %I - ora come numero decimale, su 12 ore (range da 01 a 12) + + + %j - giorno dell'anno come numero decimale (range da 001 a 366) + + + %k - ora (su 24 ore) con le cifre singole precedute da spazio (range da 0 a 23) + + + %l - ora (su 12 ore) con le cifre singole precedute da spazio (range da 1 a 12) + + + %m - mese come numero decimale (range da 01 a 12) + + + %M - minuto come numero decimale + + + %n - carattere di "a capo" + + + %p - `am' o `pm' (antimeridiane o postmeridiane) in base all'ora, o valore corrispondente in base all'impostazione di "locale" + + + %r - ora completa nella notazione con a.m. e p.m. + + + %R - ora completa nella notazione su 24 ore + + + %S - secondi come numero decimale + + + %t - carattere di tabulazione + + + %T - ora corrente, con formato equivalente a %H:%M:%S + + + %u - giorno della settimana come numero decimale [1,7], in cui 1 rappresenta Lunedì + + + %U - numero della settimana nell'anno come numero decimale, partendo dalla prima Domenica come primo giorno della prima settimana + + + %V - Il numero della settimana ISO 8601:1988 come numero decimale, range da 01 a 53, dove la settimana 1 è la prima ad avere almeno 4 giorni nell'anno, e Lunedì è il primo giorno della settimana. + + + %w - giorno della settimana come numero decimale, dove la Domenica è 0 + + + %W - numero della settimana nell'anno come numero decimale, partendo dal primo lunedì come primo giorno della prima settimana + + + %x - rappresentazione preferita della data secondo l'impostazione di "locale", senza l'ora + + + %X - rappresentazione preferita dell'ora secondo l'impostazione di "locale", senza data + + + %y - anno come numero decimale su due cifre (range da 00 a 99) + + + %Y - anno come numero decimale su quattro cifre + + + %Z - time zone o nome o abbreviazione + + + %% - il carattere `%' + + + + Nota per i programmatori + + date_format è fondamentalmente un involucro per la funzione PHP strftime(). + Potete avere disponibili più o meno specificatori di conversione, in base + alla funzione strftime() del sistema su cui PHP è stato compilato. Controllate + le pagine di manuale del vostro sistema per una lista completa degli + specificatori validi. + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-default.xml b/docs/it/designers/language-modifiers/language-modifier-default.xml new file mode 100644 index 00000000..a66d4356 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-default.xml @@ -0,0 +1,89 @@ + + + + default + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + stringa + No + vuoto + E' il valore di default da stampare se la variabile è vuota. + + + + + + E' usato per impostare un valore di default per una variabile. Se la + variabile è vuota o non impostata, il valore di default viene stampato + al suo posto. Prende un parametro. + + + default + +assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-escape.xml b/docs/it/designers/language-modifiers/language-modifier-escape.xml new file mode 100644 index 00000000..3e4f8333 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-escape.xml @@ -0,0 +1,102 @@ + + + + escape + + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Valori possibili + Default + Descrizione + + + + + 1 + stringa + No + html,htmlall,url,quotes,hex,hexentity,javascript + html + E' il tipo di escape da utilizzare. + + + + + + E' usato per fare un escape di tipo html, url, su apici per una variabile + su cui non sia già stato fatto l'escape, hex (esadecimale), hexentity o + javascript. + Per default viene applicato un escape di tipo html. + + + escape + +assign('articleTitle', "'Stiff Opposition Expected to Casketless Funeral Plan'"); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + *} +{$articleTitle|escape:"htmlall"} {* escapes ALL html entities *} +{$articleTitle|escape:"url"} +{$articleTitle|escape:"quotes"} +{$EmailAddress|escape:"hexentity"} +]]> + + Questo stamperà: + + +bob@me.net +]]> + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-indent.xml b/docs/it/designers/language-modifiers/language-modifier-indent.xml new file mode 100644 index 00000000..c9bcb07e --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-indent.xml @@ -0,0 +1,118 @@ + + + + indent + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + intero + No + 4 + Stabilisce di quanti caratteri deve essere l'indentazione. + + + 2 + stringa + No + (uno spazio) + Questo è il carattere usato per l'indentazione. + + + + + + Questo modificatore effettua un'indentazione della stringa ad ogni riga, per + default di 4 caratteri. Come parametro opzionale si può specificare di quanti + caratteri deve essere l'indentazione. Si può indicare anche, come secondo + parametro opzionale, quale carattere usare per l'indentazione (usare "\t" + per il tabulatore). + + + indent + +assign('articleTitle', 'NJ judge to rule on nude beach. +Sun or rain expected today, dark tonight. +Statistics show that teen pregnancy drops off significantly after 25.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-lower.xml b/docs/it/designers/language-modifiers/language-modifier-lower.xml new file mode 100644 index 00000000..cf1f698e --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-lower.xml @@ -0,0 +1,60 @@ + + + + lower + + Si usa per trasformare una variabile in lettere minuscole. + + + lower + +assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-nl2br.xml b/docs/it/designers/language-modifiers/language-modifier-nl2br.xml new file mode 100644 index 00000000..2f6cb651 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-nl2br.xml @@ -0,0 +1,60 @@ + + + + nl2br + + Tutti i caratteri di interruzione di linea verranno convertiti in tag + <br /> nella variabile data. E' equivalente alla funzione PHP + nl2br(). + + + nl2br + +assign('articleTitle', "Sun or rain expected\ntoday, dark tonight"); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + +today, dark tonight +]]> + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-regex-replace.xml b/docs/it/designers/language-modifiers/language-modifier-regex-replace.xml new file mode 100644 index 00000000..8e005bb8 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-regex-replace.xml @@ -0,0 +1,98 @@ + + + + regex_replace + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + stringa + + nessuno + E' l'espressione regolare da sostituire. + + + 2 + stringa + + nessuno + E' la stringa di testo da usare per la sostituzione. + + + + + + Un 'trova e sostituisci' di una espressione regolare su una variabile. + Usare la sintassi per preg_replace() dal manuale PHP. + + + regex_replace + +assign('articleTitle', "Infertility unlikely to\nbe passed on, experts say."); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-replace.xml b/docs/it/designers/language-modifiers/language-modifier-replace.xml new file mode 100644 index 00000000..863e48cc --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-replace.xml @@ -0,0 +1,96 @@ + + + + replace + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + stringa + + nessuno + E' la stringa di testo da sostituire. + + + 2 + stringa + + nessuno + E' la stringa di testo da usare per la sostituzione. + + + + + + Una semplice ricerca e sostituzione su una variabile. + + + replace + +assign('articleTitle', "Child's Stool Great for Use in Garden."); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-spacify.xml b/docs/it/designers/language-modifiers/language-modifier-spacify.xml new file mode 100644 index 00000000..485dc6b6 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-spacify.xml @@ -0,0 +1,88 @@ + + + + spacify + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + stringa + No + uno spazio + E' ciò che viene inserito fra i caratteri della variabile. + + + + + + spacify è un modo per inserire uno spazio fra tutti i caratteri di una variabile. + E' possibile, opzionalmente, passare un diverso carattere (o stringa) da inserire. + + + spacify + +assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say.'); +$smarty->display('index.tpl'); +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-string-format.xml b/docs/it/designers/language-modifiers/language-modifier-string-format.xml new file mode 100644 index 00000000..ad982a53 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-string-format.xml @@ -0,0 +1,90 @@ + + + + string_format + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + stringa + + nessuno + E' il formato da usare. (sprintf) + + + + + + Questo è un modo di formattare stringhe, ad esempio per i numeri + decimali e altro. Utilizzare la sintassi della funzione PHP sprintf(). + + + string_format + +assign('number', 23.5787446); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-strip-tags.xml b/docs/it/designers/language-modifiers/language-modifier-strip-tags.xml new file mode 100644 index 00000000..67390c1b --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-strip-tags.xml @@ -0,0 +1,91 @@ + + + + strip_tags + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + booleano + No + true + Stabilisce se i tag saranno sostituiti con ' ' (true) o con '' (false) + + + + + + Questo elimina i tag di markup, cioè fondamentalmente qualsiasi cosa compresa + fra < and >. + + + strip_tags + +assign('articleTitle', "Blind Woman Gets New +Kidney from Dad she Hasn't Seen in years."); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + +New Kidney from Dad she Hasn't Seen in years. +Blind Woman Gets New Kidney from Dad she Hasn't Seen in years . +Blind Woman Gets New Kidney from Dad she Hasn't Seen in years. +]]> + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-strip.xml b/docs/it/designers/language-modifiers/language-modifier-strip.xml new file mode 100644 index 00000000..59abe1b9 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-strip.xml @@ -0,0 +1,71 @@ + + + + strip + + Sostituisce tutte le sequenze di spazi, a capo e tabulatori con + un singolo spazio o con la stringa fornita. + + + Nota + + Se volete fare lo strip su blocchi di testo del template, usate + la funzione strip. + + + + strip + +assign('articleTitle', "Grandmother of\neight makes\t hole in one."); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-truncate.xml b/docs/it/designers/language-modifiers/language-modifier-truncate.xml new file mode 100644 index 00000000..171a550b --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-truncate.xml @@ -0,0 +1,118 @@ + + + + truncate + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + intero + No + 80 + Stabilisce a quanti caratteri effettuare il troncamento. + + + 2 + stringa + No + ... + Testo da aggiungere in fondo quando c'è troncamento. + + + 3 + booleano + No + false + Stabilisce se troncare dopo una parola (false), o al carattere + esatto (true). + + + + + + Effettua il troncamento di una variabile ad un certo numero di caratteri, + per default 80. Come secondo parametro opzionale potete specificare una + stringa di testo da mostrare alla fine se la variabile è stata troncata. + Questi caratteri non vengono conteggiati nella lunghezza della + stringa troncata. Per default, truncate cercherà di tagliare la stringa al + termine di una parola. Se invece volete effettuare il troncamento alla + lunghezza esatta in caratteri, passate il terzo parametro opzionale come true. + + + truncate + +assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.'); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-upper.xml b/docs/it/designers/language-modifiers/language-modifier-upper.xml new file mode 100644 index 00000000..978bf96d --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-upper.xml @@ -0,0 +1,60 @@ + + + + upper + + Si usa per trasformare una variabile in maiuscolo. + + + upper + +assign('articleTitle', "If Strike isn't Settled Quickly it may Last a While."); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + + + + + Questo stamperà: + + + + + + + diff --git a/docs/it/designers/language-modifiers/language-modifier-wordwrap.xml b/docs/it/designers/language-modifiers/language-modifier-wordwrap.xml new file mode 100644 index 00000000..45fb55a9 --- /dev/null +++ b/docs/it/designers/language-modifiers/language-modifier-wordwrap.xml @@ -0,0 +1,130 @@ + + + + wordwrap + + + + + + + + + + Posizione del Parametro + Tipo + Obbligatorio + Default + Descrizione + + + + + 1 + intero + No + 80 + Stabilisce la larghezza della colonna. + + + 2 + stringa + No + \n + Questa è la stringa usata per andare a capo. + + + 3 + booleano + No + false + Stabilisce se andare a capo dopo una parola intera (false), + o al carattere esatto (true). + + + + + + Dispone una stringa su più righe usando come riferimento una certa + larghezza di colonna, per default 80. Come secondo parametro opzionale + potete specificare una stringa da usare per separare le righe (il + default è \n). Per default, wordwrap cercherà di andare a capo dopo + una parola intera. Se volete che vada a capo all'esatta larghezza in + caratteri, passate il terzo parametro opzionale come true. + + + wordwrap + +assign('articleTitle', "Blind woman gets new kidney from dad she hasn't seen in years."); +$smarty->display('index.tpl'); + +?> +]]> + + + Dove index.tpl è: + + +\n"} + +{$articleTitle|wordwrap:30:"\n":true} +]]> + + + Questo stamperà: + + + +from dad she hasn't seen in
+years. + +Blind woman gets new kidney +from dad she hasn't seen in +years. +]]> +
+
+
+ diff --git a/docs/it/designers/language-variables.xml b/docs/it/designers/language-variables.xml new file mode 100644 index 00000000..74e30653 --- /dev/null +++ b/docs/it/designers/language-variables.xml @@ -0,0 +1,51 @@ + + + + Variabili + + Smarty usa parecchi tipi diversi di variabili. Il tipo di variabile + dipende da quale simbolo si usa come prefisso (o come delimitatore). + + + In Smarty le variabili possono essere visualizzate direttamente oppure + usate come argomenti per gli attributi e i modificatori delle funzioni, + oppure in espressioni condizionali, ecc. Per stampare una variabile, + è sufficiente includerla fra i delimitatori in modo che sia l'unica + cosa contenuta fra essi. Esempi: + + +]]> + + + + &designers.language-variables.language-assigned-variables; + &designers.language-variables.language-config-variables; + &designers.language-variables.language-variables-smarty; + + + + diff --git a/docs/it/designers/language-variables/language-assigned-variables.xml b/docs/it/designers/language-variables/language-assigned-variables.xml new file mode 100644 index 00000000..2a70e9ad --- /dev/null +++ b/docs/it/designers/language-variables/language-assigned-variables.xml @@ -0,0 +1,173 @@ + + + + Variabili valorizzate da PHP + + Le variabili valorizzate da PHP sono referenziate facendole precedere + da un segno di dollaro $. Anche le variabili + valorizzate internamente al template con la funzione assign vengono visualizzate + in questo modo. + + + + variabili valorizzate + + +Your last login was on {$lastLoginDate}. +]]> + + + Questo visualizzerà: + + + +Your last login was on January 11th, 2001. +]]> + + + + + Array associativi + + Potete fare riferimento ad array associativi valorizzati da + PHP specificando l'indice dopo il punto '.' + + + accesso ad array associativi + +assign('Contacts', + array('fax' => '555-222-9876', + 'email' => 'zaphod@slartibartfast.com', + 'phone' => array('home' => '555-444-3333', + 'cell' => '555-111-1234'))); +$smarty->display('index.tpl'); +?> +]]> + + + dove il contenuto di index.tpl è: + + + +{$Contacts.email}
+{* ovviamente si possono usare anche array multidimensionali *} +{$Contacts.phone.home}
+{$Contacts.phone.cell}
+]]> +
+ + questo visualizzerà: + + + +zaphod@slartibartfast.com
+555-444-3333
+555-111-1234
+]]> +
+
+
+ + Array con indici numerici + + Potete referenziare gli array con il loro indice, come in PHP. + + + accesso agli array per indice numerico + +assign('Contacts', + array('555-222-9876', + 'zaphod@slartibartfast.com', + array('555-444-3333', + '555-111-1234'))); +$smarty->display('index.tpl'); + +?> +]]> + + + dove index.tpl è: + + + +{$Contacts[1]}
+{* anche qui si possono usare array multidimensionali *} +{$Contacts[2][0]}
+{$Contacts[2][1]}
+]]> +
+ + Questo visualizzerà: + + + +zaphod@slartibartfast.com
+555-444-3333
+555-111-1234
+]]> +
+
+
+ + Oggetti + + Le proprietà di oggetti valorizzate da PHP possono essere + referenziate indicando il nome della proprietà dopo il + simbolo '->' + + + accesso alle proprietà degli oggetti + +name}
+email: {$person->email}
+]]> +
+ + Questo visualizzerà: + + + +email: zaphod@slartibartfast.com
+]]> +
+
+
+
+ diff --git a/docs/it/designers/language-variables/language-config-variables.xml b/docs/it/designers/language-variables/language-config-variables.xml new file mode 100644 index 00000000..4a04de98 --- /dev/null +++ b/docs/it/designers/language-variables/language-config-variables.xml @@ -0,0 +1,113 @@ + + + + Variabili caricate da file di configurazione + + Le variabili caricate dai file di configurazione sono referenziate + racchiudendole fra due simboli cancelletto (#), oppure attraverso + la variabile $smarty.config. + La seconda sintassi è utile per includerle in valori di attributi + indicati fra virgolette. + + + variabili di configurazione + + foo.conf: + + + + + + index.tpl: + + + +{#pageTitle#} + + + + + + + +
FirstLastAddress
+ + +]]> +
+ + index.tpl: (sintassi alternativa) + + + +{$smarty.config.pageTitle} + + + + + + + +
FirstLastAddress
+ + +]]> +
+ + questo è l'output prodotto da entrambi gli esempi: + + + +This is mine + + + + + + + +
FirstLastAddress
+ + +]]> +
+
+ + Le variabili dei file di configurazione non possono essere usate + fino a dopo che sono state caricate dal file che le contiene. + Questa procedura viene spiegata più avanti in questo documento, + in config_load. + +
+ diff --git a/docs/it/designers/language-variables/language-variables-smarty.xml b/docs/it/designers/language-variables/language-variables-smarty.xml new file mode 100644 index 00000000..72cbcb68 --- /dev/null +++ b/docs/it/designers/language-variables/language-variables-smarty.xml @@ -0,0 +1,167 @@ + + + + La variabile riservata {$smarty} + + La variabile riservata {$smarty} può essere usate per accedere + a parecchie variabili speciali del template. Quella che segue + è la lista completa. + + + + Variabili della richiesta HTTP + + Alle variabili get, post, cookies, server, + environment e session si può accedere come mostrato negli + esempi qui sotto: + + + visualizzazione delle variabili request + + + + + + + Per motivi storici si può accedere direttamente a {$SCRIPT_NAME}, + sebbene {$smarty.server.SCRIPT_NAME} sia la maniera consigliata + per ottenere questo valore. + + + + + + {$smarty.now} + + Si può accedere al timestamp corrente con {$smarty.now}. + Questo numero rappresenta il numero di secondi passati dalla + cosiddetta Epoch (1° gennaio 1970) e può essere passato + direttamente al modificatore date_format per la visualizzazione. + + + uso di {$smarty.now} + + + + + + + {$smarty.const} + + Può essere usato per accedere direttamente alle costanti PHP. + + + uso di {$smarty.const} + + + + + + + + {$smarty.capture} + + Si può accedere all'output catturato attraverso il costrutto + {capture}..{/capture} con la variabile {$smarty}. Consultare + la sezione capture + per avere un esempio. + + + + + {$smarty.config} + + La variabile {$smarty} può essere usata per referenziare le + variabili di configurazione caricate. {$smarty.config.foo} + è sinonimo di {#foo#}. Consultare la sezione + config_load + per avere un esempio. + + + + + {$smarty.section}, {$smarty.foreach} + + La variabile {$smarty} può essere usata per referenziare + le proprietà dei loop 'section' e 'foreach'. Vedere la documentazione + di section e + foreach. + + + + + {$smarty.template} + + Questa variabile contiene il nome del template attualmente in fase di elaborazione. + + + + {$smarty.version} + + Questa variabile contiene la versione di Smarty con cui il template è stato compilato. + + + + {$smarty.ldelim} + + Questa variabile è usata per stampare il delimitatore sinistro di Smarty in modo + letterale, cioè senza che venga interpretato come tale. Vedere anche + {ldelim},{rdelim}. + + + + {$smarty.rdelim} + + Questa variabile è usata per stampare il delimitatore destro di Smarty in modo + letterale, cioè senza che venga interpretato come tale. Vedere anche + {ldelim},{rdelim}. + + + + + diff --git a/docs/it/getting-started.xml b/docs/it/getting-started.xml new file mode 100644 index 00000000..0e1e5268 --- /dev/null +++ b/docs/it/getting-started.xml @@ -0,0 +1,532 @@ + + + + Introduzione + + + Cos'è Smarty? + + Smarty è un motore di template per PHP. Più specificatamente, fornisce un + modo semplice di separare la logica e il contenuto dell'applicazione dalla + sua presentazione. Questo concetto si può 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. + + + 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é 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à al template + esattamente uguale a prima. Allo stesso modo, se il grafico vuole ridisegnare + completamente il template, questo non richiederà modifica alla logica + applicativa. Quindi, il programmatore può fare modifice alla logica senza + bisogno di ristrutturare i template, e il grafico può modificare i template + senza rovinare la logica dell'applicazione. + + + Uno degli obiettivi progettuali di Smarty è 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ò sapere che cosa è una cosa e cosa è l'altra, per + cui se mettete logica di business nel template sono affari vostri. Inoltre, + se non volete alcuna logica nei template, potete + sicuramente ottenere ciò riducendo il contenuto a solo testo e variabili. + + + Uno degli aspetti caratteristici di Smarty è 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ò avvantaggiarsi pienamente di strumenti per velocizzare + l'esecuzione come Zend Accelerator (&url.zend;) + o PHP Accelerator (&url.php-accelerator;). + + + Ecco alcune delle funzionalità di Smarty: + + + + + E' estremamente veloce. + + + + + E' efficiente, perché è l'analizzatore di PHP a fare il "lavoro sporco". + + + + + Non c'è sovraccarico per l'analisi del template, che viene compilato una sola volta. + + + + + E' abbastanza furbo da saper ricompilare solo i template che sono stati modificati. + + + + + Potete creare funzioni personalizzate + e modificatori di variabili personalizzati, + il che rende il linguaggio dei template estremamente estensibile. + + + + + La sintassi dei tag di delimitazione dei template è configurabile: potete usare + {}, {{}}, <!--{}-->, ecc. + + + + + I costrutti if/elseif/else/endif vengono passati al PHP, quindi la sintassi delle + espressioni condizionali può essere semplice o complicata a vostro piacimento. + + + + + E' consentito nidificare in maniera illimitata sezioni, test, ecc. + + + + + E' possibile incorporare direttamente codice PHP nei file di template, sebbene + non dovrebbe essercene bisogno (e nemmeno è raccomandato), essendo il motore + così personalizzabile. + + + + + Supporto nativo al caching + + + + + Scelta arbitraria dei sorgenti dei template + + + + + Funzioni personalizzate di gestione della cache + + + + + Architettura a plugin + + + + + + Installazione + + + Requisiti + + Smarty necessita di un web server su cui gira PHP 4.0.6 o successivo. + + + + + Installazione di base + + 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. + + + File delle librerie di Smarty + + + + + + Smarty usa una costante PHP chiamata SMARTY_DIR che contiene il path di sistema + della directory delle librerie di Smarty. Fondamentalmente, se la vostra applicazione + è in grado di trovare il file Smarty.class.php, non avete bisogno + di impostare SMARTY_DIR, in quanto Smarty la troverà da solo. Tuttavia, se + Smarty.class.php 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 deve + contenere uno slash (/) finale. + + + Ecco come creerete un'istanza di Smarty nei vostri script PHP: + + + + Creazione di un'istanza di Smarty + + +]]> + + + + + Provate a lanciare lo script qui sopra. Se ricevete un errore che dice che + il file Smarty.class.php non si trova, dovete fare una + delle cose seguenti: + + + + Fornire un percorso assoluto al file delle librerie + + +]]> + + + + + Aggiungere la directory della libreria all'include_path di PHP + + +]]> + + + + + Impostare manualmente la costante SMARTY_DIR + + +]]> + + + + + Ora che i file delle librerie sono al loro posto, è ora di impostare le + directory di Smarty per la vostra applicazione. Smarty necessita di quattro + directory chiamate (per default) templates, + templates_c, configs e cache. + Ciascuna di queste è definibile dalle proprietà + della classe Smarty $template_dir, + $compile_dir, $config_dir, e + $cache_dir rispettivamente. E' altamente raccomandato + impostare un insieme separato di queste directory per ogni applicazione che + userà Smarty. + + + Assicuratevi di conoscere il percorso della document root del vostro web + server. Nel nostro esempio, la document root è /web/www.mydomain.com/docs/. + 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 al di fuori della + document root. + + + 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 + /web/www.mydomain.com/smarty/guestbook/. + + + Avrete bisogno di almeno un file sotto la document root, e quello sarà lo script + a cui può accedere ilbrowser. Lo chiameremo index.php, + e lo metteremo in una sottodirectory della document root chiamata /guestbook/. + + + + Nota tecnica + + Conviene impostare il web server in modo che "index.php" possa essere identificato + come indice di default della directory, così se provate a richiedere + "http://www.example.com/guestbook/", lo script index.php verrà eseguito senza + "index.php" nell'URL. In Apache questo può essere impostato aggiungendo + "index.php" alla fine dell'impostazione DirectoryIndex (le voci vanno separate + con uno spazio l'una dall'altra). + + + + + Diamo un'occhiata alla struttura dei file fino ad ora: + + + + Esempio di struttura dei file + + + + + + + Smarty necessita del diritto di scrittura su $compile_dir e su + $cache_dir, 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 è 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. + + + + Impostazione dei permessi sui file + + + + + + + Nota tecnica + + 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à, + se volete guardare questi file), potete impostare invece 775. + + + + + Ora dobbiamo creare il file index.tpl che Smarty caricherà. Si troverà nella + directory $template_dir. + + + + Edit di /web/www.example.com/smarty/guestbook/templates/index.tpl + + + + + + + Nota tecnica + + {* Smarty *} è un commento del template. Non è obbligatorio, ma è 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. + + + + + 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ì anche per voi, oppure usate percorsi assoluti. + + + + Edit di /web/www.example.com/docs/guestbook/index.php + +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'); +?> +]]> + + + + + Nota tecnica + + Nell'esempio stiamo usando percorsi assoluti per tutte le directory + di Smarty. Se /web/www.example.com/smarty/guestbook/ fa + parte dell'include_path di PHP, questo non è necessario. Comunque, è più + efficiente e (per esperienza) meno soggetto ad errori usare percorsi + assoluti. Questo vi garantisce che Smarty prenda i file dalle directory + giuste. + + + + + Ora richiamate il file index.php dal browser. + Dovreste vedere "Hello, Ned!" + + + Avete completato l'installazione base di Smarty! + + + + Installazione avanzata + + + Questo è il seguito della installazione di base, siete pregati + di leggerla prima! + + + Un modo leggermente più flessibile di installare Smarty è di estendere la + classe e inizializzare il vostro ambiente di Smarty. Così, 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 + setup.php. Nel nostro ambiente di esempio, "/php/includes" fa parte + dell'include_path. Assicuratevi che sia così anche per voi, oppure usate percorsi + assoluti. + + + + Edit di /php/includes/guestbook/setup.php + +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'); + } + +} +?> +]]> + + + + + Ora modifichiamo il file index.php per usare setup.php: + + + + Edit di /web/www.example.com/docs/guestbook/index.php + +assign('name','Ned'); + +$smarty->display('index.tpl'); +?> +]]> + + + + + Come potete vedere, è molto semplice creare un'istanza di Smarty, basta usare + Smarty_GuestBook che inizializza automaticamente tutto ciò che serve alla + nostra applicazione. + + + + + + + + diff --git a/docs/it/language-defs.ent b/docs/it/language-defs.ent new file mode 100644 index 00000000..669a1884 --- /dev/null +++ b/docs/it/language-defs.ent @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/it/language-snippets.ent b/docs/it/language-snippets.ent new file mode 100644 index 00000000..edb3430a --- /dev/null +++ b/docs/it/language-snippets.ent @@ -0,0 +1,23 @@ + + + + Nota tecnica + + Il parametro merge rispetta le chiavi degli array, + quindi se fate un merge su due array a indici numerici rischiate che alcuni + valori vengano sovrascritti, o di avere indici in ordine non sequenziale. + Questo comportamento è diverso da quello della funzione array_merge() di PHP + che elimina le chiavi numeriche ed effettua una rinumerazione. + +'> + + + Come terzo parametro opzionale, potete passare un compile_id. + Questo nel caso in cui vogliate compilare versioni diverse dello stesso template, + oppure avere template diversi per lingue diverse. Un altro uso di compile_id + è quando usate più di una $template_dir ma soltanto una $compile_dir. + Impostate un compile_id diverso per ogni $template_dir, + altrimenti i template con lo stesso nome si sovrascriveranno a vicenda. + Potete anche impostare la variabile $compile_id + una volta sola invece di passarla ogni volta che chiamate questa funzione. +'> diff --git a/docs/it/livedocs.ent b/docs/it/livedocs.ent new file mode 100644 index 00000000..7e1e4b7e --- /dev/null +++ b/docs/it/livedocs.ent @@ -0,0 +1,7 @@ + + +'> +'> + + + diff --git a/docs/it/preface.xml b/docs/it/preface.xml new file mode 100644 index 00000000..4b359439 --- /dev/null +++ b/docs/it/preface.xml @@ -0,0 +1,94 @@ + + + + Prefazione + + Indubbiamente è una delle domande più frequenti sulle mailing list del + PHP: perché devo rendere i miei script PHP indipendenti dal layout? Se + è vero che PHP è conosciuto come "linguaggio di scripting incorporato in + HTML", dopo aver realizzato un paio di progetti che mescolano liberamente + PHP e HTML nasce l'idea che separare forma e contenuti sia una buona cosa. + Inoltre, in molte aziende i ruoli dei grafici (progettisti del layout) + e dei programmatori sono separati. La ricerca di una soluzione con i + template è quindi una conseguenza naturale. + + + Ad esempio, nella nostra azienda lo sviluppo di un applicazione procede + così: dopo che sono stati redatti i documenti con le specifiche richieste, + i progettisti delle interfacce creano dei modelli di interfaccia e li danno + ai programmatori. Questi implementano la logica di business in PHP e usano + i modelli di interfaccia per creare scheletri di template. A questo punto + il progetto passa al progettista HTML/creatore di layout per le pagine web, + che porta i template al loro massimo splendore. Il progetto potrebbe ancora + andare avanti e indietro un paio di volte fra programmazione e HTML. Quindi + è importante avere un buon supporto per i template, perché i programmatori + non vogliono avere a che fare con l'HTML e non vogliono che i progettisti + HTML facciano danni col codice PHP. I grafici hanno bisogno di supporto per + i file di configurazione, i blocchi dinamici e altri elementi di interfaccia, + ma non vogliono dover avere a che fare con le complicazioni del linguaggio + di programmazione. + + + Dando un'occhiata alle diverse soluzioni di template attualmente disponibili + per PHP, vediamo che la maggior parte di esse fornisce solo un modo rudimentale + per sostituire variabili nei template e hanno delle forme limitate di + funzionalità relative ai blocchi dinamici. Ma le nostre necessità erano un + po' maggiori di queste. Noi volevamo che i programmatori evitassero DEL TUTTO + di avere a che fare con l'HTML, ma questo era quasi inevitabile. Ad esempio, + se un grafico voleva alternare i colori di sfondo su un blocco dinamico, questo + doveva essere ottenuto preventivamente dal programmatore. Volevamo anche + che i grafici potessero usare i propri file di configurazione, ed importare + da questi le variabili nei template. La lista potrebbe continuare ancora. + + + Iniziammo così a scrivere una specifica per un motore di template verso la fine + del 1999. Dopo avere finito le specifiche, iniziammo a lavorare su un motore + scritto in C che, speravamo, avrebbe potuto essere incluso in PHP. Non solo + però ci scontrammo con molti complicati ostacoli tecnici, ma c'era anche un + dibattito molto acceso su cosa esattamente un motore di template avrebbe dovuto + fare e cosa no. Da questa esperienza decidemmo che il motore sarebbe stato scritto + in PHP come classe, in modo che ognuno potesse usarlo come gli pareva. Così + scrivemmo un motore che faceva proprio quello e SmartTemplate + venne alla luce (nota: questa classe non è mai stata pubblicata). Era una classe + che faceva quasi tutto quello che volevamo: sostituzione delle variabili, + supporto per l'inclusione di altri template, integrazione con i file di + configurazione, incorporazione del codice PHP, limitate funzionalità con + istruzioni 'if' e molti altri robusti blocchi dinamici che potevano essere + nidificati ripetutamente. Tutto questo veniva fatto con le espressioni regolari + e il codice che ne venne fuori era, per così dire, impenetrabile. Era anche + notevolmente lento nelle grosse applicazioni, per via di tutta l'analisi (parsing) + ed il lavoro sulle espressioni regolari che doveva fare ad ogni invocazione. + Il problema più grosso dal punto di vista di un programmatore era tutto il + lavoro necessario nello script PHP per creare ed elaborare i template ed i + blocchi dinamici. Come rendere tutto questo più semplice? + + + Così nacque la visione di quello che poi è diventato Smarty. Sappiamo quanto + è veloce PHP senza il sovraccarico dell'analisi dei template. Sappiamo anche + quanto il linguaggio possa apparire meticoloso ed estremamente noioso per il + grafico medio, e questo può essere mascherato con una sintassi di template + molto più semplice. Allora, perché non combinare i due punti di forza? Così + nacque Smarty... + + + + diff --git a/docs/it/programmers/advanced-features.xml b/docs/it/programmers/advanced-features.xml new file mode 100644 index 00000000..57b3279e --- /dev/null +++ b/docs/it/programmers/advanced-features.xml @@ -0,0 +1,35 @@ + + + + Funzioni avanzate +&programmers.advanced-features.advanced-features-objects; +&programmers.advanced-features.advanced-features-prefilters; + +&programmers.advanced-features.advanced-features-postfilters; + +&programmers.advanced-features.advanced-features-outputfilters; + +&programmers.advanced-features.section-template-cache-handler-func; + +&programmers.advanced-features.template-resources; + + diff --git a/docs/it/programmers/advanced-features/advanced-features-objects.xml b/docs/it/programmers/advanced-features/advanced-features-objects.xml new file mode 100644 index 00000000..092d0efe --- /dev/null +++ b/docs/it/programmers/advanced-features/advanced-features-objects.xml @@ -0,0 +1,114 @@ + + + + Oggetti + + Smarty consente di accedere agli oggetti PHP attraverso i template. Ci sono + due modi per farlo. Uno è registrare gli oggetti al template, quindi accedere + ad essi attraverso una sintassi simile a quella delle funzioni utente. L'altro + modo è di assegnare gli oggetti ai template ed accedere loro come ad una + qualsiasi variabile assegnata. Il primo metodo ha una sintassi del template + migliore. E' anche più sicuro, perché su un oggetto registrato potete impedire + l'accesso a certi metodi o proprietà. D'altra parte, su un oggetto registrato + non potete effettuare dei cicli o metterlo in un array di oggetti, ecc. + Il metodo che sceglierete dipenderà dalle vostre necessità, ma quando possibile + usate sempre il primo metodo, per mantenere la sintassi del template al massimo + della semplicità. + + + Se la security è abilitata, non è possibile accedere a metodi o funzioni private + (che cominciano con "_") dell'oggetto. Quando esistono un metodo e una proprietà + con lo stesso nome, verrà usato il metodo. + + + Potete impedire l'accesso a certi metodi e proprietà elencandoli in un array + come terzo parametro di registrazione. + + + Per default, i parametri passati agli oggetti attraverso i template sono + passati nello stesso modo in cui li leggono le funzioni utente. Il primo + parametro è un array associativo, e il secondo è l'oggetto smarty. Se + volete i parameteri passati uno alla volta per ogni argomento come nel + tradizionale passaggio di parametri per gli oggetti, impostate il quarto + parametro di registrazione a false. + + + Il quinto parametro opzionale ha effetto soltanto quando + format è true e + contiene una lista di metodi che devono essere trattati come + blocchi. Ciò significa che questi metodi hanno un tag di + chiusura nel template + ({foobar->meth2}...{/foobar->meth2}) e i + parametri passati al metodo hanno la stessa struttura di + quelli per le funzioni plugin per i blocchi. Questi metodi + quindi ricevono 4 parametri $params, + $content, &$smarty + e &$repeat e si comportano come + funzioni plugin per i blocchi. + + + usare un oggetto registrato o assegnato + +register_object("foobar",$myobj); +// se vogliamo impedire l'accesso a metodi o proprietà, elenchiamoli +$smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1')); +// se vogliamo usare il formato tradizionale per i parametri, passiamo un false +$smarty->register_object("foobar",$myobj,null,false); + +// Possiamo anche assegnare gli oggetti. Facciamolo per riferimento quando possibile. +$smarty->assign_by_ref("myobj", $myobj); + +$smarty->display("index.tpl"); +?> ++]]> + + + Ed ecco come accedere all'oggetto in index.tpl: + + +meth1 p1="foo" p2=$bar} + +{* possiamo anche assegnare l'output *} +{foobar->meth1 p1="foo" p2=$bar assign="output"} +the output was {$output} + +{* accediamo all'oggetto assegnato *} +{$myobj->meth1("foo",$bar)} +]]> + + + + diff --git a/docs/it/programmers/advanced-features/advanced-features-outputfilters.xml b/docs/it/programmers/advanced-features/advanced-features-outputfilters.xml new file mode 100644 index 00000000..cd5121b9 --- /dev/null +++ b/docs/it/programmers/advanced-features/advanced-features-outputfilters.xml @@ -0,0 +1,66 @@ + + + + Filtri di output + + Quando il template viene richiamato via display() o fetch(), è possibile + eseguire uno o più filtri sul suo output. Ciò è diverso dai postfiltri, + perché questi ultimi lavorano sul template compilato prima che venga + salvato su disco, mentre i filtri dioutput lavorano sull'output del + template quando viene eseguito. + + + + I filtri di output possono essere + registrati o caricati + dalla directory plugins con la funzione + load_filter() oppure impostando la + variabile $autoload_filters. + Smarty passerà l'output del template come primo argomento, e si aspetterà + che la funzione restituisca il risultato dell'esecuzione. + + + uso di un filtro di output + +register_outputfilter("protect_email"); +$smarty->display("index.tpl"); + +// ora ogni indirizzo email nell'output del template avrà una semplice +// protezione contro gli spambot +?> +]]> + + + + diff --git a/docs/it/programmers/advanced-features/advanced-features-postfilters.xml b/docs/it/programmers/advanced-features/advanced-features-postfilters.xml new file mode 100644 index 00000000..f42c6e75 --- /dev/null +++ b/docs/it/programmers/advanced-features/advanced-features-postfilters.xml @@ -0,0 +1,62 @@ + + + + Postfiltri + + I postfiltri sui template sono funzioni PHP che vengono eseguite sui template + dopo la compilazione. I postfiltri possono essere + registrati oppure caricati + dalla directory plugins con la funzione load_filter() o impostando la variabile + $autoload_filters. + Smarty passerà il codice del template compilato come primo parametro, + e si aspetterà che la funzione restituisca il template risultante. + + + uso di un postfiltro + +\n\"; ?>\n".$tpl_source; +} + +// registriamo il postfiltro +$smarty->register_postfilter("add_header_comment"); +$smarty->display("index.tpl"); +?> +]]> + + + Questo farà sì che il template compilato index.tpl appaia così: + + + +{* resto del template... *} +]]> + + + + diff --git a/docs/it/programmers/advanced-features/advanced-features-prefilters.xml b/docs/it/programmers/advanced-features/advanced-features-prefilters.xml new file mode 100644 index 00000000..c3f62d7a --- /dev/null +++ b/docs/it/programmers/advanced-features/advanced-features-prefilters.xml @@ -0,0 +1,58 @@ + + + + Prefiltri + + I prefiltri sui template sono funzioni PHP che vengono eseguite sui template + prima della compilazione. Sono utili per pre-processare i template allo + scopo di rimuovere commenti non desiderati, tenere d'occhio ciò che i + progettisti mettono nei template, ecc. I prefiltri possono essere + registrati oppure caricati + dalla directory plugins con la funzione load_filter() o impostando la variabile + $autoload_filters. + Smarty passerà il codice sorgente del template come primo parametro, + e si aspetterà che la funzione restituisca il codice sorgente risultante. + + + uso di un prefiltro + +/U","",$tpl_source); +} + +// registriamo il prefiltro +$smarty->register_prefilter("remove_dw_comments"); +$smarty->display("index.tpl"); +?> +]]> + + + Questo rimuoverà tutti i commenti dal sorgente del template. + + + + diff --git a/docs/it/programmers/advanced-features/section-template-cache-handler-func.xml b/docs/it/programmers/advanced-features/section-template-cache-handler-func.xml new file mode 100644 index 00000000..79982f7b --- /dev/null +++ b/docs/it/programmers/advanced-features/section-template-cache-handler-func.xml @@ -0,0 +1,157 @@ + + + + Funzione di gestione della Cache + + Come alternativa all'uso del meccanismo di default per la cache basato + sui file, potete specificare una funzione personalizzata di gestione + che verrà usata per leggere, scrivere ed eliminare i file in cache. + + + Create una funzione nella vostra applicazione che Smarty userà come + gestore della cache. Impostate il nome di questa funzione nella variabile + di classe $cache_handler_func. + Smarty ora userà questa funzione per gestire i dati della cache. Il primo + parametro è l'azione, che può essere 'read', 'write' o 'clear'. Il + secondo parametro è l'oggetto Smarty. Il terzo parametro è il contenuto in + cache. In una 'write', Smarty passa il contenuto da mettere in cache in + questo parametro. In una 'read', Smarty si aspetta che la funzione prenda questo + parametro per riferimento e che lo riempia con i dati della cache. + In una 'clear', il parametro non viene usato, quindi passate una variabile + dummy. Il quarto parametro è il nome del file del template (necessario + per le read e le write), il quinto parametro è il cache_id (opzionale), e + il sesto è il compile_id (opzionale). + + + Nota: l'ultimo parametro ($exp_time) è stato aggiunto in Smarty-2.6.0. + + + esempio con l'uso di MySQL per la cache + +cache_handler_func = 'mysql_cache_handler'; + +$smarty->display('index.tpl'); + + +il database mysql avrà questo formato: + +create database SMARTY_CACHE; + +create table CACHE_PAGES( +CacheID char(32) PRIMARY KEY, +CacheContents MEDIUMTEXT NOT NULL +); + +*/ + +function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null, $exp_time=null) +{ + // impostiamo i dati d'accesso al db + $db_host = 'localhost'; + $db_user = 'myuser'; + $db_pass = 'mypass'; + $db_name = 'SMARTY_CACHE'; + $use_gzip = false; + + // creiamo un cache id unico + $CacheID = md5($tpl_file.$cache_id.$compile_id); + + if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) { + $smarty_obj->_trigger_error_msg("cache_handler: could not connect to database"); + return false; + } + mysql_select_db($db_name); + + switch ($action) { + case 'read': + // leggiamo la cache dal database + $results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'"); + if(!$results) { + $smarty_obj->_trigger_error_msg("cache_handler: query failed."); + } + $row = mysql_fetch_array($results,MYSQL_ASSOC); + + if($use_gzip && function_exists("gzuncompress")) { + $cache_content = gzuncompress($row["CacheContents"]); + } else { + $cache_content = $row["CacheContents"]; + } + $return = $results; + break; + case 'write': + // salviamo la cache sul database + + if($use_gzip && function_exists("gzcompress")) { + // compress the contents for storage efficiency + $contents = gzcompress($cache_content); + } else { + $contents = $cache_content; + } + $results = mysql_query("replace into CACHE_PAGES values( + '$CacheID', + '".addslashes($contents)."') + "); + if(!$results) { + $smarty_obj->_trigger_error_msg("cache_handler: query failed."); + } + $return = $results; + break; + case 'clear': + // eliminiamo i dati in cache + if(empty($cache_id) && empty($compile_id) && empty($tpl_file)) { + // eliminiamo tutto + $results = mysql_query("delete from CACHE_PAGES"); + } else { + $results = mysql_query("delete from CACHE_PAGES where CacheID='$CacheID'"); + } + if(!$results) { + $smarty_obj->_trigger_error_msg("cache_handler: query failed."); + } + $return = $results; + break; + default: + // errore, azione non prevista + $smarty_obj->_trigger_error_msg("cache_handler: unknown action \"$action\""); + $return = false; + break; + } + mysql_close($link); + return $return; + +} + +?> +]]> + + + + diff --git a/docs/it/programmers/advanced-features/template-resources.xml b/docs/it/programmers/advanced-features/template-resources.xml new file mode 100644 index 00000000..b9e21dcb --- /dev/null +++ b/docs/it/programmers/advanced-features/template-resources.xml @@ -0,0 +1,246 @@ + + + + Risorse + + I template possono arrivare da varie risorse. Quando fate la display o la + fetch di un template, o quando fate la include da un altro template, + fornite un tipo di risorsa, seguito dal percorso appropriato e dal nome + del template. Se non viene esplicitamente indicato un tipo di risorsa, + viene utilizzato il valore di $default_resource_type. + + + Template della $template_dir + + I template provenienti dalla $template_dir non hanno bisogno che + indichiate un tipo di risorsa, sebbene possiate indicare file: per + coerenza. Basta che forniate il percorso per il template che volete + usare, relativo alla directory radice $template_dir. + + + uso dei template della $template_dir + +display("index.tpl"); +$smarty->display("admin/menu.tpl"); +$smarty->display("file:admin/menu.tpl"); // equivale al precedente +?> +]]> + + + And from within Smarty template: + + + + + + + + Template da qualsiasi directory + + I template che si trovano al di fuori della $template_dir richiedono + obbligatoriamente che indichiate il tipo di risorsa file: seguito + dal percorso assoluto e dal nome del template. + + + uso dei template da qualsiasi directory + +display("file:/export/templates/index.tpl"); +$smarty->display("file:/path/to/my/templates/menu.tpl"); +?> +]]> + + + And from within Smarty template: + + + + + + + + Percorsi su Windows + + Se usate una macchina Windows, i percorsi di solito comprendono + una lettera di drive (C:) all'inizio del percorso. Accertatevi + di usare "file:" nel path, per evitare conflitti di namespace e + ottenere i risultati voluti. + + + uso di template da percorsi di Windows + +display("file:C:/export/templates/index.tpl"); +$smarty->display("file:F:/path/to/my/templates/menu.tpl"); +?> + +{* dall'interno di un template *} +{include file="file:D:/usr/local/share/templates/navigation.tpl"} +]]> + + + + + + + Template da altre risorse + + Potete ottenere template da qualsiasi risorsa alla quale sia + possibile accedere con PHP: database, socket, directory LDAP, e + così via. Potete farlo scrivendo una funzione plugin per le + risorse e registrandola a Smarty. + + + + Consultate la sezione plugin + risorse per maggiori informazioni sulle funzioni che + dovrete creare. + + + + + Notate che non è possibile modificare il comportamento della risorsa + file, ma potete fornire una risorsa che legge i + template dal filesystem in maniera diversa registrandola con un altro + nome di risorsa. + + + + uso di risorse personalizzate + +query("select tpl_source + from my_table + where tpl_name='$tpl_name'"); + if ($sql->num_rows) { + $tpl_source = $sql->record['tpl_source']; + return true; + } else { + return false; + } +} + +function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj) +{ + // qui facciamo una chiamata al db per riempire $tpl_timestamp. + $sql = new SQL; + $sql->query("select tpl_timestamp + from my_table + where tpl_name='$tpl_name'"); + if ($sql->num_rows) { + $tpl_timestamp = $sql->record['tpl_timestamp']; + return true; + } else { + return false; + } +} + +function db_get_secure($tpl_name, &$smarty_obj) +{ + // ipotizziamo che tutti i template siano sicuri + return true; +} + +function db_get_trusted($tpl_name, &$smarty_obj) +{ + // non usata per i template +} + +// register the resource name "db" +$smarty->register_resource("db", array("db_get_template", + "db_get_timestamp", + "db_get_secure", + "db_get_trusted")); + +// uso della risorsa dallo script php +$smarty->display("db:index.tpl"); +?> +]]> + + + And from within Smarty template: + + + + + + + + + Funzione di gestione dei template di default + + Potete specificare una funzione da usare per ottenere i contenuti + del template nel caso in cui non sia possibile leggerlo dalla + risorsa appropriata. Un uso possibile di questa funzione è di + creare al volo template che non esistono. + + + uso della funzione di gestione dei template di default + +_write_file($resource_name,$template_source); + return true; + } + } else { + // non è un file + return false; + } +} + +// impostate il gestore di default +$smarty->default_template_handler_func = 'make_template'; +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions.xml b/docs/it/programmers/api-functions.xml new file mode 100644 index 00000000..d1eb9eab --- /dev/null +++ b/docs/it/programmers/api-functions.xml @@ -0,0 +1,72 @@ + + + + Methods + + +
+ + <para></para> + </section> + </partintro> +&programmers.api-functions.api-append; +&programmers.api-functions.api-append-by-ref; +&programmers.api-functions.api-assign; +&programmers.api-functions.api-assign-by-ref; +&programmers.api-functions.api-clear-all-assign; +&programmers.api-functions.api-clear-all-cache; +&programmers.api-functions.api-clear-assign; +&programmers.api-functions.api-clear-cache; +&programmers.api-functions.api-clear-compiled-tpl; +&programmers.api-functions.api-clear-config; +&programmers.api-functions.api-config-load; +&programmers.api-functions.api-display; +&programmers.api-functions.api-fetch; +&programmers.api-functions.api-get-config-vars; +&programmers.api-functions.api-get-registered-object; +&programmers.api-functions.api-get-template-vars; +&programmers.api-functions.api-is-cached; +&programmers.api-functions.api-load-filter; +&programmers.api-functions.api-register-block; +&programmers.api-functions.api-register-compiler-function; +&programmers.api-functions.api-register-function; +&programmers.api-functions.api-register-modifier; +&programmers.api-functions.api-register-object; +&programmers.api-functions.api-register-outputfilter; +&programmers.api-functions.api-register-postfilter; +&programmers.api-functions.api-register-prefilter; +&programmers.api-functions.api-register-resource; +&programmers.api-functions.api-trigger-error; + +&programmers.api-functions.api-template-exists; +&programmers.api-functions.api-unregister-block; +&programmers.api-functions.api-unregister-compiler-function; +&programmers.api-functions.api-unregister-function; +&programmers.api-functions.api-unregister-modifier; +&programmers.api-functions.api-unregister-object; +&programmers.api-functions.api-unregister-outputfilter; +&programmers.api-functions.api-unregister-postfilter; +&programmers.api-functions.api-unregister-prefilter; +&programmers.api-functions.api-unregister-resource; + +</reference> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-append-by-ref.xml b/docs/it/programmers/api-functions/api-append-by-ref.xml new file mode 100644 index 00000000..c0bf8ba0 --- /dev/null +++ b/docs/it/programmers/api-functions/api-append-by-ref.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.append.by.ref"> + <refnamediv> + <refname>append_by_ref</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>append_by_ref</methodname> + <methodparam><type>string</type><parameter>varname</parameter></methodparam> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + <methodparam choice="opt"><type>bool</type><parameter>merge</parameter></methodparam> + </methodsynopsis> + <para> + Si usa per aggiungere valori al template per riferimento. + Se aggiungete una variabile per riferimento e poi cambiate il + suo valore, il template vedrà il valore modificato. Per gli + oggetti, append_by_ref() evita anche la copia in memoria + dell'oggetto aggiunto. Consultate il manuale di PHP sui riferimenti + alle variabili per una spiegazione approfondita. Se passate il + terzo parametro opzionale a true, il valore verrà fuso nell'array + corrente invece che aggiunto. + </para> + ¬e.parameter.merge; + <example> + <title>append_by_ref + +append_by_ref("Name", $myname); +$smarty->append_by_ref("Address", $address); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-append.xml b/docs/it/programmers/api-functions/api-append.xml new file mode 100644 index 00000000..2fa56475 --- /dev/null +++ b/docs/it/programmers/api-functions/api-append.xml @@ -0,0 +1,64 @@ + + + + + append + + + + + <methodsynopsis> + <type>void</type><methodname>append</methodname> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <methodsynopsis> + <type>void</type><methodname>append</methodname> + <methodparam><type>string</type><parameter>varname</parameter></methodparam> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + <methodparam choice="opt"><type>bool</type><parameter>merge</parameter></methodparam> + </methodsynopsis> + <para> + Si usa per aggiungere un elemento ad un array. Se aggiungete un valore + stringa, verrà convertito in un elemento di array e aggiunto. Potete + passare esplicitamente coppie nome/valore, oppure array associativi + contenenti le coppie nome/valore. Se passate il terzo parametro opzionale + a true, il valore verrà fuso nell'array corrente invece che aggiunto. + </para> + ¬e.parameter.merge; + <example> + <title>append + +append("Name", "Fred"); +$smarty->append("Address", $address); + +// passaggio di un array associativo +$smarty->append(array("city" => "Lincoln", "state" => "Nebraska")); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-assign-by-ref.xml b/docs/it/programmers/api-functions/api-assign-by-ref.xml new file mode 100644 index 00000000..d201d697 --- /dev/null +++ b/docs/it/programmers/api-functions/api-assign-by-ref.xml @@ -0,0 +1,64 @@ + + + + + assign_by_ref + + + + + <methodsynopsis> + <type>void</type><methodname>assign_by_ref</methodname> + <methodparam><type>string</type><parameter>varname</parameter></methodparam> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <para> + Si usa per assegnare valori ai template per riferimento invece di farne una + copia. Consultate il manuale PHP sui riferimenti alle variabili per una + spiegazione. + </para> + <note> + <title>Nota tecnica + + Questo metodo si usa per assegnare valori ai template per riferimento. + Se assegnate una variabile per riferimento e poi cambiate il suo + valore, il template vedrà il valore modificato. Per gli oggetti, + assign_by_ref() evita anche la copia in memoria dell'oggetto + assegnato. Consultate il manuale PHP sui riferimenti alle variabili + per una spiegazione approfondita. + + + + assign_by_ref + +assign_by_ref('Name', $myname); +$smarty->assign_by_ref('Address', $address); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-assign.xml b/docs/it/programmers/api-functions/api-assign.xml new file mode 100644 index 00000000..91163b7c --- /dev/null +++ b/docs/it/programmers/api-functions/api-assign.xml @@ -0,0 +1,60 @@ + + + + + assign + + + + + <methodsynopsis> + <type>void</type><methodname>assign</methodname> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <methodsynopsis> + <type>void</type><methodname>assign</methodname> + <methodparam><type>string</type><parameter>varname</parameter></methodparam> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <para> + Si usa per assegnare valori ai template. Potete passare + esplicitamente coppie nome/valore, o array associativi + contenenti le coppie nome/valore. + </para> + <example> + <title>assign + +assign('Name', 'Fred'); +$smarty->assign('Address', $address); + +// passaggio di un array associativo +$smarty->assign(array("city" => "Lincoln", "state" => "Nebraska")); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-clear-all-assign.xml b/docs/it/programmers/api-functions/api-clear-all-assign.xml new file mode 100644 index 00000000..27c887fb --- /dev/null +++ b/docs/it/programmers/api-functions/api-clear-all-assign.xml @@ -0,0 +1,49 @@ + + + + + clear_all_assign + + + + + <methodsynopsis> + <type>void</type><methodname>clear_all_assign</methodname> + <void /> + </methodsynopsis> + <para> + Annulla i valori di tutte le variabili assegnate. + </para> + <example> + <title>clear_all_assign + +clear_all_assign(); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-clear-all-cache.xml b/docs/it/programmers/api-functions/api-clear-all-cache.xml new file mode 100644 index 00000000..833759c5 --- /dev/null +++ b/docs/it/programmers/api-functions/api-clear-all-cache.xml @@ -0,0 +1,51 @@ + + + + + clear_all_cache + + + + + <methodsynopsis> + <type>void</type><methodname>clear_all_cache</methodname> + <methodparam choice="opt"><type>int</type><parameter>expire_time</parameter></methodparam> + </methodsynopsis> + <para> + Annulla l'intera cache del template. Come parametro opzionale + potete fornire un'età minima in secondi che i file della + cache devono avere prima di essere eliminati. + </para> + <example> + <title>clear_all_cache + +clear_all_cache(); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-clear-assign.xml b/docs/it/programmers/api-functions/api-clear-assign.xml new file mode 100644 index 00000000..5363a31f --- /dev/null +++ b/docs/it/programmers/api-functions/api-clear-assign.xml @@ -0,0 +1,53 @@ + + + + + clear_assign + + + + + <methodsynopsis> + <type>void</type><methodname>clear_assign</methodname> + <methodparam><type>mixed</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <para> + Annulla il valore di una variabile assegnata in precedenza. + Può essere un valore singolo, o un array di valori. + </para> + <example> + <title>clear_assign + +clear_assign("Name"); + +// annullamento di più variabili +$smarty->clear_assign(array("Name", "Address", "Zip")); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-clear-cache.xml b/docs/it/programmers/api-functions/api-clear-cache.xml new file mode 100644 index 00000000..6f7fdb2f --- /dev/null +++ b/docs/it/programmers/api-functions/api-clear-cache.xml @@ -0,0 +1,63 @@ + + + + + clear_cache + + + + + <methodsynopsis> + <type>void</type><methodname>clear_cache</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>expire_time</parameter></methodparam> + </methodsynopsis> + <para> + Elimina la cache per un <parameter>template</parameter> specifico. Se + avete più cache per questo template, potete eliminarne una specifica + fornendo il <parameter>cache_id</parameter> come secondo parametro. + Potete anche passare un <parameter>compile_id</parameter> come terzo + parametro. Potete "raggruppare" i template in modo da rimuoverli in + gruppo. Leggete la <link linkend="caching">sezione sul caching</link> + per maggiori informazioni. Come quarto parametro opzionale potete fornire + un'età minima in secondi che il file di cache deve avere prima di essere + eliminato. + </para> + <example> + <title>clear_cache + +clear_cache("index.tpl"); + +// eliminazione di una particolare cache in un template a più cache +$smarty->clear_cache("index.tpl", "CACHEID"); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-clear-compiled-tpl.xml b/docs/it/programmers/api-functions/api-clear-compiled-tpl.xml new file mode 100644 index 00000000..fb5e581e --- /dev/null +++ b/docs/it/programmers/api-functions/api-clear-compiled-tpl.xml @@ -0,0 +1,61 @@ + + + + + clear_compiled_tpl + + + + + <methodsynopsis> + <type>void</type><methodname>clear_compiled_tpl</methodname> + <methodparam choice="opt"><type>string</type><parameter>tpl_file</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>exp_time</parameter></methodparam> + </methodsynopsis> + <para> + Elimina la versione compilata dello specifico template indicato, + o tutti file di template compilati se non ne viene specificato uno. + Se passate un compile_id solo il template compilato relativo a questo + compile_id viene eliminato. Se passate un exp_time, solo i template + compilati con un'età maggiore di exp_time (in secondi) vengono + eliminati; per default tutti i template compilati vengono eliminati, + indipendentemente dalla loro età. Questa funzione è solo per uso + avanzato, normalmente non ne avrete bisogno. + </para> + <example> + <title>clear_compiled_tpl + +clear_compiled_tpl("index.tpl"); + +// eliminazione di tutti i template compilati +$smarty->clear_compiled_tpl(); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-clear-config.xml b/docs/it/programmers/api-functions/api-clear-config.xml new file mode 100644 index 00000000..242eb5e3 --- /dev/null +++ b/docs/it/programmers/api-functions/api-clear-config.xml @@ -0,0 +1,54 @@ + + + + + clear_config + + + + + <methodsynopsis> + <type>void</type><methodname>clear_config</methodname> + <methodparam choice="opt"><type>string</type><parameter>var</parameter></methodparam> + </methodsynopsis> + <para> + Elimina tutte le variabili di configurazione assegnate. Se viene + fornito un nome di variabile, soltanto quella variabile viene + eliminata. + </para> + <example> + <title>clear_config + +clear_config(); + +// eliminazione di una variabile +$smarty->clear_config('foobar'); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-config-load.xml b/docs/it/programmers/api-functions/api-config-load.xml new file mode 100644 index 00000000..bf4ce983 --- /dev/null +++ b/docs/it/programmers/api-functions/api-config-load.xml @@ -0,0 +1,67 @@ + + + + + config_load + + + + + <methodsynopsis> + <type>void</type><methodname>config_load</methodname> + <methodparam><type>string</type><parameter>file</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>section</parameter></methodparam> + </methodsynopsis> + <para> + Carica i dati del file di configurazione <parameter>file</parameter> e + li assegna al template. Funziona esattamente come la funzione del + template <link linkend="language.function.config.load">config_load</link>. + </para> + <note> + <title>Nota tecnica + + A partire da Smarty 2.4.0, le variabili dei template vengono + mantenute fra le diverse chiamate di fetch() e display(). Le + variabili di configurazione caricate con config_load() hanno + sempre uno scope globale. Anche i file di configurazione vengono + compilati per una esecuzione più veloce, e rispettano le + impostazioni di force_compile + e compile_check. + + + + config_load + +config_load('my.conf'); + +// caricamento di una sezione +$smarty->config_load('my.conf', 'foobar'); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-display.xml b/docs/it/programmers/api-functions/api-display.xml new file mode 100644 index 00000000..553e7c46 --- /dev/null +++ b/docs/it/programmers/api-functions/api-display.xml @@ -0,0 +1,104 @@ + + + + + display + + + + + <methodsynopsis> + <type>void</type><methodname>display</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + </methodsynopsis> + <para> + Visualizza il template. Dovete fornire un tipo e percorso + corretti per la <link linkend="template.resources">risorsa del template</link>. + Come secondo parametro opzionale potete passare una cache id. + Consultate la <link linkend="caching">sezione sul caching</link> per + maggiori informazioni. + </para> + ¶meter.compileid; + <example> + <title>display + +caching = true; + +// faccio le chiamate al db solo se +// non esiste la cache +if(!$smarty->is_cached("index.tpl")) { + + // dummy up some data + $address = "245 N 50th"; + $db_data = array( + "City" => "Lincoln", + "State" => "Nebraska", + "Zip" => "68502" + ); + + $smarty->assign("Name","Fred"); + $smarty->assign("Address",$address); + $smarty->assign($db_data); + +} + +// visualizzo l'output +$smarty->display("index.tpl"); +?> +]]> + + + + Usate la sintassi delle risorse dei template + per visualizzare file che si trovano al di fuori della + directory $template_dir. + + + esempi di visualizzazione di risorse di template + +display("/usr/local/include/templates/header.tpl"); + +// percorso assoluto (equivale al precedente) +$smarty->display("file:/usr/local/include/templates/header.tpl"); + +// percorso assoluto windows (OBBLIGATORIO il prefisso "file:") +$smarty->display("file:C:/www/pub/templates/header.tpl"); + +// inclusione dalla risorsa di template di nome "db" +$smarty->display("db:header.tpl"); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-fetch.xml b/docs/it/programmers/api-functions/api-fetch.xml new file mode 100644 index 00000000..7e2ff060 --- /dev/null +++ b/docs/it/programmers/api-functions/api-fetch.xml @@ -0,0 +1,86 @@ + + + + + fetch + + + + + <methodsynopsis> + <type>string</type><methodname>fetch</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + </methodsynopsis> + <para> + Questo metodo restituisce l'output del template invece di + visualizzarlo. Dovete fornire un tipo e percorso corretti per + la <link linkend="template.resources">risorsa del template</link>. + Come secondo parametro opzionale potete passare una cache id. + Consultate la <link linkend="caching">sezione sul caching</link> per + maggiori informazioni. + </para> + ¶meter.compileid; + <para> + <example> + <title>fetch + +caching = true; + +// faccio le chiamate al db solo se +// non esiste la cache +if(!$smarty->is_cached("index.tpl")) { + + // dummy up some data + $address = "245 N 50th"; + $db_data = array( + "City" => "Lincoln", + "State" => "Nebraska", + "Zip" => "68502" + ); + + $smarty->assign("Name","Fred"); + $smarty->assign("Address",$address); + $smarty->assign($db_data); + +} + +// catturo l'output +$output = $smarty->fetch("index.tpl"); + +// qui faccio qualcosa con $output + +echo $output; +?> +]]> + + + + + + diff --git a/docs/it/programmers/api-functions/api-get-config-vars.xml b/docs/it/programmers/api-functions/api-get-config-vars.xml new file mode 100644 index 00000000..45d2a6c7 --- /dev/null +++ b/docs/it/programmers/api-functions/api-get-config-vars.xml @@ -0,0 +1,57 @@ + + + + + get_config_vars + + + + + <methodsynopsis> + <type>array</type><methodname>get_config_vars</methodname> + <methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam> + </methodsynopsis> + <para> + Restituisce il valore della variabile di configurazione data, se è stata + caricata. Se non viene passato un parametro viene restituito un array + di tutte le variabili di configurazione caricate. + </para> + <example> + <title>get_config_vars + +get_config_vars('foo'); + +// recupero tutte le variabili di configurazione caricate +$config_vars = $smarty->get_config_vars(); + +// diamo un'occhiata +print_r($config_vars); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-get-registered-object.xml b/docs/it/programmers/api-functions/api-get-registered-object.xml new file mode 100644 index 00000000..e048a2ad --- /dev/null +++ b/docs/it/programmers/api-functions/api-get-registered-object.xml @@ -0,0 +1,57 @@ + + + + + get_registered_object + + + + + <methodsynopsis> + <type>array</type><methodname>get_registered_object</methodname> + <methodparam><type>string</type><parameter>object_name</parameter></methodparam> + </methodsynopsis> + <para> + Restituisce un riferimento a un oggetto registrato. E' utile quando, + dall'interno di una funzione utente, avete bisogno di accedere + direttamente a un oggetto registrato. + </para> + <example> + <title>get_registered_object + +get_registered_object($params['object']); + // $obj_ref ora è un riferimento all'oggetto + } +} +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-get-template-vars.xml b/docs/it/programmers/api-functions/api-get-template-vars.xml new file mode 100644 index 00000000..d949d5a1 --- /dev/null +++ b/docs/it/programmers/api-functions/api-get-template-vars.xml @@ -0,0 +1,57 @@ + + + + + get_template_vars + + + + + <methodsynopsis> + <type>array</type><methodname>get_template_vars</methodname> + <methodparam choice="opt"><type>string</type><parameter>varname</parameter></methodparam> + </methodsynopsis> + <para> + Restituisce il valore della variabile data assegnata al template. + Se non viene fornito il parametro viene restituito un array di + tutte le variabili assegnate. + </para> + <example> + <title>get_template_vars + +get_template_vars('foo'); + +// recupero tutte le variabili assegnate al template +$tpl_vars = $smarty->get_template_vars(); + +// diamo un'occhiata +print_r($tpl_vars); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-is-cached.xml b/docs/it/programmers/api-functions/api-is-cached.xml new file mode 100644 index 00000000..b9042e6a --- /dev/null +++ b/docs/it/programmers/api-functions/api-is-cached.xml @@ -0,0 +1,107 @@ + + + + + is_cached + + + + + <methodsynopsis> + <type>bool</type><methodname>is_cached</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam> + <methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam> + </methodsynopsis> + <para> + Restituisce &true; se è presente una cache valida per questo template. + Funziona soltanto se <link linkend="variable.caching">caching</link> è + impostato a true. + </para> + <example> + <title>is_cached + +caching = true; + +if(!$smarty->is_cached("index.tpl")) { +// faccio le chiamate al database, assegno le variabili +} + +$smarty->display("index.tpl"); +?> +]]> + + + + Potete passare anche una cache id come secondo parametro + opzionale, nel caso vogliate cache multiple per il template + dato. + + + Potete fornire un compile id come terzo parametro opzionale. + Se lo omettete, viene usato il valore della variabile persistente + $compile_id. + + + Se non volete passare una cache id ma volete passare un compile + id dovete passare null come cache id. + + + is_cached con template a cache multiple + +caching = true; + +if(!$smarty->is_cached("index.tpl", "FrontPage")) { + // faccio le chiamate al database, assegno le variabili +} + +$smarty->display("index.tpl", "FrontPage"); +?> +]]> + + + + + + Nota tecnica + + Se is_cached restituisce true, in realtà carica + l'output in cache e lo memorizza internamente. Ogni chiamata + successiva a display() o a + fetch() restituirà questo output + memorizzato internamente, e non cercherà di ricaricare il file + della cache. Questo evita una situazione che potrebbe verificarsi + quando un secondo processo elimina la cache nell'intervallo fra + la chiamata a is_cached e quella a display, nell'esempio visto + prima. Questo significa anche che le chiamate a + clear_cache() ed altre + modifiche fatte sulle impostazioni della cache potrebbero non avere + effetto dopo che is_cached ha restituito true. + + + + + diff --git a/docs/it/programmers/api-functions/api-load-filter.xml b/docs/it/programmers/api-functions/api-load-filter.xml new file mode 100644 index 00000000..9b6330e8 --- /dev/null +++ b/docs/it/programmers/api-functions/api-load-filter.xml @@ -0,0 +1,54 @@ + + + + + load_filter + + + + + <methodsynopsis> + <type>void</type><methodname>load_filter</methodname> + <methodparam><type>string</type><parameter>type</parameter></methodparam> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Questa funzione può essere usata per caricare un plugin filtro. + Il primo parametro specifica il tipo di filtro da caricare e può + avere uno di questi valori: 'pre', 'post' o 'output'. Il secondo + parametro specifica il nome del plugin filtro, ad esempio 'trim'. + </para> + <example> + <title>caricamento di plugin filtro + +load_filter('pre', 'trim'); // carico un prefiltro di nome 'trim' +$smarty->load_filter('pre', 'datefooter'); // carico un altro prefiltro di nome 'datefooter' +$smarty->load_filter('output', 'compress'); // carico un filtro di output di nome 'compress' +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-register-block.xml b/docs/it/programmers/api-functions/api-register-block.xml new file mode 100644 index 00000000..3b522fbf --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-block.xml @@ -0,0 +1,93 @@ + + + + + register_block + + + + + <methodsynopsis> + <type>void</type><methodname>register_block</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> + <methodparam><type>bool</type><parameter>cacheable</parameter></methodparam> + <methodparam><type>mixed</type><parameter>cache_attrs</parameter></methodparam> + </methodsynopsis> + <para> + Si può usare questa funzione per registrare dinamicamente + funzioni plugin per i blocchi. Dovete fornire il nome della + funzione di blocco, seguito dalla funzione PHP da richiamare + che implementa tale funzione. + </para> + <para> + Il parametro <parameter>impl</parameter>, contenente la funzione + callback, può avere uno dei seguenti valori: (a) una stringa + contenente il nome della funzione (b) un array nella forma + <literal>array(&$oggetto, $metodo)</literal>, dove + <literal>&$oggetto</literal> è il riferimento ad un + oggetto e <literal>$metodo</literal> è una stringa contenente + il nome di un metodo (c) un array nella forma + <literal>array(&$classe, $metodo)</literal> dove + <literal>$classe</literal> è un nome di classe e + <literal>$metodo</literal> è un metodo statico della + classe. + </para> + <para> + <parameter>cacheable</parameter> e <parameter>cache_attrs</parameter> + possono essere omessi nella maggioranza dei casi. Consultate + <link linkend="caching.cacheable">Controllo della Cache per l'output dei Plugins</link> + per capire come usarli. + </para> + <example> + <title>register_block + +register_block("translate", "do_translation"); + +function do_translation ($params, $content, &$smarty, &$repeat) +{ + if (isset($content)) { + $lang = $params['lang']; + // faccio la traduzione di $content + return $translation; + } +} +?> +]]> + + + dove il template è: + + + + + + + + diff --git a/docs/it/programmers/api-functions/api-register-compiler-function.xml b/docs/it/programmers/api-functions/api-register-compiler-function.xml new file mode 100644 index 00000000..75dc93c6 --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-compiler-function.xml @@ -0,0 +1,62 @@ + + + + + register_compiler_function + + + + + <methodsynopsis> + <type>bool</type><methodname>register_compiler_function</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> + <methodparam><type>bool</type><parameter>cacheable</parameter></methodparam> + </methodsynopsis> + <para> + Si può usare questa funzione per registrare dinamicamente + una funzione plugin di compilazione. Dovete fornire il nome della + funzione di compilazione, seguito dalla funzione PHP da richiamare + che la implementa. + </para> + <para> + Il parametro <parameter>impl</parameter>, contenente la funzione + callback, può avere uno dei seguenti valori: (a) una stringa + contenente il nome della funzione (b) un array nella forma + <literal>array(&$oggetto, $metodo)</literal>, dove + <literal>&$oggetto</literal> è il riferimento ad un + oggetto e <literal>$metodo</literal> è una stringa contenente + il nome di un metodo (c) un array nella forma + <literal>array(&$classe, $metodo)</literal> dove + <literal>$classe</literal> è un nome di classe e + <literal>$metodo</literal> è un metodo statico della + classe. + </para> + <para> + <parameter>cacheable</parameter> può essere omesso + nella maggioranza dei casi. Consultate <link + linkend="caching.cacheable">Controllo della Cache per l'output dei Plugins</link> + per capire come usarlo. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-register-function.xml b/docs/it/programmers/api-functions/api-register-function.xml new file mode 100644 index 00000000..aed0796f --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-function.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.function"> + <refnamediv> + <refname>register_function</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_function</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> + <methodparam choice="opt"><type>bool</type><parameter>cacheable</parameter></methodparam> + <methodparam choice="opt"><type>mixed</type><parameter>cache_attrs</parameter></methodparam> + </methodsynopsis> + <para> + Si può usare questa funzione per registrare dinamicamente + funzioni plugin per i template. Dovete fornire il nome della + funzione di template, seguito dalla funzione PHP da richiamare + che implementa tale funzione. + </para> + <para> + Il parametro <parameter>impl</parameter>, contenente la funzione + callback, può avere uno dei seguenti valori: (a) una stringa + contenente il nome della funzione (b) un array nella forma + <literal>array(&$oggetto, $metodo)</literal>, dove + <literal>&$oggetto</literal> è il riferimento ad un + oggetto e <literal>$metodo</literal> è una stringa contenente + il nome di un metodo (c) un array nella forma + <literal>array(&$classe, $metodo)</literal> dove + <literal>$classe</literal> è un nome di classe e + <literal>$metodo</literal> è un metodo statico della + classe. + </para> + <para> + <parameter>cacheable</parameter> e <parameter>cache_attrs</parameter> + possono essere omessi nella maggioranza dei casi. Consultate + <link linkend="caching.cacheable">Controllo della Cache per l'output dei Plugins</link> + per capire come usarli. + </para> + <example> + <title>register_function + +register_function("date_now", "print_current_date"); + +function print_current_date($params) +{ + if(empty($params['format'])) { + $format = "%b %e, %Y"; + } else { + $format = $params['format']; + return strftime($format,time()); + } +} + +// ora potete usare questa funzione in Smarty per stampare la data attuale: {date_now} +// oppure {date_now format="%Y/%m/%d"} per formattarla. +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-register-modifier.xml b/docs/it/programmers/api-functions/api-register-modifier.xml new file mode 100644 index 00000000..997f28ae --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-modifier.xml @@ -0,0 +1,68 @@ + + + + + register_modifier + + + + + <methodsynopsis> + <type>void</type><methodname>register_modifier</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>mixed</type><parameter>impl</parameter></methodparam> + </methodsynopsis> + <para> + Potete usarla per registrare dinamicamente plugin modificatori. + Passate il nome del modificatore del template, seguito dalla funzione + PHP che lo implementa. + </para> + <para> + Il parametro <parameter>impl</parameter>, contenente la funzione + callback, può avere uno dei seguenti valori: (a) una stringa + contenente il nome della funzione (b) un array nella forma + <literal>array(&$oggetto, $metodo)</literal>, dove + <literal>&$oggetto</literal> è il riferimento ad un + oggetto e <literal>$metodo</literal> è una stringa contenente + il nome di un metodo (c) un array nella forma + <literal>array(&$classe, $metodo)</literal> dove + <literal>$classe</literal> è un nome di classe e + <literal>$metodo</literal> è un metodo statico della + classe. + </para> + <example> + <title>register_modifier + +register_modifier("sslash", "stripslashes"); + +// ora potete usare {$var|sslash} per togliere gli slash dalle variabili +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-register-object.xml b/docs/it/programmers/api-functions/api-register-object.xml new file mode 100644 index 00000000..db06322f --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-object.xml @@ -0,0 +1,44 @@ + + + + + register_object + + + + + <methodsynopsis> + <type>void</type><methodname>register_object</methodname> + <methodparam><type>string</type><parameter>object_name</parameter></methodparam> + <methodparam><type>object</type><parameter>object</parameter></methodparam> + <methodparam><type>array</type><parameter>allowed_methods_properties</parameter></methodparam> + <methodparam><type>boolean</type><parameter>format</parameter></methodparam> + <methodparam><type>array</type><parameter>block_methods</parameter></methodparam> + </methodsynopsis> + <para> + Serve a registrare un oggetto per poterlo usare nei template. + Consultate la <link linkend="advanced.features.objects">sezione oggetti</link> + del manuale per gli esempi. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-register-outputfilter.xml b/docs/it/programmers/api-functions/api-register-outputfilter.xml new file mode 100644 index 00000000..324049e0 --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-outputfilter.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.outputfilter"> + <refnamediv> + <refname>register_outputfilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_outputfilter</methodname> + <methodparam><type>mixed</type><parameter>function</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per registrare dinamicamente filtri di output che + devono operare sull'output di un template prima che venga + visualizzato. Consultate i <link linkend="advanced.features.outputfilters">filtri + di output sui template</link> per maggiori informazioni su come + impostare una funzione di filtro di output. + </para> + <para> + Il parametro <parameter>function</parameter>, contenente la funzione + callback, può avere uno dei seguenti valori: (a) una stringa + contenente il nome della funzione (b) un array nella forma + <literal>array(&$oggetto, $metodo)</literal>, dove + <literal>&$oggetto</literal> è il riferimento ad un + oggetto e <literal>$metodo</literal> è una stringa contenente + il nome di un metodo (c) un array nella forma + <literal>array(&$classe, $metodo)</literal> dove + <literal>$classe</literal> è un nome di classe e + <literal>$metodo</literal> è un metodo statico della + classe. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-register-postfilter.xml b/docs/it/programmers/api-functions/api-register-postfilter.xml new file mode 100644 index 00000000..13ad534c --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-postfilter.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.postfilter"> + <refnamediv> + <refname>register_postfilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_postfilter</methodname> + <methodparam><type>mixed</type><parameter>function</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per registrare dinamicamente filtri da eseguire + sui template dopo la compilazione ("postfiltri"). Consultate + <link linkend="advanced.features.postfilters">postfiltri sui + template</link> per maggiori informazioni su come impostare + una funzione postfiltro. + </para> + <para> + Il parametro <parameter>function</parameter>, contenente la funzione + callback, può avere uno dei seguenti valori: (a) una stringa + contenente il nome della funzione (b) un array nella forma + <literal>array(&$oggetto, $metodo)</literal>, dove + <literal>&$oggetto</literal> è il riferimento ad un + oggetto e <literal>$metodo</literal> è una stringa contenente + il nome di un metodo (c) un array nella forma + <literal>array(&$classe, $metodo)</literal> dove + <literal>$classe</literal> è un nome di classe e + <literal>$metodo</literal> è un metodo statico della + classe. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-register-prefilter.xml b/docs/it/programmers/api-functions/api-register-prefilter.xml new file mode 100644 index 00000000..585cd28e --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-prefilter.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.prefilter"> + <refnamediv> + <refname>register_prefilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_prefilter</methodname> + <methodparam><type>mixed</type><parameter>function</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per registrare dinamicamente filtri da eseguire sui + template prima della compilazione ("prefiltri"). Consultate + <link linkend="advanced.features.prefilters">prefiltri sui + template</link> per maggiori informazioni su come impostare + funzioni prefiltro. + </para> + <para> + Il parametro <parameter>function</parameter>, contenente la funzione + callback, può avere uno dei seguenti valori: (a) una stringa + contenente il nome della funzione (b) un array nella forma + <literal>array(&$oggetto, $metodo)</literal>, dove + <literal>&$oggetto</literal> è il riferimento ad un + oggetto e <literal>$metodo</literal> è una stringa contenente + il nome di un metodo (c) un array nella forma + <literal>array(&$classe, $metodo)</literal> dove + <literal>$classe</literal> è un nome di classe e + <literal>$metodo</literal> è un metodo statico della + classe. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-register-resource.xml b/docs/it/programmers/api-functions/api-register-resource.xml new file mode 100644 index 00000000..799bce96 --- /dev/null +++ b/docs/it/programmers/api-functions/api-register-resource.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.register.resource"> + <refnamediv> + <refname>register_resource</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>register_resource</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + <methodparam><type>array</type><parameter>resource_funcs</parameter></methodparam> + </methodsynopsis> + <para> + Usatelo per registrare dinamicamente un plugin risorsa per Smarty. + Passate il nome della risorsa e l'array delle funzioni PHP che + la implementano. Consultate + <link linkend="template.resources">risorse per i template</link> + per maggiori informazioni su come impostare una funzione per + caricare i template. + </para> + <note> + <title>Nota tecnica + + Il nome di una risorsa deve avere un minimo di due caratteri di + lunghezza. Nomi di risorsa di un solo carattere verranno ignorati + ed usati come parte del percorso del file; ad es. + $smarty->display('c:/path/to/index.tpl'); + + + + L'array di funzioni php resource_funcs + deve avere 4 o 5 elementi. Con 4 elementi, questi saranno le + funzioni callback per le rispettive funzioni "source", "timestamp", + "secure" e "trusted" della risorsa. Con 5 elementi, il primo + deve essere il riferimento all'oggetto oppure il nome della + classe relativi all'oggetto o alla classe che implementano + la risorsa, mentre i 4 elementi successivi saranno i nomi + dei metodi che implementano "source", "timestamp", + "secure" e "trusted". + + + register_resource + +register_resource("db", array("db_get_template", +"db_get_timestamp", +"db_get_secure", +"db_get_trusted")); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-template-exists.xml b/docs/it/programmers/api-functions/api-template-exists.xml new file mode 100644 index 00000000..c75cca63 --- /dev/null +++ b/docs/it/programmers/api-functions/api-template-exists.xml @@ -0,0 +1,40 @@ + + + + + template_exists + + + + + <methodsynopsis> + <type>bool</type><methodname>template_exists</methodname> + <methodparam><type>string</type><parameter>template</parameter></methodparam> + </methodsynopsis> + <para> + Questa funzione verifica se il template specificato esiste. Accetta + il percorso del template sul filesystem oppure una stringa che + identifica la risorsa del template. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-trigger-error.xml b/docs/it/programmers/api-functions/api-trigger-error.xml new file mode 100644 index 00000000..748361c9 --- /dev/null +++ b/docs/it/programmers/api-functions/api-trigger-error.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.trigger.error"> + <refnamediv> + <refname>trigger_error</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>trigger_error</methodname> + <methodparam><type>string</type><parameter>error_msg</parameter></methodparam> + <methodparam choice="opt"><type>int</type><parameter>level</parameter></methodparam> + </methodsynopsis> + <para> + Questa funzione può essere usata per produrre in output un messaggio + di errore attraverso Smarty. Il parametro <parameter>level</parameter> + può contenere uno dei valori usati per la funzione PHP trigger_error(), + cioè E_USER_NOTICE, E_USER_WARNING, ecc. Per default il suo valore è + E_USER_WARNING. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-unregister-block.xml b/docs/it/programmers/api-functions/api-unregister-block.xml new file mode 100644 index 00000000..f7e3878e --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-block.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.block"> + <refnamediv> + <refname>unregister_block</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_block</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare dinamicamente una funzione plugin + per i blocchi. Passate in <parameter>name</parameter> il + nome della funzione di blocco. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-unregister-compiler-function.xml b/docs/it/programmers/api-functions/api-unregister-compiler-function.xml new file mode 100644 index 00000000..64415dcb --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-compiler-function.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.compiler.function"> + <refnamediv> + <refname>unregister_compiler_function</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_compiler_function</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare dinamicamente una funzione di compilazione. + Passate in <parameter>name</parameter> il nome della funzione. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-unregister-function.xml b/docs/it/programmers/api-functions/api-unregister-function.xml new file mode 100644 index 00000000..89459f9d --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-function.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.function"> + <refnamediv> + <refname>unregister_function</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_function</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare dinamicamente una funzione plugin per + i template. Passate il nome della funzione. + </para> + <example> + <title>unregister_function + +unregister_function("fetch"); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-unregister-modifier.xml b/docs/it/programmers/api-functions/api-unregister-modifier.xml new file mode 100644 index 00000000..e435b3b2 --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-modifier.xml @@ -0,0 +1,51 @@ + + + + + unregister_modifier + + + + + <methodsynopsis> + <type>void</type><methodname>unregister_modifier</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare dinamicamente plugin modificatori. Passate + il nome del modificatore del template da eliminare. + </para> + <example> + <title>unregister_modifier + +unregister_modifier("strip_tags"); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-functions/api-unregister-object.xml b/docs/it/programmers/api-functions/api-unregister-object.xml new file mode 100644 index 00000000..8b6c76ea --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-object.xml @@ -0,0 +1,38 @@ + + + + + unregister_object + + + + + <methodsynopsis> + <type>void</type><methodname>unregister_object</methodname> + <methodparam><type>string</type><parameter>object_name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare un oggetto. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-unregister-outputfilter.xml b/docs/it/programmers/api-functions/api-unregister-outputfilter.xml new file mode 100644 index 00000000..4391dde6 --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-outputfilter.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.outputfilter"> + <refnamediv> + <refname>unregister_outputfilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_outputfilter</methodname> + <methodparam><type>string</type><parameter>function_name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare dinamicamente un filtro di output. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-unregister-postfilter.xml b/docs/it/programmers/api-functions/api-unregister-postfilter.xml new file mode 100644 index 00000000..e40a6386 --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-postfilter.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.postfilter"> + <refnamediv> + <refname>unregister_postfilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_postfilter</methodname> + <methodparam><type>string</type><parameter>function_name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare dinamicamente un postfiltro. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-unregister-prefilter.xml b/docs/it/programmers/api-functions/api-unregister-prefilter.xml new file mode 100644 index 00000000..3d7f2f74 --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-prefilter.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.prefilter"> + <refnamediv> + <refname>unregister_prefilter</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_prefilter</methodname> + <methodparam><type>string</type><parameter>function_name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare dinamicamente un prefiltro. + </para> + </refsect1> +</refentry> +<!-- 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 +--> diff --git a/docs/it/programmers/api-functions/api-unregister-resource.xml b/docs/it/programmers/api-functions/api-unregister-resource.xml new file mode 100644 index 00000000..92031ab3 --- /dev/null +++ b/docs/it/programmers/api-functions/api-unregister-resource.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- $Revision$ --> +<refentry id="api.unregister.resource"> + <refnamediv> + <refname>unregister_resource</refname> + <refpurpose></refpurpose> + </refnamediv> + <refsect1> + <title /> + <methodsynopsis> + <type>void</type><methodname>unregister_resource</methodname> + <methodparam><type>string</type><parameter>name</parameter></methodparam> + </methodsynopsis> + <para> + Usatela per eliminare dinamicamente un plugin risorsa. Passate + il nome della risorsa. + </para> + <example> + <title>unregister_resource + +unregister_resource("db"); +?> +]]> + + + + + diff --git a/docs/it/programmers/api-variables.xml b/docs/it/programmers/api-variables.xml new file mode 100644 index 00000000..2cf9c26d --- /dev/null +++ b/docs/it/programmers/api-variables.xml @@ -0,0 +1,61 @@ + + + + Variabili + +&programmers.api-variables.variable-template-dir; +&programmers.api-variables.variable-compile-dir; +&programmers.api-variables.variable-config-dir; +&programmers.api-variables.variable-plugins-dir; +&programmers.api-variables.variable-debugging; +&programmers.api-variables.variable-debug-tpl; +&programmers.api-variables.variable-debugging-ctrl; +&programmers.api-variables.variable-autoload-filters; +&programmers.api-variables.variable-compile-check; +&programmers.api-variables.variable-force-compile; +&programmers.api-variables.variable-caching; +&programmers.api-variables.variable-cache-dir; +&programmers.api-variables.variable-cache-lifetime; +&programmers.api-variables.variable-cache-handler-func; +&programmers.api-variables.variable-cache-modified-check; +&programmers.api-variables.variable-config-overwrite; +&programmers.api-variables.variable-config-booleanize; +&programmers.api-variables.variable-config-read-hidden; +&programmers.api-variables.variable-config-fix-newlines; +&programmers.api-variables.variable-default-template-handler-func; +&programmers.api-variables.variable-php-handling; +&programmers.api-variables.variable-security; +&programmers.api-variables.variable-secure-dir; +&programmers.api-variables.variable-security-settings; +&programmers.api-variables.variable-trusted-dir; +&programmers.api-variables.variable-left-delimiter; +&programmers.api-variables.variable-right-delimiter; +&programmers.api-variables.variable-compiler-class; +&programmers.api-variables.variable-request-vars-order; +&programmers.api-variables.variable-request-use-auto-globals; +&programmers.api-variables.variable-error-reporting; +&programmers.api-variables.variable-compile-id; +&programmers.api-variables.variable-use-sub-dirs; +&programmers.api-variables.variable-default-modifiers; +&programmers.api-variables.variable-default-resource-type; + + diff --git a/docs/it/programmers/api-variables/variable-autoload-filters.xml b/docs/it/programmers/api-variables/variable-autoload-filters.xml new file mode 100644 index 00000000..e4f196db --- /dev/null +++ b/docs/it/programmers/api-variables/variable-autoload-filters.xml @@ -0,0 +1,43 @@ + + + + $autoload_filters + + Se ci sono alcuni filtri che volete caricare ad ogni chiamata del + template, potete specificarli usando questa variabile e Smarty li + caricherà automaticamente. La variabile è un array associativo + dove le chiavi sono i tipi di filtro ed i valori sono array con i + nomi dei filtri. Ad esempio: + + +autoload_filters = array('pre' => array('trim', 'stamp'), + 'output' => array('convert')); +?> +]]> + + + + + + diff --git a/docs/it/programmers/api-variables/variable-cache-dir.xml b/docs/it/programmers/api-variables/variable-cache-dir.xml new file mode 100644 index 00000000..76b8b70d --- /dev/null +++ b/docs/it/programmers/api-variables/variable-cache-dir.xml @@ -0,0 +1,48 @@ + + + + $cache_dir + + Questo è il nome della directory dove vengono salvati i file + della cache. Per default è "./cache", che significa che Smarty + cercherà la directory della cache nella stessa directory dello + script php in esecuzione. Potete anche usare una funzione + personalizzata di gestione della cache, che ignorerà questa + impostazione. + + + Nota tecnica + + Questa impostazione deve essere un percorso relativo o assoluto. + include_path non viene usato per i file in scrittura. + + + + Nota tecnica + + E' sconsigliato mettere questa directory sotto la + document root del web server. + + + + + diff --git a/docs/it/programmers/api-variables/variable-cache-handler-func.xml b/docs/it/programmers/api-variables/variable-cache-handler-func.xml new file mode 100644 index 00000000..8b207a4d --- /dev/null +++ b/docs/it/programmers/api-variables/variable-cache-handler-func.xml @@ -0,0 +1,33 @@ + + + + $cache_handler_func + + Potete fornire una funzione personalizzata di gestione dei file + della cache invece di usare il metodo incorporato che usa la + $cache_dir. Consultate la sezione funzione di + gestione della cache per i dettagli. + + + + diff --git a/docs/it/programmers/api-variables/variable-cache-lifetime.xml b/docs/it/programmers/api-variables/variable-cache-lifetime.xml new file mode 100644 index 00000000..dee866c6 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-cache-lifetime.xml @@ -0,0 +1,53 @@ + + + + $cache_lifetime + + E' la durata in secondi della validità di un file di cache. Una volta che + questo tempo è scaduto, la cache verrà rigenerata. $caching deve essere + impostato a "true" perché $cache_lifetime abbia significato. Il valore + -1 forza la cache a non scadere mai. Il valore 0 farà sì che la cache + venga sempre rigenerata (è utile solo in fase di test, per disabilitare + il caching un metodo più efficiente è impostare $caching a false.) + + + Se $force_compile è + abilitato, i file della cache verranno rigenerati ogni volta, disabilitando + in effetti il caching. Potete eliminare tutti i file della cache + con la funzione clear_all_cache(), oppure singoli + file (o gruppi di file) con la funzione clear_cache(). + + + Nota tecnica + + Se volete dare a certi template un particolare tempo di vita della cache, + potete farlo impostando $caching = 2, + quindi dando il valore che vi interessa a $cache_lifetime subito prima + di chiamare display() o fetch(). + + + + + diff --git a/docs/it/programmers/api-variables/variable-cache-modified-check.xml b/docs/it/programmers/api-variables/variable-cache-modified-check.xml new file mode 100644 index 00000000..aa31957b --- /dev/null +++ b/docs/it/programmers/api-variables/variable-cache-modified-check.xml @@ -0,0 +1,33 @@ + + + + $cache_modified_check + + Se è impostato a true, Smarty rispetterà l'header If-Modified-Since + spedito dal client. Se il timestamp del file in cache non è + cambiato dall'ultima visita, verrà inviato un header + "304 Not Modified" invece del contenuto. Questo funziona solo sul + contenuto in cache senza tag insert. + + + + diff --git a/docs/it/programmers/api-variables/variable-caching.xml b/docs/it/programmers/api-variables/variable-caching.xml new file mode 100644 index 00000000..d7808a11 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-caching.xml @@ -0,0 +1,45 @@ + + + + $caching + + Questa variabile dice a Smarty se mettere in cache oppure no l'output + dei template. Per default è impostata a 0, o disabilitata. Se i vostri + template generano contenuto ridondante, è consigliabile attivare il + caching. Ne deriveranno significativi guadagni di prestazioni. Potete + anche avere più di una cache per lo stesso template. I valori 1 e 2 + abilitano il caching. 1 dice a Smarty di usare l'attuale variabile + $cache_lifetime per determinare se la cache è scaduta. Il valore 2 dice + a Smarty di usare il valore di cache_lifetime del momento in cui la + cache è stata generata. In questo modo potete impostare il cache_lifeteime + subito prima di caricare il template per avere un controllo granulare + su quando quella particolare cache scadrà. Consultate anche is_cached. + + + Se $compile_check è abilitato, il contenuto in cache verrà rigenerato + quando i file del template o di configurazione che fanno parte di questa + cache vengono modificati. Se è abilitato $force_compile, il contenuto + in cache verrà rigenerato ogni volta. + + + diff --git a/docs/it/programmers/api-variables/variable-compile-check.xml b/docs/it/programmers/api-variables/variable-compile-check.xml new file mode 100644 index 00000000..f19ea2bd --- /dev/null +++ b/docs/it/programmers/api-variables/variable-compile-check.xml @@ -0,0 +1,43 @@ + + + + $compile_check + + Ad ogni chiamata dell'applicazione PHP, Smarty controlla se il template + corrente è stato modificato (cioè se il timestamp è cambiato) dall'ultima + volta che è stato compilato. Se è cambiato, Smarty ricompila il template. + Se il template non è stato mai compilato, sarà compilato indipendentemente + da questa impostazione. Per default questa variabile è impostata a true. + Una volta che l'applicazione viene messa in produzione (quind i template + non cambieranno più), il passo di compile_check non è più necessario. + Assicuratevi di impostare $compile_check a "false" per massimizzare le + prestazioni. Notate che se impostate questo valore a "false" e un file + di template viene modificato, *non* vedrete la modifica fino a quando + il template non viene ricompilato. Se sono abilitati il caching e il + compile_check, i file della cache verranno rigenerati quando un file di + template o un file di configurazione fra quelli interessati vengono + modificati. Consultate $force_compile o clear_compiled_tpl. + + + diff --git a/docs/it/programmers/api-variables/variable-compile-dir.xml b/docs/it/programmers/api-variables/variable-compile-dir.xml new file mode 100644 index 00000000..ac13c6c8 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-compile-dir.xml @@ -0,0 +1,46 @@ + + + + $compile_dir + + Questo è il nome della directory dove vengono messi i template + compilati. Per default è "./templates_c", che significa che + Smarty cercherà la directory di compilazione sotto la stessa + directory dello script php in esecuzione. + + + Nota tecnica + + Questa impostazione deve essere un percorso relativo + o assoluto. include_path non viene usata per i file + in scrittura. + + + + Nota tecnica + + E' sconsigliato mettere questa directory sotto la + document root del web server. + + + + diff --git a/docs/it/programmers/api-variables/variable-compile-id.xml b/docs/it/programmers/api-variables/variable-compile-id.xml new file mode 100644 index 00000000..a4bdf825 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-compile-id.xml @@ -0,0 +1,31 @@ + + + + $compile_id + + Identificatore persistente di compilazione. In alternativa a passare + lo stesso compile_id ad ogni chiamata di funzione, potete impostare + questa variabile ed il suo valore verrà usato implicitamente da quel + momento in poi. + + + diff --git a/docs/it/programmers/api-variables/variable-compiler-class.xml b/docs/it/programmers/api-variables/variable-compiler-class.xml new file mode 100644 index 00000000..c4f90942 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-compiler-class.xml @@ -0,0 +1,30 @@ + + + + $compiler_class + + Specifica il nome della classe del compilatore che Smarty userà + per compilare i template. Il default è 'Smarty_Compiler'. Solo per + utenti avanzati. + + + diff --git a/docs/it/programmers/api-variables/variable-config-booleanize.xml b/docs/it/programmers/api-variables/variable-config-booleanize.xml new file mode 100644 index 00000000..72d96592 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-config-booleanize.xml @@ -0,0 +1,32 @@ + + + + $config_booleanize + + Se impostato a true, le variabili dei file di configurazione con i valori + on/true/yes e off/false/no verranno convertite automaticamente in valori + booleani. In questo modo potete usare questi valori nei template in questo + modo: {if #foobar#} ... {/if}. Se foobar è on, true o yes, l'istruzione {if} + verrà eseguita. true per default. + + + diff --git a/docs/it/programmers/api-variables/variable-config-dir.xml b/docs/it/programmers/api-variables/variable-config-dir.xml new file mode 100644 index 00000000..0b8a3872 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-config-dir.xml @@ -0,0 +1,38 @@ + + + + $config_dir + + Questa è la directory usata per memorizzare i file di configurazione + usati nei template. Il default è "./configs2, che significa + che Smarty cercherà la directory dei file di configurazione + nella stessa directory dello script php in esecuzione. + + + Nota tecnica + + E' sconsigliato mettere questa directory sotto la + document root del web server. + + + + diff --git a/docs/it/programmers/api-variables/variable-config-fix-newlines.xml b/docs/it/programmers/api-variables/variable-config-fix-newlines.xml new file mode 100644 index 00000000..0227da4d --- /dev/null +++ b/docs/it/programmers/api-variables/variable-config-fix-newlines.xml @@ -0,0 +1,30 @@ + + + + $config_fix_newlines + + Se impostato a true, i caratteri di 'a capo' mac e dos (\r e \r\n) nei + file di configurazione vengono convertiti a \n quando sono analizzati. + true per default. + + + diff --git a/docs/it/programmers/api-variables/variable-config-overwrite.xml b/docs/it/programmers/api-variables/variable-config-overwrite.xml new file mode 100644 index 00000000..aa26d83f --- /dev/null +++ b/docs/it/programmers/api-variables/variable-config-overwrite.xml @@ -0,0 +1,31 @@ + + + + $config_overwrite + + Se è impostato a true, le variabili lette dai file di configurazione si + sovrascriveranno l'una con l'altra. Diversamente, verranno messe in un + array. E' utile se volete memorizzare array di dati nei file di configurazione, + è sufficiente elencare più volte ogni elemento. true per default. + + + diff --git a/docs/it/programmers/api-variables/variable-config-read-hidden.xml b/docs/it/programmers/api-variables/variable-config-read-hidden.xml new file mode 100644 index 00000000..0f18b308 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-config-read-hidden.xml @@ -0,0 +1,33 @@ + + + + $config_read_hidden + + Se impostato a true, le sezioni nascoste (col nome che inizia con un + punto) dei file di configurazione possono essere lette dai template. + Tipicamente lascerete questo valore a false, in modo da poter memorizzare + dati sensibili nei file di configurazione (ad esempio parametri per + l'accesso a un database) senza preoccuparvi che vengano caricati sul + template. false per default. + + + diff --git a/docs/it/programmers/api-variables/variable-debug-tpl.xml b/docs/it/programmers/api-variables/variable-debug-tpl.xml new file mode 100644 index 00000000..39b9d130 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-debug-tpl.xml @@ -0,0 +1,30 @@ + + + + $debug_tpl + + Questo è il nome del file di template usato per la console di debugging. + Per default, il nome è debug.tpl ed il file si trova nella SMARTY_DIR. + + + diff --git a/docs/it/programmers/api-variables/variable-debugging-ctrl.xml b/docs/it/programmers/api-variables/variable-debugging-ctrl.xml new file mode 100644 index 00000000..5906db54 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-debugging-ctrl.xml @@ -0,0 +1,33 @@ + + + + $debugging_ctrl + + Questa variabile consente modi alternativi per abilitare il + debugging. NONE significa che non sono consentiti metodi + alternativi. URL significa che quando la parola chiave + SMARTY_DEBUG viene trovata nella QUERY_STRING, il debugging + viene abilitato per quella chiamata dello script. Se + $debugging è true, questo valore viene ignorato. + + + diff --git a/docs/it/programmers/api-variables/variable-debugging.xml b/docs/it/programmers/api-variables/variable-debugging.xml new file mode 100644 index 00000000..a5421254 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-debugging.xml @@ -0,0 +1,31 @@ + + + + $debugging + + Questa variabile abilita la console di debugging. + La console è una finestra javascript che vi informa sui template + inclusi e sulle variabili valorizzate per la pagina attuale. + + + diff --git a/docs/it/programmers/api-variables/variable-default-modifiers.xml b/docs/it/programmers/api-variables/variable-default-modifiers.xml new file mode 100644 index 00000000..67aa4366 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-default-modifiers.xml @@ -0,0 +1,32 @@ + + + + $default_modifiers + + E' un array di modificatori da applicare implicitamente ad ogni variabile + in un template. Ad esempio, per fare l'escape HTML ad ogni variabile per + default, usate array('escape:"htmlall"'); per rendere una variabile + esente dai modificatori di default, passatele lo speciale modificatore + "smarty" con il parametro "nodefaults", così: {$var|smarty:nodefaults}. + + + diff --git a/docs/it/programmers/api-variables/variable-default-resource-type.xml b/docs/it/programmers/api-variables/variable-default-resource-type.xml new file mode 100644 index 00000000..fe363417 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-default-resource-type.xml @@ -0,0 +1,32 @@ + + + + $default_resource_type + + Dice a Smarty che tipo di risorsa usare implicitamente. Il valore di + default è 'file', il che significa che $smarty->display('index.tpl'); + e $smarty->display('file:index.tpl'); hanno identico significato. + Leggete il capitolo risorse + per i dettagli. + + + diff --git a/docs/it/programmers/api-variables/variable-default-template-handler-func.xml b/docs/it/programmers/api-variables/variable-default-template-handler-func.xml new file mode 100644 index 00000000..f6e32118 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-default-template-handler-func.xml @@ -0,0 +1,29 @@ + + + + $default_template_handler_func + + Questa funzione viene chiamata quando Smarty non riesce a + caricare un template. + + + diff --git a/docs/it/programmers/api-variables/variable-error-reporting.xml b/docs/it/programmers/api-variables/variable-error-reporting.xml new file mode 100644 index 00000000..c6532bf3 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-error-reporting.xml @@ -0,0 +1,32 @@ + + + + $error_reporting + + Quando a questa variabile viene dato un valore non-null, + il suo valore viene usato come livello di error_reporting + di php all'interno di display() e fetch(). Quando il debugging + è abilitato questo valore è ignorato e il livello degli + errori viene lasciato invariato. + + + diff --git a/docs/it/programmers/api-variables/variable-force-compile.xml b/docs/it/programmers/api-variables/variable-force-compile.xml new file mode 100644 index 00000000..b40f8713 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-force-compile.xml @@ -0,0 +1,33 @@ + + + + $force_compile + + Questo valore forza Smarty a (ri)compilare i template ad + ogni chiamata. Questa impostazione prevale su $compile_check. + Per default è disabilitata. E' utile per lo sviluppo ed il + debug. Non dovrebbe essere mai usata in un ambiente di produzione. + Se il caching è abilitato, i file della cache verranno rigenerati + ogni volta. + + + diff --git a/docs/it/programmers/api-variables/variable-left-delimiter.xml b/docs/it/programmers/api-variables/variable-left-delimiter.xml new file mode 100644 index 00000000..0bcb5214 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-left-delimiter.xml @@ -0,0 +1,29 @@ + + + + $left_delimiter + + E' il delimitatore di sinistra usato dal linguaggio dei template. + Per default è "{". + + + diff --git a/docs/it/programmers/api-variables/variable-php-handling.xml b/docs/it/programmers/api-variables/variable-php-handling.xml new file mode 100644 index 00000000..d2afa4cc --- /dev/null +++ b/docs/it/programmers/api-variables/variable-php-handling.xml @@ -0,0 +1,48 @@ + + + + $php_handling + + Questa variabile dice a Smarty come gestire il codice PHP + incorporato nei template. Ci sono quattro possibili impostazioni: + il default è SMARTY_PHP_PASSTHRU. Notate che questa variabile + NON ha effetto sul codice php che si trova fra i tag {php}{/php}. + + + SMARTY_PHP_PASSTHRU - Smarty stampa il contenuto + dei tag così com'è. + SMARTY_PHP_QUOTE - Smarty trasforma i tag in entità + html. + SMARTY_PHP_REMOVE - Smarty rimuove i tag dal + template. + SMARTY_PHP_ALLOW - Smarty esegue il codice PHP. + + + + Incorporare codice PHP nei template è altamente sconsigliato. Usate + invece le funzioni utente + o i modificatori. + + + + diff --git a/docs/it/programmers/api-variables/variable-plugins-dir.xml b/docs/it/programmers/api-variables/variable-plugins-dir.xml new file mode 100644 index 00000000..b4831753 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-plugins-dir.xml @@ -0,0 +1,40 @@ + + + + $plugins_dir + + Queste sono le directory dove Smarty andrà a cercare i plugin di cui + ha bisogno. Il default è "plugins" sotto la SMARTY_DIR. Se fornite + un percorso relativo, Smarty cercherà prima di tutto sotto la + SMARTY_DIR, poi sotto la directory corrente, infine sotto ogni directory + compresa nell'include_path di PHP. + + + Nota tecnica + + Per migliori prestazioni, non costringete Smarty a cercare le plugins_dir + usando l'include path di PHP. Usate un percorso assoluto, o relativo + alla SMARTY_DIR o alla directory corrente. + + + + diff --git a/docs/it/programmers/api-variables/variable-request-use-auto-globals.xml b/docs/it/programmers/api-variables/variable-request-use-auto-globals.xml new file mode 100644 index 00000000..38252c2e --- /dev/null +++ b/docs/it/programmers/api-variables/variable-request-use-auto-globals.xml @@ -0,0 +1,35 @@ + + + + $request_use_auto_globals + + Specifica se Smarty deve usare gli array di php $HTTP_*_VARS[] + ($request_use_auto_globals=false che è il valore di default) o + $_*[] ($request_use_auto_globals=true). Ciò ha effetto sui template + che usano {$smarty.request.*}, {$smarty.get.*} ecc. . + Attenzione: Se impostate $request_use_auto_globals a true, $request_vars_order + non ha effetto, e viene usato il valore di configurazione di + php gpc_order. + + + diff --git a/docs/it/programmers/api-variables/variable-request-vars-order.xml b/docs/it/programmers/api-variables/variable-request-vars-order.xml new file mode 100644 index 00000000..bc93a1f0 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-request-vars-order.xml @@ -0,0 +1,29 @@ + + + + $request_vars_order + + L'ordine in cui sono registrate le variabili della richiesta http, + simile a variables_order in php.ini. + + + diff --git a/docs/it/programmers/api-variables/variable-right-delimiter.xml b/docs/it/programmers/api-variables/variable-right-delimiter.xml new file mode 100644 index 00000000..c0cd8634 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-right-delimiter.xml @@ -0,0 +1,29 @@ + + + + $right_delimiter + + E' il delimitatore di destra usato dal linguaggio dei template. + Per default è "}". + + + diff --git a/docs/it/programmers/api-variables/variable-secure-dir.xml b/docs/it/programmers/api-variables/variable-secure-dir.xml new file mode 100644 index 00000000..185d689c --- /dev/null +++ b/docs/it/programmers/api-variables/variable-secure-dir.xml @@ -0,0 +1,29 @@ + + + + $secure_dir + + E' un array contenente tutte le directory locali che sono considerate + sicure. {include} e {fetch} lo usano quando $security è abilitata. + + + diff --git a/docs/it/programmers/api-variables/variable-security-settings.xml b/docs/it/programmers/api-variables/variable-security-settings.xml new file mode 100644 index 00000000..b514e241 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-security-settings.xml @@ -0,0 +1,44 @@ + + + + $security_settings + + Sono valori usati per modificare o specificare le impostazioni di + sicurezza quando $security è abilitata. Queste sono le impostazioni + possibili: + + + PHP_HANDLING - true/false. Se è impostato a true, + l'impostazione di $php_handling non viene verificata per la + sicurezza. + IF_FUNCS - E' un array con i nomi delle funzioni PHP + consentite nelle istruzioni IF. + INCLUDE_ANY - true/false. Se impostata a true, qualsiasi + template può essere incluso dal filesystem, indipendentemente dalla + lista di $secure_dir. + PHP_TAGS - true/false. Se impostato a true, è consentito + l'uso dei tag {php}{/php} nei template. + MODIFIER_FUNCS - E' un array coi nomi delle funzioni PHP + di cui è consentito l'uso come modificatori delle variabili. + + + diff --git a/docs/it/programmers/api-variables/variable-security.xml b/docs/it/programmers/api-variables/variable-security.xml new file mode 100644 index 00000000..f018bfe3 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-security.xml @@ -0,0 +1,47 @@ + + + + $security + + E' una variabile booleana, per default è false. Security viene + utile per situazioni in cui avete affidato la modifica dei template + a terzi (ad esempio via ftp) di cui non vi fidate completamente, + e volete quindi ridurre il rischio di compromettere la sicurezza + del sistema attraverso il linguaggio del template. Attivare security + comporta l'applicazione delle seguenti regole al linguaggio del + template, a parte ciò che può essere modificato con $security_settings: + + + Se $php_handling è impostato a SMARTY_PHP_ALLOW viene + implicitamente modificato a SMARTY_PHP_PASSTHRU + Non sono ammesse funzioni PHP nelle istruzioni IF, + ad esclusione di quelle specificate in $security_settings + I file dei template possono essere inclusi solo dalle + directory elencate nell'array $secure_dir + I file locali possono essere letti con {fetch} solo dalle + directory elencate nell'array $secure_dir + I tag {php}{/php} non sono consentiti + Non è possibile usare funzioni PHP come modificatori, + ad esclusione di quelle specificate in $security_settings + + + diff --git a/docs/it/programmers/api-variables/variable-template-dir.xml b/docs/it/programmers/api-variables/variable-template-dir.xml new file mode 100644 index 00000000..0af68f93 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-template-dir.xml @@ -0,0 +1,39 @@ + + + + $template_dir + + Questo è il nome della directory di default dei template. Se + non ne indicate una quando includete i file, verranno cercati + qui. Per default è "./templates", che significa che Smarty + cercherà la directory dei template nella stessa directory dello + script php in esecuzione. + + + Nota tecnica + + E' sconsigliato mettere questa directory sotto la + document root del web server. + + + + diff --git a/docs/it/programmers/api-variables/variable-trusted-dir.xml b/docs/it/programmers/api-variables/variable-trusted-dir.xml new file mode 100644 index 00000000..a9eba257 --- /dev/null +++ b/docs/it/programmers/api-variables/variable-trusted-dir.xml @@ -0,0 +1,32 @@ + + + + $trusted_dir + + $trusted_dir viene usata solo quando $security è abilitata. E' un array + di tutte le directory che sono considerate affidabili. Le directory + affidabili sono quelle dalle quali possono essere eseguiti script php + direttamente dai template con {include_php}. + + + diff --git a/docs/it/programmers/api-variables/variable-use-sub-dirs.xml b/docs/it/programmers/api-variables/variable-use-sub-dirs.xml new file mode 100644 index 00000000..f2001bdd --- /dev/null +++ b/docs/it/programmers/api-variables/variable-use-sub-dirs.xml @@ -0,0 +1,36 @@ + + + + $use_sub_dirs + + Impostate questo valore a false se il vostro ambiente PHP non consente + la creazione di sottodirectory da parte di Smarty. Le sottodirectory sono + più efficienti, quindi usatele se potete. + + + Nota tecnica + + A partire da Smarty-2.6.2 use_sub_dirs per default vale false. + + + + diff --git a/docs/it/programmers/caching.xml b/docs/it/programmers/caching.xml new file mode 100644 index 00000000..b9ebdccd --- /dev/null +++ b/docs/it/programmers/caching.xml @@ -0,0 +1,52 @@ + + + + Caching + + Il caching si usa per velocizzare una chiamata a display() o fetch() salvando il suo output + su un file. Se una versione della chiamata è disponibile + in cache, viene visualizzata questa invece di rigenerare + l'output. Il caching può velocizzare tremendamente le cose, + specialmente con i template che richiedono maggiori tempi + di elaborazione. Se l'output di display() o fetch() viene + salvato in cache, un file della cache può concettualmente + essere composto di diversi file di template, di configurazione ecc. + + + Siccome i template sono dinamici, è importante stare attenti + a ciò che mettete in cache e per quanto tempo. Ad esempio, se + state visualizzando la home page del vostro sito, i cui contenuti + non cambiano troppo spesso, può essere utile mettere in cache + questa pagina per un'ora o più. D'altra parte, se state + visualizzando una pagina con una mappa del tempo atmosferico che + viene aggiornata di minuto in minuto, non avrebbe senso mettere + in cache questa pagina. + +&programmers.caching.caching-setting-up; +&programmers.caching.caching-multiple-caches; +&programmers.caching.caching-groups; + +&programmers.caching.caching-cacheable; + + diff --git a/docs/it/programmers/caching/caching-cacheable.xml b/docs/it/programmers/caching/caching-cacheable.xml new file mode 100644 index 00000000..4cbd34b3 --- /dev/null +++ b/docs/it/programmers/caching/caching-cacheable.xml @@ -0,0 +1,145 @@ + + + + Mettere in Cache l'output dei Plugin + + A partire dai plugin di Smarty-2.6.0 la possibilità di mettere in + cache il loro output può essere dichiarata nel momento in cui li si + registrano. Il terzo parametro da passare a register_block, + register_compiler_function e register_function si chiama + $cacheable e per default vale true, il che + equivale al comportamento dei plugin di Smarty nelle versioni + precedenti alla 2.6.0 + + + + Quando si registra un plugin con $cacheable=false il plugin viene + chiamato tutte le volte che la pagina viene visualizzata, anche se + la pagina stessa arriva dalla cache. La funzione del plugin funziona + così un poco come una funzione insert. + + + + Al contrario di ciò che avviene in {insert}, gli attributi passati + al plugin non vengono, per default, messi in cache. E' possibile però + dichiarare che devono essere messi in cache con il quarto parametro + $cache_attrs. $cache_attrs + è un array di nomi di attributi che devono essere messi in cache, in + modo che la funzione del plugin ottenga il valore dell'attributo qual + era al momento in cui la pagina è stata salvata sulla cache ogni volta + che la cache stessa viene riletta. + + + + Evitare che l'output di un plugin vada in cache + +caching = true; + +function remaining_seconds($params, &$smarty) { + $remain = $params['endtime'] - time(); + if ($remain >=0) + return $remain . " second(s)"; + else + return "done"; +} + +$smarty->register_function('remaining', 'remaining_seconds', false, array('endtime')); + +if (!$smarty->is_cached('index.tpl')) { + // leggiamo $obj dal db e lo assegnamo al template... + $smarty->assign_by_ref('obj', $obj); +} + +$smarty->display('index.tpl'); +?> +]]> + + + dove index.tpl è: + + +endtime} +]]> + + + Il numero di secondi che mancano alla scadenza di $obj cambia ad + ogni visualizzazione della pagina, anche se questa è in cache. + Siccome l'attributo endtime è in cache, l'oggetto deve essere + letto dal database solo quando la pagina viene scritta sulla cache, + ma non nelle richieste successive. + + + + + Evitare che un intero blocco di template vada in cache + +caching = true; + +function smarty_block_dynamic($param, $content, &$smarty) { + return $content; +} +$smarty->register_block('dynamic', 'smarty_block_dynamic', false); + +$smarty->display('index.tpl'); +?> +]]> + + + dove index.tpl è: + + + + + + + + Quando ricaricate lapagina vedrete che le due date sono diverse. Una + è "dinamica", l'altra è "statica". Potete mettere qualsiasi cosa fra + {dynamic} e {/dynamic}, sicuri che non verrà messa in cache col resto + della pagina. + + + + + diff --git a/docs/it/programmers/caching/caching-groups.xml b/docs/it/programmers/caching/caching-groups.xml new file mode 100644 index 00000000..0f9bbe68 --- /dev/null +++ b/docs/it/programmers/caching/caching-groups.xml @@ -0,0 +1,83 @@ + + + + Gruppi di Cache + + Potete raggruppare le cache in modo più elaborato impostando gruppi + di cache_id. Per fare questo separate ogni sottogruppo con una barra + verticale "|" nel valore di cache_id. Potete usare tutti i sottogruppi + che volete. + + + Potete pensare ai gruppi di cche come ad una gerarchia di directory. + Ad esempio, un gruppo di cache "a|b|c" può essere concepito come la + struttura di directory "/a/b/c". clear_cache(null,"a|b|c") equivale a + cancellare i file "/a/b/c/*". clear_cache(null,"a|b") sarebbe come + cancellare i file "/a/b/*". Se specificate un compile_id, ad esempio + clear_cache(null,"a|b","foo"), sarà considerato come un ulteriore + sottogruppo "a/b/c/foo/". Se specificate un nome di template, ad + esempio clear_cache("foo.tpl","a|b|c"), Smarty tenterà di cancellare + "/a/b/c/foo.tpl". NON POTETE cancellare un template specifico sotto + più gruppi di cache, ad es. "a/b/*/foo.tpl"; i gruppi di cache funzionano + SOLO da sinistra a destra. Dovrete raggruppare i vostri template sotto + un singolo sottogruppo di cache per poterli cancellare tutti insieme. + + + I gruppi di cache non vanno confusi con la gerarchia della vostra directory + dei template: i gruppi di cache infatti non sanno qual è la struttura + dei template. Ad esempio, se avete una struttura di template tipo + "themes/blu/index.tpl" e volete avere la possibilità di cancellare + tutti i file di cache per il tema "blue", dovrete creare un gruppo di + cache che riproduce la struttura dei template, ad esempio + display("themes/blue/index.tpl","themes|blue"), e poi eliminarli + con clear_cache(null,"themes|blue"). + + + gruppi di cache_id + +caching = true; + +// eliminiamo tutti i file di cache che hanno "sports|basketball" come primi due gruppi +$smarty->clear_cache(null,"sports|basketball"); + +// eliminiamo tutti i file di cache che hanno "sports" come primo gruppo di cache +// questo include "sports|basketball", nonché "sports|(anything)|(anything)|(anything)|..." +$smarty->clear_cache(null,"sports"); + +// eliminiamo il file di cache foo.tpl con "sports|basketball" come cache_id +$smarty->clear_cache("foo.tpl","sports|basketball"); + + +$smarty->display('index.tpl',"sports|basketball"); +?> +]]> + + + + + + diff --git a/docs/it/programmers/caching/caching-multiple-caches.xml b/docs/it/programmers/caching/caching-multiple-caches.xml new file mode 100644 index 00000000..4ade32e4 --- /dev/null +++ b/docs/it/programmers/caching/caching-multiple-caches.xml @@ -0,0 +1,127 @@ + + + + Cache multiple per una pagina + + Potete avere più file di cache per una singola chiamata a display() + o fetch(). Diciamo che una chiamata a display('index.tpl') può avere + diversi output in base a una certa condizione, e volete cache separate + per ciascun caso. Potete farlo passando alla funzione un cache_id come + secondo parametro. + + + passare un cache_id a display() + +caching = true; + +$my_cache_id = $_GET['article_id']; + +$smarty->display('index.tpl',$my_cache_id); +?> +]]> + + + + Qui sopra passiamo la variabile $my_cache_id a display() come + cache_id. Per ogni valore di $my_cache_id verrà generato un file + di cache per index.tpl. In questo esempio, "article_id" proveniva + dall'URL e viene usato come cache_id. + + + Nota tecnica + + Siate molto prudenti quando passate valori ricevuti da un client (come + un browser) a Smarty (o qualsiasi applicazione PHP). Sebbene nell'esempio + qui sopra l'uso di article_id proveniente dall'URL sembri molto comodo, + potrebbe avere brutte conseguenze. Il valore di cache_id viene usato per + creare una directory sul filesystem, quindi se l'utente passa un valore + molto lungo come article_id, o se scrive uno script che spedisce velocemente + valori casuali, potremmo avere dei problemi sul server. Assicuratevi di + validare qualsiasi dato ricevuto in input prima di usarlo. In questo caso, + potreste sapere che article_id ha una lunghezza di 10 caratteri, è composto + solo di caratteri alfanumerici, e deve essere un article_id valido sul + database. Verificatelo! + + + + Assicuratevi di passare lo stesso valore di cache_id come + secondo parametro a is_cached() e + clear_cache(). + + + passare un cache_id a is_cached() + +caching = true; + +$my_cache_id = $_GET['article_id']; + +if(!$smarty->is_cached('index.tpl',$my_cache_id)) { + // Non c'è un file di cache disponibile, assegnamo le variabili qui. + $contents = get_database_contents(); + $smarty->assign($contents); +} + +$smarty->display('index.tpl',$my_cache_id); +?> +]]> + + + + Potete eliminare tutti i file di cache per un determinato cache_id + passando null come primo parametro di clear_cache(). + + + eliminare tutte le cache per un determinato cache_id + +caching = true; + +// eliminiamo tutti i file di cache con "sports" come cache_id +$smarty->clear_cache(null,"sports"); + +$smarty->display('index.tpl',"sports"); +?> +]]> + + + + In questo modo, potete "raggruppare" i vostri file di cache dando + loro lo stesso valore di cache_id. + + + + + diff --git a/docs/it/programmers/caching/caching-setting-up.xml b/docs/it/programmers/caching/caching-setting-up.xml new file mode 100644 index 00000000..6e674a4a --- /dev/null +++ b/docs/it/programmers/caching/caching-setting-up.xml @@ -0,0 +1,192 @@ + + + + Impostare il Caching + + La prima cosa da fare è abilitare il caching. Per farlo bisogna + impostare $caching = true (o 1.) + + + abilitare il caching + +caching = true; + +$smarty->display('index.tpl'); +?> +]]> + + + + Col caching abilitato, la chiamata alla funzione display('index.tpl') + causa la normale generazione del template, ma oltre a questo salva + una copia dell'output in un file (la copia in cache) nella $cache_dir. Alla chiamata successiva + di display('index.tpl'), verrà usata la copia in cache invece di + generare di nuovo il template. + + + Nota tecnica + + I file nella $cache_dir vengono chiamati con nomi simili al nome del + template. Sebbene abbiano l'estensione ".php", in realtà non sono + script php eseguibili. Non editateli! + + + + Ogni pagina in cache ha un tempo di vita limitato, determinato da + $cache_lifetime. Il + valore di default è 3600 secondi, cioè 1 ora. Dopo questo tempo, la + cache viene rigenerata. E' possibile dare a file singoli il proprio + tempo di scadenza impostando $caching = 2. Consultate la documentazione + di $cache_lifetime per i dettagli. + + + impostare cache_lifetime per singolo file di cache + +caching = 2; // la durata è per singolo file + +// impostiamo il cache_lifetime per index.tpl a 5 minuti +$smarty->cache_lifetime = 300; +$smarty->display('index.tpl'); + +// impostiamo il cache_lifetime per home.tpl a 1 ora +$smarty->cache_lifetime = 3600; +$smarty->display('home.tpl'); + +// NOTA: l'impostazione seguente di $cache_lifetime non funzionerà +// con $caching = 2. La scadenza per home.tpl è stata già impostata +// a 1 ora, e non rispetterà più il valore di $cache_lifetime. +// La cache di home.tpl scadrà sempre dopo 1 ora. +$smarty->cache_lifetime = 30; // 30 seconds +$smarty->display('home.tpl'); +?> +]]> + + + + Se $compile_check è abilitato, + tutti i file di template e di configurazione che sono coinvolti nel file + della cache vengono verificati per vedere se sono stati modificati. Se qualcuno + dei file ha subito una modifica dopo che la cache è stata generata, il file + della cache viene rigenerato. Questo provoca un piccolo sovraccarico, quindi, + per avere prestazioni ottimali, lasciate $compile_check a false. + + + abilitare $compile_check + +caching = true; +$smarty->compile_check = true; + +$smarty->display('index.tpl'); +?> +]]> + + + + Se $force_compile è abilitato, + i file della cache verranno sempre rigenerati. Di fatto questo disabilita + il caching. $force_compile normalmente serve solo per scopi di debug, un + modo più efficiente di disabilitare il caching è di impostare $caching = false (o 0.) + + + La funzione is_cached() può essere + usata per verificare se un template ha una cache valida oppure no. Se avete + un template in cache che necessita di qualcosa come una lettura da un + database, potete usare questa funzione per saltare quella parte. + + + uso di is_cached() + +caching = true; + +if(!$smarty->is_cached('index.tpl')) { + // Non c'è cache disponibile, assegnamo le variabili qui. + $contents = get_database_contents(); + $smarty->assign($contents); +} + +$smarty->display('index.tpl'); +?> +]]> + + + + Potete mantenere parti di una pagina dinamiche con la funzione del template + insert. Diciamo che l'intera + pagina può essere messa in cache eccetto un banner che viene visualizzato + in fondo a destra nella page. Usando la funzione insert per il banner, potete + tenere questo elemento dinamico all'interno del contenuto in cache. Consultate + la documentazione su insert per + dettagli ed esempi. + + + Potete eliminare tutti i file della cache con la funzione clear_all_cache(), o singoli + file della cache (o gruppi di file) con la funzione clear_cache(). + + + eliminare la cache + +caching = true; + +// eliminiamo tutti i file della cache +$smarty->clear_all_cache(); + +// eliminiamo solo la cache di index.tpl +$smarty->clear_cache('index.tpl'); + +$smarty->display('index.tpl'); +?> +]]> + + + + + + diff --git a/docs/it/programmers/plugins.xml b/docs/it/programmers/plugins.xml new file mode 100644 index 00000000..aee22a4b --- /dev/null +++ b/docs/it/programmers/plugins.xml @@ -0,0 +1,70 @@ + + + + Estendere Smarty con i Plugin + + La versione 2.0 ha introdotto l'architettura dei plugin, che + viene usata per quasi tutte le funzionalità personalizzabili + di Smarty. Queste comprendono: + + funzioni + modificatori + funzioni di blocco + funzioni di compilazione + prefiltri + postfiltri + filtri di output + risorse + insert + + Con l'eccezione delle risorse, viene preservata la compatibilità + retroattiva con il vecchio modo di registrare le funzioni di gestione + attraverso l'API register_*. Se non usavate questa interfaccia, ma + modificavate direttamente le variabili di classe $custom_funcs, + $custom_mods e altre, ora dovrete modificare i + vostri script per usare l'API oppure convertire in plugin le vostre + funzionalità personalizzate. + + +&programmers.plugins.plugins-howto; + +&programmers.plugins.plugins-naming-conventions; + +&programmers.plugins.plugins-writing; + +&programmers.plugins.plugins-functions; + +&programmers.plugins.plugins-modifiers; + +&programmers.plugins.plugins-block-functions; + +&programmers.plugins.plugins-compiler-functions; + +&programmers.plugins.plugins-prefilters-postfilters; + +&programmers.plugins.plugins-outputfilters; + +&programmers.plugins.plugins-resources; + +&programmers.plugins.plugins-inserts; + + diff --git a/docs/it/programmers/plugins/plugins-block-functions.xml b/docs/it/programmers/plugins/plugins-block-functions.xml new file mode 100644 index 00000000..0b47a620 --- /dev/null +++ b/docs/it/programmers/plugins/plugins-block-functions.xml @@ -0,0 +1,118 @@ + + + Funzioni sui blocchi + + + void smarty_block_name + array $params + mixed $content + object &$smarty + boolean &$repeat + + + + Le funzioni sui blocchi sono funzioni che appaiono nel template nella + forma: {func} .. {/func}. In altre parole, racchiudono un blocco del + template e lavorano sul contenuto di questo blocco. Le funzioni di blocco + hanno la precedenza sulle funzioni personalizzate con lo stesso nome, + il che significa che non potete avere una funzione personalizzata {func} + ed allo stesso tempo una funzione di blocco {func} .. {/func}. + + + Per default la funzione di implementazione viene chiamata due volte + da Smarty: una per il tag di apertura, e una per il tag di chiusura + (guardate sotto &$repeat per capire come + modificare questo comportamento). + + + Solo il tag di apertura della funzione di blocco può avere attributi. + Tutti gli attributi passati dal template alle funzioni relative sono + contenuti in $params nella forma di array + associativo. Potete accedere a questi valori, ad esempio, con + $params['start']. Gli attributi del tag di apertura + sono accessibili alla funzione anche in fase di elaborazione del tag + di chiusura. + + + Il valore di $content dipende se la funzione + viene chiamata per il tag di apertura o per quello di chiusura. Nel + caso del tag di apertura, sarà null, mentre nel + caso del tag di chiusura sarà il contenuto del blocco di template. + Notate che il blocco sarà già stato elaborato da Smarty, quindi ciò + che riceverete sarà l'output del template, non il sorgente. + + + + Il parametro &$repeat è passato alla + funzione per riferimento e le fornisce la possibilità di controllare + quante volte il blocco viene visualizzato. Per default + $repeat è true alla prima + chiamata della funzione (al tag di apertura), e false + per tutte le chiamate successive (al tag di chiusura). + Ogni volta che la funzione termina con il valore di + &$repeat a true, il contenuto compreso + fra {func} e {/func} viene valorizzato e la funzione viene chiamata + di nuovo con il nuovo contenuto del blocco nel parametro + $content. + + + + + Se avete funzioni di blocco nidificate, potete scoprire qual è il + blocco genitore attraverso la variabile + $smarty->_tag_stack. Fate un var_dump() su + questa variabile e la struttura dovrebbe apparirvi evidente. + + + Vedere anche: + register_block(), + unregister_block(). + + + funzione di blocco + + +]]> + + + + + diff --git a/docs/it/programmers/plugins/plugins-compiler-functions.xml b/docs/it/programmers/plugins/plugins-compiler-functions.xml new file mode 100644 index 00000000..d284ec7f --- /dev/null +++ b/docs/it/programmers/plugins/plugins-compiler-functions.xml @@ -0,0 +1,91 @@ + + + Funzioni di Compilazione + + Le funzioni di compilazione sono chiamate solo durante la compilazione + del template. Sono utili per inserire nel template codice PHP o + contenuto statico dipendente dal momento (ad es. l'ora). Se esistono una + funzione di compilazione e una funzione personalizzata registrate sotto + lo stesso nome, la funzione di compilazione ha la precedenza. + + + + mixed smarty_compiler_name + string $tag_arg + object &$smarty + + + + Alla funzione di compilazione vengono passati due parametri: la stringa + che rappresenta l'argomento tag - fondamentalmente, tutto dal nome della + funzione fino al delimitatore finale, e l'oggetto Smarty. Ci si aspetta + che la funzione restituisca il codice PHP da inserire nel template + compilato. + + + See also + register_compiler_function(), + unregister_compiler_function(). + + + semplice funzione di compilazione + +_current_file . " compiled at " . date('Y-m-d H:M'). "';"; +} +?> +]]> + + + Questa funzione può essere chiamata dal template in questo modo: + + +{* questa funzione viene eseguita solo al momento della compilazione *} +{tplheader} + + + Il codice PHP risultante nel template compilato sarà qualcosa di questo tipo: + + + +]]> + + + + + diff --git a/docs/it/programmers/plugins/plugins-functions.xml b/docs/it/programmers/plugins/plugins-functions.xml new file mode 100644 index 00000000..e979bf82 --- /dev/null +++ b/docs/it/programmers/plugins/plugins-functions.xml @@ -0,0 +1,126 @@ + + + Funzioni per i template + + + void smarty_function_name + array $params + object &$smarty + + + + Tutti gli attributi passati dai template alle funzioni relative sono + contenuti in $params nella forma di un array + associativo. + + + L'output (valore di ritorno) della funzione sostituirà il tag della + funzione nel template (ad esempio con la funzione fetch). + In alternativa, la funzione potrebbe semplicemente svolgere qualche + altro compito, senza produrre output (funzione assign). + + + Se la funzione deve assegnare variabili al template, o usare qualche + altra funzionalità di Smarty, può usare per questo l'oggetto + $smarty che le viene passato. + + + Vedere anche: + register_function(), + unregister_function(). + + + + plugin funzione con output + + +]]> + + + + + che può essere usata così nel template: + + +Question: Will we ever have time travel? +Answer: {eightball}. + + + + funzione plugin senza output + +trigger_error("assign: missing 'var' parameter"); + return; + } + + if (!in_array('value', array_keys($params))) { + $smarty->trigger_error("assign: missing 'value' parameter"); + return; + } + + $smarty->assign($params['var'], $params['value']); +} +?> +]]> + + + + + + diff --git a/docs/it/programmers/plugins/plugins-howto.xml b/docs/it/programmers/plugins/plugins-howto.xml new file mode 100644 index 00000000..079a67f6 --- /dev/null +++ b/docs/it/programmers/plugins/plugins-howto.xml @@ -0,0 +1,47 @@ + + + + Come funzionano i Plugin + + I plugin vengono sempre caricati a richiesta. Solo gli specifici + modificatori, funzioni, risorse ecc. invocati negli script dei + template verranno caricati. Inoltre, ogni plugin viene caricato + una volta sola, anche se avete diverse istanze di Smarty in esecuzione + nella stessa richiesta. + + + I pre/postfiltri e i filtri di output sono casi un po' speciali. Siccome + non vengono menzionati nei template, devono essere registrati o caricati + esplicitamente attraverso le funzioni di interfaccia prima che il + template venga eseguito. L'ordine in cui vengono eseguiti più filtri + dello stesso tipo dipende dall'ordine in cui sono stati registrati + o caricati. + + + La $plugins_dir può + essere una stringa che contiene un percorso oppure un array + che ne contiene diversi. Per installare un plugin, è sufficiente + installarlo in una delle directory e Smarty lo userà automaticamente. + + + + diff --git a/docs/it/programmers/plugins/plugins-inserts.xml b/docs/it/programmers/plugins/plugins-inserts.xml new file mode 100644 index 00000000..f10d43af --- /dev/null +++ b/docs/it/programmers/plugins/plugins-inserts.xml @@ -0,0 +1,74 @@ + + + Insert + + I plugin Insert sono usati per implementare le funzioni invocate dai + tag insert + nel template. + + + + string smarty_insert_name + array $params + object &$smarty + + + + Il primo parametro è un array associativo di attributi + passati all'insert. + + + Ci si aspetta che la funzione insert restituisca il risultato che + sarà posizionato in luogo del tag insert nel + template. + + + plugin insert + +trigger_error("insert time: missing 'format' parameter"); + return; + } + + $datetime = strftime($params['format']); + return $datetime; +} +?> +]]> + + + + + diff --git a/docs/it/programmers/plugins/plugins-modifiers.xml b/docs/it/programmers/plugins/plugins-modifiers.xml new file mode 100644 index 00000000..e99d6df1 --- /dev/null +++ b/docs/it/programmers/plugins/plugins-modifiers.xml @@ -0,0 +1,116 @@ + + + Modificatori + + I modificatori sono piccole funzioni che vengono applicate ad + una variabile del template prima che venga visualizzata o usata + in qualche altro contesto. I modificatori possono essere + concatenati. + + + + mixed smarty_modifier_name + mixed $value + [mixed $param1, ...] + + + + Il primo parametro passato al plugin modificatore è il valore sul + quale il modificatore stesso deve operare. Gli altri parametri + possono essere opzionali, a seconda del tipo di operazione che + deve essere eseguita. + + + Il modificatore deve restituire il risultato della sua esecuzione. + + + Vedere anche + register_modifier(), + unregister_modifier(). + + + un semplice plugin modificatore + + Questo plugin fondamentalmente crea un sinonimo per una delle + funzioni incorporate in PHP. Non prevede parametri aggiuntivi. + + + +]]> + + + + + un plugin modificatore più complesso + + $length) { + $length -= strlen($etc); + $fragment = substr($string, 0, $length+1); + if ($break_words) + $fragment = substr($fragment, 0, -1); + else + $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment); + return $fragment.$etc; + } else + return $string; +} +?> +]]> + + + + + diff --git a/docs/it/programmers/plugins/plugins-naming-conventions.xml b/docs/it/programmers/plugins/plugins-naming-conventions.xml new file mode 100644 index 00000000..636ec452 --- /dev/null +++ b/docs/it/programmers/plugins/plugins-naming-conventions.xml @@ -0,0 +1,82 @@ + + + + Convenzioni per i nomi + + I file e le funzioni dei plugin devono seguire delle convenzioni + molto specifiche per i loro nomi, per poter essere trovati da + Smarty. + + + I file dei plugin devono essere chiamati come segue: +
+ + + tipo.nome.php + + +
+
+ + Dove tipo è uno di questi tipi di plugin: + + function + modifier + block + compiler + prefilter + postfilter + outputfilter + resource + insert + + + + E nome deve essere un identificatore valido + (solo lettere, numeri e underscore). + + + Alcuni esempi: function.html_select_date.php, + resource.db.php, + modifier.spacify.php. + + + Le funzioni plugin all'interno dei file dei plugin devono essere + chiamate come segue: +
+ + smarty_tipo_nome + +
+
+ + Il significato di tipo e nome sono + gli stessi visti prima. + + + Smarty produrrà i messaggi di errore appropriati se il file del plugin + di cui ha bisogno non viene trovato, o se il file o la funzione hanno + un nome non appropriato. + +
+ + diff --git a/docs/it/programmers/plugins/plugins-outputfilters.xml b/docs/it/programmers/plugins/plugins-outputfilters.xml new file mode 100644 index 00000000..497a9a6a --- /dev/null +++ b/docs/it/programmers/plugins/plugins-outputfilters.xml @@ -0,0 +1,67 @@ + + + Filtri di Output + + I plugin filtro di output lavorano sull'output di un template, dopo + che il template è stato caricato ed eseguito, ma prima che l'output + che venga visualizzato. + + + + string smarty_outputfilter_name + string $template_output + object &$smarty + + + + Il primo parametro passato alla funzione filtro è l'output del + template che deve essere elaborato, e il secondo parametro è + l'istanza di Smarty che sta chiamando il plugin. Ci si aspetta che + questo effettui l'elaborazione e restituisca il risultato. + + + plugin filtro di output + + +]]> + + + + + diff --git a/docs/it/programmers/plugins/plugins-prefilters-postfilters.xml b/docs/it/programmers/plugins/plugins-prefilters-postfilters.xml new file mode 100644 index 00000000..4c9f5a01 --- /dev/null +++ b/docs/it/programmers/plugins/plugins-prefilters-postfilters.xml @@ -0,0 +1,106 @@ + + + + Prefiltri/Postfiltri + + I plugin prefiltro e postfiltro sono molto simili concettualmente; + la differenza sta nel momento della loro esecuzione. + + + + string smarty_prefilter_name + string $source + object &$smarty + + + + I prefiltri si usano per processare il codice sorgente del template immediatamente + prima della compilazione. Il primo parametro passato alla funzione + prefiltro è il sorgente del template, eventualmente modificato da qualche + altro prefiltro. Ci si aspetta che il plugin restituisca il sorgente + modificato. Notate che questo sorgente non viene salvato da nessuna + parte, è usato solo per la compilazione. + + + + string smarty_postfilter_name + string $compiled + object &$smarty + + + + I postfiltri si usanno per processare l'output compilato del template + (il codice PHP) immediatamente dopo la compilazione stessa, ma prima + che il template compilato venga salvato sul filesystem. Il primo + parametro passato alla funzione postfiltro è il codice compilato, + eventualmente modificato da altri postfiltri. Ci si aspetta che il + plugin restituisca la versione modificata di questo codice. + + + plugin prefiltro + +]+>!e', 'strtolower("$1")', $source); + } +?> +]]> + + + + + plugin postfilro + +\nget_template_vars()); ?>\n" . $compiled; + return $compiled; + } +?> +]]> + + + + + diff --git a/docs/it/programmers/plugins/plugins-resources.xml b/docs/it/programmers/plugins/plugins-resources.xml new file mode 100644 index 00000000..f3796500 --- /dev/null +++ b/docs/it/programmers/plugins/plugins-resources.xml @@ -0,0 +1,159 @@ + + + Risorse + + I plugin risorsa vanno considerati un modo generico di fornire sorgenti + di template o script PHP a Smarty. Alcuni esempi di risorse: + database, directory LDAP, memorie condivisse, socket, e così via. + + + + Per ogni tipo di risorsa deve essere registrato un totale di 4 funzioni. + Ogni funzione riceverà la risorsa richiesta come primo parametro e l'oggetto + Smarty come ultimo parametro. Il resto dei parametri dipende dalla + funzione. + + + + + bool smarty_resource_name_source + string $rsrc_name + string &$source + object &$smarty + + + bool smarty_resource_name_timestamp + string $rsrc_name + int &$timestamp + object &$smarty + + + bool smarty_resource_name_secure + string $rsrc_name + object &$smarty + + + bool smarty_resource_name_trusted + string $rsrc_name + object &$smarty + + + + + Lo scopo della prima funzione è di recuperare la risorsa. Il suo + secondo parametro è una variabile passata per riferimento nella + quale memorizzare il risultato. Ci si aspetta che la funzione + restituisca true se è riuscita a recuperare + la risorsa e false nel caso opposto. + + + + Lo scopo della seconda funzione è di indicare il momento dell'ultima + modifica effettuata sulla risorsa richiesta (nel formato timestamp + UNIX). Il secondo parametro è una variabile passata per riferimento + nella quale memorizzare il timestamp. Ci si aspetta che la funzione + restituisca true se è riuscita a determinare il + timestamp, e false nel caso opposto. + + + + La terza funzione deve restituire true o + false, a seconda che la risorsa richiesta sia + sicura o no. Questa funzione è usata solo per risorse di template ma + deve ancora essere definita. + + + + La quarta funzione deve restituire true o + false, a seconda che la risorsa richiesta sia + considerata affidabile o no. Questa funzione è usata solo per script + PHP richiesti con i tag include_php o + insert con l'attributo src. + Comunque, deve ancora essere definita per le risorse di template. + + + Vedere anche + register_resource(), + unregister_resource(). + + + plugin risorsa + +query("select tpl_source + from my_table + where tpl_name='$tpl_name'"); + if ($sql->num_rows) { + $tpl_source = $sql->record['tpl_source']; + return true; + } else { + return false; + } +} + +function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty) +{ + // fate qui la chiamata al db per popolare $tpl_timestamp. + $sql = new SQL; + $sql->query("select tpl_timestamp + from my_table + where tpl_name='$tpl_name'"); + if ($sql->num_rows) { + $tpl_timestamp = $sql->record['tpl_timestamp']; + return true; + } else { + return false; + } +} + +function smarty_resource_db_secure($tpl_name, &$smarty) +{ + // diciamo che tutti i template sono sicuri + return true; +} + +function smarty_resource_db_trusted($tpl_name, &$smarty) +{ + // non si usa per i template +} +?> +]]> + + + + + diff --git a/docs/it/programmers/plugins/plugins-writing.xml b/docs/it/programmers/plugins/plugins-writing.xml new file mode 100644 index 00000000..fe7b533c --- /dev/null +++ b/docs/it/programmers/plugins/plugins-writing.xml @@ -0,0 +1,57 @@ + + + + Scrivere Plugin + + I plugin possono essere caricati automaticamente dal filesystem + da parte di Smarty, oppure possono essere registrati a runtime + attraverso le funzioni register_*. Possono anche essere + eliminati con le funzioni unregister_*. + + + Per i plugin che vengono registrati a runtime, i nomi delle + funzioni non devono necessariamente rispettare le convenzioni + di denominazione. + + + Se un plugin dipende da qualche funzionalità fornita da un altro + plugin (come nel caso di alcuni plugin incorporati in Smarty), il + modo corretto di caricare il plugin necessario è questo: + + +_get_plugin_filepath('function', 'html_options'); +?> +]]> + + + Come regola generale, l'oggetto Smarty viene sempre passato ai + plugin come ultimo parametro (con due eccezioni: ai modificatori + non viene passato l'oggetto Smarty, mentre ai blocchi viene passato + &$repeat dopo l'oggetto Smarty, per + mantenere la compatibilità retroattiva con le vecchie versioni + di Smarty). + + + + diff --git a/docs/it/programmers/smarty-constants.xml b/docs/it/programmers/smarty-constants.xml new file mode 100644 index 00000000..78b459ee --- /dev/null +++ b/docs/it/programmers/smarty-constants.xml @@ -0,0 +1,48 @@ + + + + Costanti + + + SMARTY_DIR + + Questo dovrebbe essere il percorso completo sul sistema dei file + di classe di Smarty. Se la costante non è definita, Smarty cercherà + di determinare automaticamente il valore appropriato. Se è definita, + il percorso deve terminare con una barra. + + + SMARTY_DIR + + +]]> + + + + +