
Dal mio punto di vista una delle caratteristiche che rende davvero potente e flessibile Cms Made Simple è Smarty. Per chi non lo conoscesse Smarty è un template engine per PHP. In pratica fornisce un modo davvero semplice ed intuitivo per separare la logica e il contenuto dell’applicazione dalla sua presentazione. Inoltre Smarty è efficiente e non “sporca” i nostri template con codice php rendendo semplice l’analisi e il debug del codice.
Per approfondire il concetto vi consiglio di fare un salto su smarty.net, qui trovate un ottimo manuale in italiano per approfondirne la conoscenza.
Ad ogni modo non tutte le funzionalità di smarty sono supportate da cmsms, daltronde solo alcune di esse si rivelano effettivamente utili (mentre altre, se ci fossero, sarebbero davvero comode
). In questa primissima parte della guida mi limiterò a fornirvi i concetti fondamentali per effettuare alcune delle operazioni più semplici, utili a compiere i primi passi nell’utilizzo di questo strumento.
Sintassi generale
Il codice smarty fa racchiuso all’interno di parentesi graffe {}, ad esempio se vogliamo stampare il contenuto di una variabile è sufficiente scrivere {$nomeVariabile}.
Possiamo inserire smarty in tre posti:
- nel contenuto della pagina
- nell’apposito spazio di ogni pagina accessibile dal tab “opzioni”, con label “Dati o logica Smarty specifica di questa pagina”
- nei template
Non possiamo inserire smarty dentro i tag definiti dall’ utente (o UDT) che di fatto sono un modo semplice e veloce di creare snippet smarty da richiamare poi dove riteniamo più opportuno
I commenti si scrivono in questo modo {* questo è un commento *}
Per evitare errori dovuti all’utilizzo di javascript (che fa a sua volta uso di parentesi graffe) è necessario includere tutto il codice dentro il tag smarty “literal”. In pratica tutto quello racchiuso in questo tag non verrà considerato codice smarty e quindi non verrà parsato. Ad esempio per includere uno script fatto con jQuery scriveremo:
{literal}
$(document).ready(function() {
... codice ...
});
{/literal}
Possiamo poi iniettare informazioni via smarty aprendo e chiudendo literal dentro a un js, il risultato sarà poco leggibile ma funzionale.
In base al tag smarty che stiamo utilizzando possono essere o meno disponibili parametri addizionali. i parametri hanno la seguente sintassi:
{tag_smarty nome_parametro = 'valore_parametro'}
come valore parametro possiamo utilizzare valori statici o variabili, in quel caso si devono utilizzare i doppi apici o nessun apice.
Variabili
In ogni pagina di CMS Made Simple sono disponibili diverse variabili di pagina alle quali possiamo attingere grazie a smarty. Il primo passo consiste nel sapere quali sono e che valore hanno. Per recuperare questo tipo di informazioni è sufficiente inserire {get_template_vars}. Questo plugin ha l’unica funzione di stamparvi nella pagina tutte le variabili disponibili.
Come dicevamo poco fa per stampare il contenuto di una variabile è sufficiente nominarla racchiusa all’interno delle parentesi graffe {$nomeVariabile}.
Per assegnare un valore statico ad una variabile si utilizzerà il comando “assign“; assign ha due parametri, var, il nome della variabile e value, il suo valore. Si scriverà:
{assign var='nomeVar' value='valoreVar'}
Per assegnare il varore di un blocco di pagina, o del content si userà il parametro assign di content in questo modo:
{content block='nomeBlocco' assign='nomeVarBlocco'}
Poi quando vorrò stampare il contenuto assegnato scriverò il nome della variabile preceduta dal dollaro:
{$nomeVarBlocco}
Se voglio concatenare due variabili, o una variabile e del testo scriverò:
{$nomeVar|cat:$altraVar}
Oppure:
{$nomeVar|cat:’ stringa che voglio concatenare’}
Oppore posso fare netrambe le cose:
{$nomeVar|cat:$altraVar|cat:’ stringa che voglio concatenare’}
Ovviamente in tutti questi casi il contenuto delle variabili coinvolte verrà trattato come stringa.
Se volgio invece eseguire delle operazioni matematiche scriverò:
Somma: {$valore+10}
Divisione: {$valore+10}
Moltiplicazione: {$valore*10}
Se non desidero stampare direttamente il valore ma utilizzarlo in modo differente posso assegnare il risultato ad un’altra variabile usando il comando assign, in questo modo:
{assign var='nuova' value=$valore/10}
Per oggi ci fermiamo qui, nella prossima parte vedremo la logica condizionale, i clicli e altre cosette utili.








Lascia un commento