
Attenzione a tutti gli sviluppatori di moduli! Nell' ultima release di Envolution, v1.1.0, ci è stato rilasciato un nuovo set di funzioni sotto forma di estensione API envRender. Queste funzioni ci permettono di creare templates per l'output dei nostri moduli. Molta gente non a conoscenza della loro esistenza, non fanno uso delle loro grandi potenzialità per la creazione del layout dei moduli. Questo articolo, in due parti, spiegherà il nuovo set di funzioni e ci mostrerà le sue caratteristiche implemenandole, tramite un tutorial, in un processo di design di un modulo. Nella prima parte, verranno illustrate le nuove funzioni e si spiegherà cosa esse fanno senza addentrarci all'interno del codice. Questa è intanto la lista delle funzioni disponibili, di seguito c'è una più approfondita spiegazione di cosa ognuno di esse fa e come lavora.
envTplStart ();
envTplEnd ();
envTplAssign ();
envTplAppend
();
envTplUnassign ();
envTplRegFunc ();
envTplUnRegFunc
();
envTplRender ();
envTplFetch ();
envTplLoadEngine
();
envTplGetPath ();
envTplImagePath ();
envTplCheckPath ();
L' Inizio e la Fine:
envTplStart
Questa funzione dà inizio all'utilizzo del nuovo sistema di template dei moduli. Ad essa vengono passati tre argomenti, due dei quali obbligatori e uno opzionale. Il primo di questi argomenti definisce il nome del modulo; esse deve essere uguale al nome come è mostrato nel pannello d'amministrazione dei moduli ed è case sensitive. Il secondo definisce il nome file del template principale da essere utilizzato senza l'estensione (.tpl) alla fine. Infine il terzo argomento controlla la visibilità a destra e a sinistra dei blocchi
1. ->questa impostazione disabilita i blocchi di destra
2.
->questa impostazione abilita i blocchi di destra
3. -> questa
impostazione disabilita i blocchi di sinistra e di destra cos' come l' header ed
il footer (i.e.: Frontpage Module)
Questo è un esempio di come una funzione envTplStart potrebbe apparire:
envTplStart (‘TestMod’, ‘testmodmain’, 1);
Lo scopo principale di questa funzione è di:
1.) Far partire il motore del tema.
2.) Controllare e caricare i file
template (più avanti in questo capitolo).
3.) Caricare l'intestazione
(header) se necessario.
La funzione envTplStart ritorna true quando ha terminato.
envTplEnd
Questa funzione è piuttosto semplice ed il suo unico scopo e quello di includere il file di piedi pagina (footer), terminando così il layoutfooter.Non le vengono passati argomenti e ritorna true quando ha terminato.
envTplEnd();
Le Variabili sono mie Amiche
envTplAssign
Questa è una delle più potenti funzioni del gruppo. Quelli che hanno familiarità con il tema Envolution avranno già visto le variabili cha appaiono come [-$VARIABLE-]. Questa funzione permette agli sviluppatori di impostare le loro proprie variabili del tema.
La funzione envTplAssign ha 2 argomenti, il primo è il nome della variabile ed il secondo è il valore della variabile. Questa funzione ritornerà true quando terminato.
envTplAssign (‘TESTVAR’, ‘Questo è il valore di TESTVAR’);
Fino ad ora, la convenzione dei nomi per le variabili dei temi è stata quella di utilizzare tutto maiuscolo. Questa convenzione dovrebbe essere seguita da tutti gli sviluppatori di moduli per motivi di conformità agli standards.
envTplAppend
Questa funzione è usata insieme alla funzione envTplAssign. Essa abilita lo sviluppatore del modulo ad aggiungere ulteriori informazioni ad una variabile già impostata. Essa accetta lo stesso tipo di argomenti di envTplAssign e ritorna true quando terminato.
envTplAppend (‘TESTVAR’, ‘Aggiunta di più informazioni a TESTVAR’);
envTplUnassign
Una funzione di assegnazione non sarebbe completa senza una funzione di (dis)assegnazione per cancellare il suo lavoro e questo è ciò che esattamente fa envTplUnassign. Essa cancella il valore della variabile specificata. Il solo argomento passato a questa funzione è il nome della variabile cancellata e quindi ritorna vero quando terminato.
envTplUnassign (‘TESTVAR’);
Congiunzione Giunzione fa un tema Funzione
envTplRegFunc
Questa ti permette di chiamare una specifica funzione all'interno di un template. Gli argomenti per questa funzione sono il nome del place holder (es. [-$MIAFUNZ-])ed il nome della funzione. Una volta che una funzione è assegnata ed un place holder, potrai usarlo dentro un tema allo stesso modo di una varabile. Ritorna true quando terminato.
envTplRegFunc(‘TESTFUNC’, ‘testfunc’);
envTplUnRegFunc
Puoi indovinare, questa particolare funzione ha il solo scopo di cancellare il placeholder impostato da envTplRegFunc. L'argomento per questa è il nome del placeholder da cancellare. Ritorna true quando terminato.
envTplUnRegFunc (‘TESTFUNC’);
Dove Oh Dove Sono I Miei Templates?
envTplRender
Una volta che tutte le variabili e tutti i placeholder delle funzioni sono stati impostati è tempo di mstrare le tue informazioni; questo è fatto attraverso la funzione envTplRender. Il suo lavoro è quello di prendere che gli è stato assegnato ed i suoi argomenti ed elaborarlo per l'output. L'argomento passato saranno il nome del template desiderato senza l'estensione (.tpl).
Ritorna true quando terminato.
envTplRender (‘testmodmain’);
envTplFetch
L'abilità di usare più di un template o di includere files template all'interno di altri diventa possibile con questa funzione. Essa ti permette tirar dentro un particolare file template, però non elabora subito il file. Esso ti permette di assegnare variabili e funzioni per questo specifico template prima di elaborarlo per l'output. Questo avrà più senso dopo nel tutorial. L'argomento per questa funzione è il nome del template che vuoi includere senza l'estensione (.tpl). Ritorna true quando terminato.
envTplFetch(‘testmodsubtpl’);
Shhh… Uno Sguardo dietro le Scene
Le quattro ultime funzioni non sono direttamente accessibili dallo sviluppatore del modulo ma da altre funzioni mostrate sopra. Sono qui presentate per il solo scopo di una completa spiegazione delle API di rendering.
envTplLoadEngine
Questa funzone controlla se il sistema smarty template è già inizializzato, se no, include le classi di smarty e ritorna true. Se c'è già una istanza di smarty attiva questa funzione ritorna false.
envTplGetPath
Questa funzione controlla se c'è definito un file template personalizzato e ritorna il suo path se esiste.
envTplImagePath
Questa funzione controlla se c'è una directory di immagini personalizzata e ritorna il suo path se esiste.
envTplCheckPath
Controlla se c'è un template personalizzato per il modulo specificato e ritorna il suo path se esiste.
Bene, questo è tutto per questa parte.Nella prossima lezione presenterò veri esempi di codice di come implementare queste funzioni nel tuo design e ti mostrerò come approcciare differenti problemi con differenti soluzioni.
Buona programmazione!
ApathyBoy