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'
bo
62;@me.n
;et
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