Tutorial Avanzati - Smarty e Xoops - Xoops Italia


left Login right
Nome utente:

Password:


Hai perso la password?
Registrati ora!
left Ricerca right
left Community right
left Collaborare right
left Supporto right
left Access Key right
  • ALT+1 Home
  • ALT+2 News
  • ALT+3 Forum
  • ALT+4 Downloads
  • ALT+5 Contattaci
  • ALT+6 Faq
[Maiusc+Alt] con FFox 2 [Alt+Invio] con IExplorer
left Statistiche right
Utenti registrati:
Oggi: 0
Ieri: 1
Totali: 5618
Ultimo: lopez

Utenti online:
Ospiti : 8
Membri : 0
Totali: 8
Lista utenti [Popup]

Tutorial Avanzati :: Temi e templates

Smarty e Xoops


Smarty e Xoops
Ianez
www.xoops-tips.com
Smarty e Xoops, binomio eccezionale. Entriamo più in profondità in questo rapporto analizzando da vicino questo potente motore per template.
Profilo autore: Ianez
Profilo di Ianez
Indice contenuti
  1. 1. Cos'è Smarty
  2. 2. Xoops e Smarty
    1. 2.1 Tag Smarty pre-impostati in Xoops
    2. 2.2 Sezioni di codice da inserire in un tema
  3. 3. Esempi di funzioni Smarty in Xoops
    1. 3.1 Utilizzo del modificatore in run-time all’interno di Xoops
    2. a) Personalizzazione dei blocchi
    3. b) Titolo della pagina <{$xoops_pagetitle}>
    4. c) Parole chiave contestuali (meta parole chiave)
    5. 3.2 Utilizzare i blocchi a destra

1. Cos’è Smarty?

Questo è quanto l’inventore di Smarty dice a riguardo:

“Sebbene Smarty sia noto soprattutto come ‘Motore per temi grafici’, in realtà può essere meglio definito come: ‘ Piattaforma per temi e presentazioni’, Vale a dire che fornisce al programmatore e al grafico una serie di strumenti per automatizzare operazioni normalmente correlate all’interfaccia di presentazione di un’applicazione. Sottolineo il termine Piattaforma perché Smarty non è un semplice motore per sostituire tag all’interno di un template. Anche se può venire utilizzato a questo scopo, il suo fine principale è quello di permettere uno sviluppo rapido e semplice della vostra applicazione, conservando allo stesso tempo alte prestazioni, scalabilità, sicurezza e crescita futura”

smarty.php.net


Ecco alcune delle principali caratteristiche di Smarty (da smarty.php.net):

Caching: Smarty offre impostazioni dettagliate per il caching di una parte o di un’intera pagina web.
File di configurazione: Smarty è in grado di assegnare variabili estratte dai file di configurazione.
Modificatori di variabili: Il contenuto di variabili assegnate può essere aggiustato per la visualizzazione attraverso i modificatori.
Funzioni per i template: Vi sono molte funzioni a disposizione dei grafici per gestire operazioni quali la generazione di segmenti di codice HTML.
Plugins: Quasi ogni aspetto di Smarty viene controllato con l’utilizzo di plugin da inserire nella cartella apposita e richiamabili all’interno di un template o nel codice dell’applicazione.
Debugging: Smarty viene distribuito con una console interna per il debug. In questo modo il grafico può visualizzare tutte le variabili assegnate e il programmatore può verificare le velocità di rendering.



2. Xoops e Smarty
Xoops ha adottato Smarty dalla versione 2. Alcuni utenti si sono opposti all’utilizzo di smarty e hanno continuato lo sviluppo di Xoops 1 chiamandolo e-Xoops.
L’utilizzo dei tag Smarty in Xoops è leggermente differente. Xoops usa < > per includere tag Smarty, per cui invece di {$name}, Xoops utilizza <{$name}>


2.1 Tag Smarty pre-impostati in Xoops

<{php}>Qui codice php<{/php}> Inserisce parti in php puro
<{$xoops_charset}> Inserisce le infomazioni sul seti di caratteri (meta tag) e.g "iso-8859-1", "UTF-8"
<{$xoops_langcode}> Lingua del contenuto e.g. "DE", "EN"
<{$xoops_meta_keywords}> Inserisce la lista delle parole chiave dalle impostazioni Meta tag/Piè di pagina settings (meta tag)
<{$xoops_meta_description}> Inserisce la descrizione del sito
<{$meta_copyright}> Inserisce il copyright del testo
<{$meta_robots}> Inserisce le informazioni W3C per i robot
<{$meta_rating}> Inserisce le informazioni meta tag rating
<{$xoops_sitename}> Inserisce il nome del sito
<{$xoops_pagetitle}> Inserisce il titolo della pagina
<{$xoops_theme}> La directory per i temi "/themes/" e.g "default", "xt2"
<{$xoops_themecss}> Inerisce collegamento a style.css e.g "http://www.xoops.org/themes/default/style.css"
<{$xoops_url}> Inserisce l’indirizzo del sito e.g "http://www.xoops.org"
<{$xoops_js}> Inserisce codice javascript di XOOPS
<{$xoops_banner}> Visualizza i banner
<{$xoops_footer}> Mostra il piè di pagina
<{$xoops_isadmin}> True se il visitatore è Amministratore
<{$xoops_isuser}> True se il visitatore è Utente Registrato
<{$xoops_userid}> User Id dell’utente
<{$xoops_uname}> UserName dell’utente


2.2 Sezioni di codice da inserire in un tema


<{foreach item=block from=$xoops_lblocks}>
<{$block.title}> <{$block.content}>
<{/foreach}>
Visualizza i blocchi a sinistra
<{foreach item=block from=$xoops_ccblocks}>
<{$block.title}> <{$block.content}>
<{/foreach}>
Visualizza i blocchi centro-centro
<{foreach item=block from=$xoops_clblocks}>
<{$block.title}> <{$block.content}>
<{/foreach}>
Visualizza i blocchi centro-sinistra
<{foreach item=block from=$xoops_crblocks}>
<{$block.title}> <{$block.content}>
<{/foreach}>
Visualizza i blocchi centro-destra
<{foreach item=block from=$xoops_rblocks}>
<{$block.title}> <{$block.content}>
<{/foreach}>
Visualizza i blocchi a destra
<{$xoops_contents}> Visualizza il contenuto dei moduli (news, forum, ecc...)
<{if $xoops_showcblock == 1}> Test sulle impostazioni di sistema per visualizzare blocchi in centro
<{if $xoops_showrblock == 1}> Test sulle impostazioni di sistema per visualizzare blocchi a destra
<{if $xoops_showlblock == 1}> Test sulle impostazioni di sistema per visualizzare blocchi a sinistra




3. Esempi di funzioni Smarty in Xoops

Le funzioni possibili di Smarty in Xoops sono numerose. Non cercheremo di descriverle tutte, ne elencheremo piuttosto alcune semplici ma in grado di estendere notevolmente le funzionalità di Xoops. Utilizzando la stessa logica di fondo e soprattutto la vostra immaginazione, potrete utilizzare questi suggerimenti per personalizzare la vostra piattaforma Xoops.

ATTENZIONE!

Ricordate di fare un backup dei vostri file prima di qualsiasi tentativo di modifica, così da poter ritornare alla versione originale nel caso i suggerimenti non funzionino per qualche ragione. Anche se sono stati testati non possiamo garantirne il funzionamento per tutti gli utenti.



3.1 - Utilizzo del modificatore in run-time all’interno di Xoops
Una delle caratteristiche di cui abbiamo parlato è quella di poter impostare il contenuto di una variabile Smarty al momento della sua visualizzazione. Questa opzione fornisce un controllo totale su dove e come desiderate visualizzare i vostri contenuti.


a) Personalizzazione dei blocchi

La visualizzazione dei blocchi in Xoops è legata ai modulo a cui è assegnata. Se non avete impostato un modulo per l’homepage, i blocchi assegnati nella pagina superiore vengono in teoria associati a un modulo che potete chiamare “Modulo pagina superiore”. Questo vale come chiarimento se qualcuno ponesse domande sul rapporto blocco-modulo. Xoops riceve le informazioni di associazione dalla tabella block_module_link.
Se desiderate associare, diciamo, un blocco a destra a un modulo e volete visualizzarlo solo nella pagina superiore del modulo, l’home page. Xoops normalmente visualizzerà il blocco di destra in tutte le pagine del modulo. Potete bloccare la variabile Smarty che controlla la visualizzazione di ogni blocco a destra.
Nel tema di default Xoops, per mostrare i blocchi a destra, verifica se la variabile <{$xoops_showrblock}> è impostata su “1”. Sapendo questo potete impostare la variabile su “0” per fare in modo che i blocchi a destra non compaiano in certe pagine del modulo. (Potrebbe non funzionare se la pagina va in cache).

Come fare
Aprendo la pagina (.php) di un modulo in cui non volete visualizzare i blocchi di destra prima di:
include XOOPS_ROOT_PATH.'/footer.php';
Aggiungete questo codice:
$xoopsTpl->assign('xoops_showrblock', 0);
Facendo questo impedirete la visualizzazione dei blocchi a destra in quella pagina.


b) Titolo della pagina <{$xoops_pagetitle}>

Il titolo di pagina svolge un ruolo importante nel posizionamento sui motori di ricerca. Xoops di default inserisce il nome del modulo come titolo di ciascuna pagina del modulo. Questo comportamento sicuramente non aiuta nel posizionamento. Google e altri motori si basano molto sul titolo di pagina, rispetto ad altro fattori, nella classificazione di una pagina. Una pagina dal sito PR5 può posizionarsi molto meglio di una pagina simile dal sito PR7 solo per il semplice fatto di avere un titolo di pagina con tutte le “parole chiavi” rilevanti.
Esistono numerosi metodi per migliorare i titoli di pagina. Assegnare un proprio titolo di pagina potrebbe sembrare un compito complesso. Ma risulta in realtà molto semplice imparando il funzionamento di Smarty.
Potete anche in questo caso bloccare la variabile Smarty usata al momento della visualizzazione del titolo. Per esempio se desideriamo mostrare come titolo di pagina il nome specifico di un file in download per singlefile.php (solitamente usato dai moduli di download).

Come fare

Sappiamo dalla lettura del file che $dtitle viene assegnata come titolo di un download individuale. Sapendo questo possiamo assegnare il nome del file come titolo.
prima di:
include XOOPS_ROOT_PATH.'/include/comment_view.php';
include XOOPS_ROOT_PATH.'/footer.php';
aggiungete
$xoopsTpl->assign('xoops_pagetitle', $dtitle);
Adesso abbiamo un titolo di pagina unico per ciascun download. Semplice no?


c) Parole chiave contestuali (meta parole chiave)

Il valore delle meta parole chiave nei motori di ricerca è abbastanza opinabile. Google non pone attenzione ad esse, mentre Yahoo o MSN potrebbero o meno dare rilevanza e anche nel caso lo facessero l’effetto sarebbe di certo minore rispetto a quello dei titoli di pagina. Anche se potrebbe non aiutare non vi è alcun danno nell’implementare parole chiave personalizzate. Nel caso vogliate farlo questi sono i passi necessari. Richiederà modifiche al file theme.html e a pagine singole.

Come fare
Diciamo che volete includere anche il nome del file in download nelle parole chiave. Quel che vogliamo fare è semplicemente inserire il nome del file tra le parole chiave di Xoops. Assegneremo quindi una variabile Smarty al nome del download aggiungendola al file theme.html.
Aggiungere in singlefile.php (per esempio):
$xoopsTpl->assign('xoops_customkeywords', $dtitle);
prima di:
include XOOPS_ROOT_PATH.'/include/comment_view.php';
include XOOPS_ROOT_PATH.'/footer.php';
Noterete che abbiamo creato una variabile Smarty chiamata xoops_customkeywords con il valore $dtitle

Adesso aggiungete: (in theme.html)
<{if $xoops_customkeywords != ' '}>
<{$xoops_meta_keywords}>" />
<{else}>nt="<{$xoops_meta_keywords}>" />
<{/if}>


NOTA BENE: <{if $xoops_customkeywords != ' '}>
Notate l’uso delle virgolette single e non doppie. Diversamente potreste avere una pagina bianca. Questo codice dice a Xoops di verificare se la variabile Smarty xoops_customkeywords è stata assegnata. In caso affermativo dice di includerla alle parole chiave di default, diversamente di utilizzare le normali parole chiave. Ora avete personalizzato le vostre parole chiave per ciascuna pagina del vostro sito.
Come suggerito dal nome la variabile e personalizzabile, per cui siete voi a decidere quale informazione volete includere nelle parole chiave. Potete usare semplicemente la variabile xoops_pagetitle invece di crearne una nuova (xoops_customkeywords).
Ma in alcuni casi preferirete non inserire il titolo di pagina perché troppo lungo e quindi poco utile come parola chiave.



3.2 – Utilizzare i blocchi a destra


I blocchi vengono visualizzati da Xoops in questo modo (in inglese per rispettare la sintassi del codice):


blocchi


Modificando il file theme.html è possibile modificare l’ordine dei contenuti se lo si desidera, inserendo le parti di codice relative al blocco nella sequenza desiderata. Qui vi mostreremo l’utilizzo l’uso dei blocchi di destra nel vostro sito Xoops. Se non li utilizzate allora potete utilizzarli in diversi modi, ecco di seguito due esempi. (sono solo idee, per realizzarle dovrete eseguire le necessarie modifiche al vostro file theme.html, come per esempio passare da un layout a due colonne a uno a tre):

a) Blocco centrale a tre colonne


blocchib


b) Doppio blocco centrale


blocchi3


Potete provare tutte le combinazioni che desiderate.
La sola limitazione di Xoops è che non potete creare blocchi in posizione personalizzata e che non sarete in grado di utilizzare i blocchi a destra in modo personale se questo ultimi vengono utilizzati nel tema.
Se esistesse la possibilità di creare blocchi in qualsiasi posizione allora Xoops sarebbe di sicuro il sistema più flessibile di tutti nel presentare le informazioni all’interno di blocchi. Ora provate voi! Come sempre ci auguriamo che le informazioni ricevute vi saranno utili e che le utilizzerete a piacimento nei vostri siti.Xoops dimostra di essere “estensibile” e molto personalizzabile (con l’eccezione del rigido posizionamento imposto ai blocchi). Smarty semplicemente rende il processo molto più rapido e immediato.
Postate i vostri suggerimenti o modifiche personale sul forum Xoopsit!



Ianez

Tradotto per Xoopsit nel Marzo 2006 da un articolo rilasciato nel Febbraio 2005 su www.xoops-tips.com, tutti i diritti sono riservati.

<< theme.html ErrorPages >>
Link relativi

API: Strumenti PM Email PDF Siti Preferiti Stampa | RSS | RDF | ATOM
© 2002-2008 | Xoops Italia
I commenti sono proprietà dei rispettivi autori. Non siamo in alcun modo responsabili del loro contenuto.
Autore Albero
timgno
Inviato: 15/3/2008 20:36  Aggiornato: 15/3/2008 20:36
Maestro
Iscritto: 16/5/2007
Da: Cosenza
Inviati: 787
 Re: Smarty e Xoops
se devo avere lo stesso risultato, come ho cercato di fare in un file php, della variabile:

<{$xoops_sitename}>


con questa variabile:

.XOOPS_SITENAME.


come la ricavo... esiste già, oppure bisogna definirla in mainfile.php?
timgno
Inviato: 16/3/2008 13:02  Aggiornato: 16/3/2008 13:02
Maestro
Iscritto: 16/5/2007
Da: Cosenza
Inviati: 787
 Re: Smarty e Xoops
sono riuscito a definire anche:

.XOOPS_SITENAME.


© 2002-2008 | XOOPS ITALIA
Xoops Italia Logo
Powered by Xoops 2.0.13.2 WAI Level-A Conformance Valid XHTML 1.0 Transitional Valid CSS astonstreet Xoops Themes XHtml Logo RSS 2.0