I cambiamenti sostanziali si cominciamo a vedere proprio nella struttura di questo file (il gestore finale dell’output)
Restando invariate le finalità (cioè gestione del layout globale del sito) sono radicalmente cambiate le modalità di richiamo dei vari blocchi che creano e compongono l’output a video del CMS:
A cominciare dall’header per esempio e come riportato sul tutorial di Barrie north il listato:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="it-it" lang="it-it" >
<head>
Fà prelevare direttamente dal file di configurazione il parametro relativo alla lingua, mentre il susseguente:
<jdoc:include type=”head” />
prende sempre dallo stesso file parametri relativi ai metatag, alla favicon e agli rss del sito.
Cambia nella sostanza la sintassi utilizzata e cioè al posto di:
<link href=”<?php echo $mosConfig_live_site;?>/templates/rhuk_solarflare_ii/css/template_css.css”
presente nella versione 1.0.13 del template rhuk_solarflare troviamo ora:
<link rel=”stylesheet” href=”templates/<?php echo $this?template ?>/css/template.css” type=”text/css” />
la variabile <?php echo $this?template ?> sostituisce <?php echo $mosConfig_live_site;?> come percorso base di richiamo.
Ovviamente ciò vale per tutti i file da richiamare, ad esempio nel template Beez sempre nella attuale versione 1.5 RC1 il richiamo all’immagine del logo è il seguente:
<img src=”templates/<?php echo $this?template ?>/images/logo.gif”
I componenti ed i moduli
Listato relativo alla versione 1.0.0 di Joomla! per richiamare il Mainbody:
<?php mosMainBody(); ?>
Diventa per la 1.5
<jdoc:include type=”component” />
E a questo punto una piccola considerazione; il listato completo e corretto relativo al richiamo dell’output dei componenti è il seguente (si considerano sempre listati relativi ai template di default di joomla! 1.5):
<?php if($this?params?get(’showComponent’)) : ?>
Significa che vengono lette le variabili impostate nel file “Params.in” uno dei nuovi file inseriti nella struttura e a seconda dei casi può essere possibile non visualizzare il componente nella pagina. E’ di sicuro un impostazione utile... il primo caso che viene in mente riporta alle tante richieste sui forum ufficiali di utenti che desideravano avere due home page distinte, la prima senza output del mainbody e le altre in modalità normale (es. quando si desidera mostrare in determinate pagine solo l’output di moduli senza il mainbody). In aggiunta questa funzione potrebbe di sicuro rivelarsi interessante per la gestione degli spazi occupati dai moduli in assenza dell’output di componenti, ma và ovviamente gestita con condizioni php.
I moduli, cosa è cambiato nella loro gestione
lo snippet di codice della versione 1.0.0
<?php mosLoadModules ( ‘user1’ ); ?>
Le possibilità di output della versione 1.0.0 oltre ad assegnare un nome e posizione al modulo prevedevano anche il suo “stile”, è cioè possibile assegnare questi stili:
0, 1, -1, -2 , -3
Esempio:
<?php mosLoadModules ( ‘user1’, -2 ); ?>
Gli stili 0 ed 1 creano un output in tabelle, il primo in colonna il secondo in celle
lo stile -1 genera un output grezzo e senza titolo del modulo
lo stile -2 genera un ouput con div contenitore e testata (h3)
lo stile -3 genera un output con div annidati fornendo possibilità maggiormente performanti (si và dalla possibilità di differenziare testata,parte centrale e footer del modulo, sino alla creazione ad esempio di moduli scalabili (adattabili) in larghezza ed altezza o all’utilizzo di angoli arrotondati (sfruttando la composizione di immagini)
Nella nuova versione di Joomla! invece abbiamo questo:
<jdoc:include type=”modules” name=”user2” style=”xhtml” />
e gli stili disponibili per i livelli diventano, come riportato da barrie north e come peraltro facilmente visibile nel file index.php del template rhuk_milkyway
-
table
-
horz
-
xhtml
-
rounded
gli stili table ed horz si rifanno agli stili 0 ed 1 della versione 1.0.0
lo stile xhtml genera un div contenitore per il modulo e la sua testata in h3
lo stile rounded genera div annidati che riprendono le funzionalità dello stile -3 precedente
E’ in ogni caso possibile personalizzare ulteriormente l’output dei moduli utilizzando i suffissi css come del resto abbiamo fatto fin’ora.
In sostanza i cambiamenti sembrano di facile comprensione e sicuramente capire questa nuova sintassi aiuta nella migrazione dei template dalla versione 1.0.0 alla versione 1.5, ma sfortunatamente o fortunamente, a seconda dei casi, per noi non è tutto qui, ci sono altre considerazioni da fare.
Nei riferimenti fatti in precedenza sui cambiamenti del core di joomla avevo premesso che il lavoro degli sviluppatori è stato magnifico e non è stato rivolto solo al distacco definitivo dai sorgenti Mambo bensì si è cercato di dare maggiore flessibilità al lavoro dei designer e dei programmatori, realizzando quello che a prima vista sembra una specie di sistema template aggiuntivo e differenziato:
Ogni componente ed ogni modulo di Joomla! versione 1.5 ha la sua cartella “tpl” ad esempio prendiamo il componente “com_search”, all’interno della cartella views\search\tmpl ed aprendo il file “default.php” osserviamo il listato prestando attenzione alla classe componentheading:
Faccio riferimento a componentheading per fare notare che è cioè possibile a questo punto anche assegnare css diversi ai componenti per fare cioè in modo di avere testate diverse per diversi componenti.
Stiamo però agendo direttamente nel core del sistema, questo è bene ricordarlo, ed è una cosa che possiamo fare anche nella versione 1.0.0; allora perchè questa nuova struttura?
La risposta credo si possa trovare aprendo il template “beez” anch’esso presente di default nell’installazione di Joomla! 1.5 e prestando attenzione al contenuto della cartella “html” al suo interno
-
com_content
-
com_newsfeeds
-
com_poll
-
mod_latestnews
-
mod_login
Ne cito solo alcune, in realtà sono molte di più, e vi invito a fare questa prova, installate come predefinito il template in questione, osservate la home e il modulo “login”, ora semplicemente rinominate la cartella “mod_login” e fate un refresh della home... visto?
il layout del modulo login è cambiato perchè il suo layout adesso è gestito esternamente e precisamente dalla cartella “mod_login” presente nel template “Beez” con sue classi css definite. Altre prove fatte ad esempio impostando uno sfondo #000 ai file relativi della cartella “com_contact” hanno dato esito positivo.
Dal Wiki di Joomla.it