
Variabili e Tags dei Templates (Modelli) – di saytheb
(Queste informazioni sono state prese dai forum di Envolution)
Su con i tags! I tags sono elencati con le seguenti caratteristiche:
Nome
Esempio
Uso/Scopo
Avvertimenti da Smarty (il motore grafico)
Ecco i tag allora in dettaglio:
Capture
[-capture name=blah-]
[-include file="get_banner.tpl"-]
[-/capture-]
Il tag di capture è usato per immagazzinare qualcosa in una variabile per un uso successivo piuttosto che per la sua visualizzazione. Qualsiasi cosa si trovi fra i tag di capture sarà immagazzinato nella variabile definita da name= e può successivamente essere chiamata da $smarty.capture.blah o qualunque nome abbiate usato. Se non si specifica un nome nel tag iniziale, viene usato il nome 'default'. Fare attenzione a quando si vuole avere un output di tipo[-[-insert}} . Se la memorizzazione (caching) è impostata a si, e avete comandi [-[- insert}} inseriti nel contenuto memorizzato, non usate capture per questi contenuti.
Config_Load
[-config_load file="madhatt.conf"-]
Il file config_load non ha bisogno di un tag di conclusione. Esso semplicemente apre un file di configurazione e permette di usare le variabili immagazzinate in esso. (includerò un semplice file config alla fine di questo elenco . Ci sono quattro nomi di attributi: 1 richiesto, 3 opzionali. Essi sono:
file - file="filename.conf"; richiesto; stringa; non ha un valore preimpostato (default)
section - section="sectioname"; non richiesto; stringa; no default (ulteriori informazioni su questo attributo in fondo alla lista)
scope - scope="scope"; non richiesto; string; valore di default è local
(scope indica la visibilità delle variabili: può valere local, parent, oppure global. Local vuol dire che le variabili sono visibili a livello locale del modello. Parent vuol dire che le variabili sono visibili sia nel modello locale, sia in quello chiamante. Global vuol dire che le variabili sono disponibili in tutti i templates).
global - global è un valore booleano che definisce la visibilità. global corrisponde a dichiarare scope="parent", e non sarà valutato se è presente l’attributo scope.
NOTA: Le sezioni del file Config e le varie funzioni di template incluse chiamate sezioni non c’entrano niente le une con le altre: è solo una convenzione comune nei nomi.
foreach, foreachelse
/* questo esempio stamperà tutti i valori del vettore $custid */
[-foreach from=$custid item=curr_id-]
id:
[-$curr_id-]
[-/foreach-]
Il foreach e il foreachelse sono molto uguali alle chiamate standard eccetto che richiedono una differente sintassi. Le variabili usate nella dichiarazione iniziale sono:
from - richiesto; di tipo stringa; non di default; il nome del vettore che si sta iterando;
item - richiesto;di tipo stringa; non di default; il nome della variabile che è l’elemento corrente dell’array.
key – non richiesto; di tipo stringa; non di default; il nome della variabile che è la chiave corrente.
name - non richiesto; di tipo stringa; non di default; il nome del ciclo foreach per accedere le proprietà del ciclo.
foreach viene usato per scandire un singolo vettore associativo.
include
[-include file="header.tpl"-]
/* quì va il corpo del template*/
[-include file="footer.tpl"-]
metodi include:
file – di tipo stringa ; richiesto; non di default; Il nome del file template da includere.
assign - di tipo stringa ; non richiesto; non di default; il nome della variabile a cui sarà assegnato l’output di include.
[var ...] - [var type]; non richiesto; no default; Variabile da passare localmente al template.
Puoi anche passare variabili come attributi ai templates inclusi. Qualsiasi variabile passata esplicitamente a un template incluso come attributo sono visibili solo all’interno del file incluso. Queste variabili sovrascrivono le variabili del template se hanno lo stesso nome.
esempio:
[-include file="header.tpl" title="Main Menu" table_bgcolor="#c0c0c0"-]
/* quì il corpo del template*/
[-include file="footer.tpl" logo="http://my.domain.com/logo.gif"-]
Con gli include di default, si possono solo includere file dalla cartella di default del template. Ecco alcuni esempi di inclusioni dall’esterno della cartella:
/* percorso assoluto del file*/
[-include file="/usr/local/include/templates/header.tpl"-]
/* percorso assoluto del file */
[-include file="file:/usr/local/include/templates/header.tpl"-]
/* percorso assoluto della finestra (BISOGNA usare "file:" prefisso) */
[-include file="file:C:/www/pub/templates/header.tpl"-]
/* include la risorsa template chiamata "db" */
[-include file="db:header.tpl"-]
include_php
/[-* percorso assoluto, o relativo a $trusted_dir */
[-include_php file="/path/to/load_nav.php"-]
Attributi:
file – di tipo stringa; richiesto; Non ha default; il nome del file php da includere.
assign - di tipo stringa; non richiesto; Non ha default . Il nome della variabile a cui sarà assegnato l’output di include_php.
insert
Insert funziona come include tags, eccetto che insert non viene memorizzato nella cache quando si ha abilitato il caching. Questi tags saranno eseguiti in ogni chiamata del template. La funzione insert è utile anche per chiamare uno script php e inserire variabili nello script attraverso il template.
Attributi:
name – di tipo stringa ; Richiesto; senza valori di default; il nome della funzione insert (insert_name).
assign - di tipo stringa ; non richiesto; senza valori di default; il nome della variabile del template a cui verrà assagnato l’output.
script - di tipo stringa ; non richiesto; senza valori di default: il nome dello script php che deve essere incluso prima della chiamata della funzione insert.
[var ...] - [var type]; non richiesto; senza valori di default; la variabile da passare alla funzione insert.
if, elseif, else
If, elseif, ed else sono come le chiamate php standard, eccetto il fatto che ogni if richiede un /if. Tutte le dichiarazioni che sefguono sono condizioni di selezione.
"eq", "ne","neq", "gt", "lt", "lte", "le", "gte" "ge","is even","is odd", "is not even","is not odd","not","mod","div by","even by","odd by","==","!=",">", "<","<=",">="
[-if $name eq "TiMax"-]
Sono TiMax!
[-elseif $name eq "Zoom"-]
Ciao Zoom!
[-else-]
Ciao a tutti!
[-/if-]
ldelim, rdelim
ldelim e rdelim sono usati per mostrare il delimitatore di carattere, nel nostro caso "[-" oppure "-]". Il motore grafico cerca sempre di interpretare questi delimitatori.
[-ldelim-]funcname[-rdelim-] è come appare la funzione in Smarty!
output:
[-funcname-] è come appare la funzione in Smarty!
literal
questi tags permettono di prendere un intero blocco di dati stringa preformattati che non devono essere interpretati dal motore Smarty . E’ una tecnica utile per esempio con gli javascript, in cui sono presenti comandi che potrebbero confondere il parser (l’interprete) del template. Qualsiasi cosa all’interno dei tags [-literal-][-/literal-], non sarà interpretato, ma visualizzato così com’è.
[-literal-]
[-/literal-]
php
I tags php permettono l’inclusione diretta di comandi php nel template. Essi saranno interpretati qualsiasi impostazione di $php_handling sia presente. E’ utile per sviluppatori esperti, ma non necessario normalmente.
[-php-]
// includi lo script php direttamente
// nel template.
include("/path/to/display_weather.php");
[-/php-]
section, sectionelse
E’ descritto benissimo nelle pagine del sito Smarty.....
http://smarty.php.net/manual/en/language.function.section.html
strip
A qualsiasi cosa scritta tra i tags [-strip}[-/strip} in Smarty saranno eliminati gli spazi bianchi aggiuntivi, i ritorni a capo iniziali e finali delle righe prima della loro visualizzazione. In questo modo saranno più leggibili i template senza preoccuparsi di spazi bianchi aggiuntivi che potrebbero causare problemi nel codice.
[-*ciò che segue verrà scritto su una unica riga in output*}
[-strip-]
[-/strip-]
OUTPUT:
Altre cosettine riguardo al file Config
Ecco esempio di file config:
# global variables
pageTitle = " Menu Principale"
bodyBgColor = #000000
tableBgColor = #000000
rowBgColor = #00ff00
[Utente]
pageTitle = "Informazioni utente"
[Login]
pageTitle = "Login"
focus = "username"
Intro = """Questa è una frase lunga
Più di una riga. Devi metterla tra
Virgolette triple."""
Insieme a config_load si può specificare la sezione con un suo nome, come section="Utente " oppure "Login". Saranno caricate solo le variabili interne a questa sezione. Altrimenti sarà caricato l’intero file. Se non viene selezionata nessuna sezione, saranno caricati solo le variabili globali.
Ed ecco alcune altre cose che si possono usare con le variabili:
capitalize
Capitalize è usato per rendere maiuscola la prima lettera di ogni parola contenuta nella variabile. Per esempio:
[-$articleTitle-]
[-$articleTitle|capitalize-]
Outputs:
Ho capito come funziona.
Ho Capito Come Funziona..
count_characters
count_characters si usa per contare il numero di caratteri contenuti in una variabile..
Gli spazi sono considerati naturalmente caratteri.
Esempio:
[-$articleTitle-]
[-$articleTitle|count_characters-]
Outputs:
Il mio nome è Angelo.
21
count_paragraphs
count_paragraphsconta i paragrafi contenuti in una variabile.
[-$articleTitle-]
[-$articleTitle|count_paragraphs-]
Outputs:
ParagrafoUno.
Paragrafo Due.
2
count_sentances
count_sentances conta le frasi contenute in una variabile (Per frasi s’intendono quelle che iniziano e finiscono con un punto).
[-$articleTitle-]
[-$articleTitle|count_sentances-]
Outputs:
Due navi si scontrano – Una affonda. Altre notizie Il web aumenta la sua Utenza.
2
count_words
count_words conta le parole contenute in una variabile. Ogni parola arriva fino al prossimo spazio bianco.
[-$articleTitle-]
[-$articleTitle|count_words-]
Outputs:
Ma che bella giornata. 4 parole
date_format
Per formattare una data e un’ora nel formato strftime(). Le date possono essere passate a Smarty nei formati unix , mysql oppure in qualsiasi stringa composta da mese giorno anno (interpretabile da strtotime). I designer possono usare date_format per avere un controllo completo della formattazione di date.
Esempio:
[-$currentDate-]
[-$currentDate|date_format:"%A, %B, %e, %Y"-]
[-$currentDate|date_format:"%H: %M: %S"-]
Outputs:
Giugno13, 2002
Giovedì, Giugno 13, 2002
16:28:59
Codici usabili: CASE SPECIFIC (attenzione alle maiuscole!):
%a – nome del giorno della settimana in forma abbreviata, secondo l’impostazione locale
%A – giorno della settimana per intero, secondo l’impostazione locale
%b – nome del mese abbreviato, secondo l’impostazione locale
%B – nome del mese intero, secondo l’impostazione locale
%c - rappresentazione preferita della data e dell’ora, secondo l’impostazione locale
%C – numero del secolo (l’anno diviso cento e troncato all’intero, da 00 a 99)
%d - giorno del mese da 00 a 31
%D – come %m/%d/%y
%e - giorno del mese, la cifra singola è preceduta da uno spazio, da 1 a 31
%g - anno all’interno del secolo [00,99]
%G – l’anno incluso il secolo [0000,9999]
%h - come %b
%H – l’ora usando le 24 ore (da 00 a 23)
%I - l’ora nel formato di 12 ore (da 01 a 12)
%j - giorno dell’anno (da 001 a 366)
%k – Ora (24 ore) con le cifre singole precedute dallo spazio bianco (da 1 a 24)
%l - Ora (12 ore) con le cifre singole precedute dallo spazio bianco (da 1 a 12)
%m – mese (da 01 a 12)
%M – minuti
%n - a capo
%p - `am' oppure ‘pm’ a secondo dell’impostazione dell’ora locale
%r - l’ora in notazione a.m. e p.m.
%R – l’ora in notazione 24 ore
%S - secondi
%t - carattere di tabulazione
%T –ora corrente, uguale a %H:%M:%S
%u – giorno della settimana come numero [1,7], con 1 che rappresenta Lunedì
%U – numero della settimana, partendo dalla prima domenica come prima settimana
%V – La numerazione delle settimana stile ISO 8601 da 01 a 53, dove la settimana 1 ha magari solo 4 giorni ed il Lunedì come primo giorno della settimana
%w – giorno della settimana, con Domenica = 0
%W – numero della settimana partendo dal prim oLUnedì come primo giorno della settimana
%x – rappresentazione della data secondo le impostazioni locali, senza l’ora
%X - rappresentazione dell’ora secondo le impostazioni locali, senza la data
%y – l’anno senza il secolo (da 00 a 99)
%Y – l’anno compreso il secolo
%Z - zona di fuso orario o abbreviazione
%% - il carattere `%'
date_format è essenzialmente preso dalla funzione strftime() del PHP.
Magari avete ulteriori specificatori a secondo della funzione strftime() installata sul vostro sistema in cui è compilato il PHP.
default
E’ usato per attribuire un valore di default (preimpostato) alle variabili. Se la variabile è vuota o non impostata, verrà visualizzato il suo valore di default. Default ha un argomento:
Esempio:
[-$articleTitle|default:"no title"-]
Ouputs:
no title
escape
Questa funzione si usa con i caratteri escape dell’html (o htmlall), gli escape negli url, gli apici nelle variabili, escape esadecimali o hexentity. I caratteri di ewscape sono caratteri di solito interpretati dai browser o compilatori, che però non devono esserlo. Hex e hexentity escape possono essere usati anche con link nascosti di "mailto:" usati per gli spiders web (robot dei motori di ricerca o collettori di spam) per fare in mopdo di rendere questi caratteri visibili. Per default, la variabile contiene già i caratteri di escare.
Esempio:
[-$articleTitle-]
[-$articleTitle|escape-]
[-$articleTitle|escape:"html"-] /* escapes & " ' < > */
[-$articleTitle|escape:"htmlall"-] /* escapes ALL html entities */
[-$articleTitle|escape:"url"-]
[-$articleTitle|escape:"quotes"-]
[-$EmailAddress|escape:"hex entity"-]
OUTPUTs:
'Manuale Installazione Envolution di Zoom'
'Manuale%20Installazione%20Envolution%20di%20Zoom'
'Manuale%20Installazione%20Envolution%20di%20Zoom'
'Manuale%20Installazione%20Envolution%20di%20Zoom'
'Manuale+Installazione+Envolution+di+Zoom'
' Manuale Installazione Envolution di Zoom'
indent
Questa funzione indenta la stringa in ogni riga, per default di 4 spazi. Come parametro opzionale si può specificare il numero di caratteri da indentare. Come secondo parametro opzionale si può specificare il carattere con cui indentare. (Usare " " per tabulare.)
Esempio:
[-$articleTitle-]
[-$articleTitle|indent-]
[-$articleTitle|indent:10-]
[-$articleTitle|indent:1:" "-]
Outputs:
Manuale Installazione Envolution di Zoom.
Manuale Installazione Envolution di Zoom.
Manuale Installazione Envolution di Zoom.
Manuale Installazione Envolution di Zoom.
lower
Questa funzione agisce come capitalize, solo che rende minuscole tutte le prime lettere delle parole nella variabile (come siamo prolissi....).
Esempio:
[-$articleTitle-]
[-$articleTitle|lower-]
Output:
Encompass E’ Il Miglior Motore Grafico.
encompass è indubbiamente il miglior motore grafico tra i cMS.
regex_replace
Questa funzione cerca e sostituisce un’espressione in una varabile. Usare la sintassi di preg_replace() del manuale PHP.
Esempi:
/* sostituisce ogni ritorno a capo, , tab & riga nuova con uno spazio*/
[-$articleTitle-]
[-$articleTitle|regex_replace:"/[ ]/":" "-]
Output:
La programmazione dei moduli
Si impara con la pratica, mi dicono.
La programmazione dei moduli s’impara con la pratica, mi dicono.
replace
Un semplice trova e sostituisci nella variabile.
[-$articleTitle}
[-$articleTitle|replace:"semplice ":”utile"}
[-$articleTitle|replace:" ":" "}
OUTPUT:
Encompass è molto utile.
Encompass è molto semplice.
Encompass è molto utile.
spacify
Serve a inserire uno spazio tra ogni carattere di una variabile. Si può scegliere anche un carattere diverso o una frase da inserire.
[-$articleTitle-]
[-$articleTitle|spacify-]
[-$articleTitle|spacify:"^^"-]
Outputs:
Something Went Wrong in Jet Crash, Experts Say.
S o m e t h i n g W e n t W r o n g i n J e t C r a s h , E x p e r t s S a y .
S^^o^^m^^e^^t^^h^^i^^n^^g^^ ^^W^^e^^n^^t^^ ^^W^^r^^o^^n^^g^^ ^^i^^n^^ ^^J^^e^^t^^ ^^C^^r^^a^^s^^h^^,^^ ^^E^^x^^p^^e^^r^^t^^s^^ ^^S^^a^^y^^.
string_format
Serve a formattare stringhe contenenti numeri, ecc. Usare la sintassi di formattazione di sprintf.
[-$number-]
[-$number|string_format:"%.2f"-]
[-$number|string_format:"%d"-]
Output:
23.5787446
23.58
24
strip_tags
Questa funziona elimina i tag dell’html, cioè tutto quello che è tra < e >.
[-$articleTitle-]
[-$articleTitle|strip_tags-]
Outputs:
Fare questa traduzione èmoltomoltolungo.
Fare questa traduzione è molto molto lungo.
truncate
Serve a troncare una variabile a un certo numero di caratteri, per default a 80. Come secondo parametro opzionale si può specificare un testo da specificare se c’è stato troncamento. I caratteri del testo sono inclusi con la lunghezza originaria di troncamento. Per default, il troncamento non taglierà le parole intere. Se volete il troncamento esatto nella lunghezza, potete passare il terzo argomento opzionale, true.
Examples:
[-$articleTitle-]
[-$articleTitle|truncate-]
[-$articleTitle|truncate:30-]
[-$articleTitle|truncate:30:""-]
[-$articleTitle|truncate:30:"---"-]
[-$articleTitle|truncate:30:"":true-]
[-$articleTitle|truncate:30:"...":true-]
Outputs:
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after...
Two Sisters Reunite after
Two Sisters Reunite after---
Two Sisters Reunite after Eigh
Two Sisters Reunite after E...
upper
è simile a capitalize e a lower, solo che trasforma tutti i caratteri in maiuscolo.
Examples:
[-$articleTitle-]
[-$articleTitle|upper-]
Outputs:
Envolution è veramente un buon sistema di gestione dei contenuti.
ENVOLUTION È VERAMENTE UN BUON SISTEMA DI GESTIONE DEI CONTENUTI.
wordwrap
Questa funzione limita una frase a una certa lunghezza di colonna, 80 per default. Come secondo parametro opzionale si può specificare un carattere con cui andare a capo ( per default). La funzione andra a capo alla fine della parola per default, ma se si vuole la lunghezza esastta, basta passare il terzo argomento opzionale, cioè true.
Examples:
[-$articleTitle-]
[-$articleTitle|wordwrap:30-]
[-$articleTitle|wordwrap:20-]
[-$articleTitle|wordwrap:30:"
"-]
[-$articleTitle|wordwrap:30:" ":true-]
Outputs:
Blind woman gets new kidney from dad she hasn't seen in years.
Con Encompass è facile gestire tutta la grafica e il menu del sito.
Con Encompass è facile gestire
tutta la grafica e il menu del
sito.
Con Encompass è facile
Gestire tutta la grafica
E il menu del
sito.
Con Encompass è
facile gestire
tutta la grafica e il menu del sito.
Con Encompass è facile gestire t
utta la grafica e il menu del
sito.
Da notare che si possono applicari tante funzioni quante se ne vogliono a una variabile. I modificatori saranno applicati nell’ordine in cui sono combinati, da sinistra a destra. I modificatori devono essere separati dal simbolo | (pipe).
La guida originale la potete trovare all’indirizzo: http://smarty.php.net/manual/en/.
La guida originale usa i vecchi simboli delimitatori {}. E’ stata modificata la guida per usare i delimitatori standard [- -] di Encompass.
--saytheb