gototopgototop
 
Sei in: Home Page Articoli Joomla! 1.5 Override template Joomla! 1.5 | Sovrascrivere l'output del core di Joomla!

Cosa è l'override dell'output di Joomla!

Come anticipato nell'introduzione, possiamo personalizzare il template di Joomla! cambiando la grafica ed il layout dell'intero sito, rendendolo unico e differente rispetto a tutti gli altri siti web. Si consideri il template alla pari di un "vestito"; esso può cambiare a seconda delle occasioni (nel nostro caso in base al target del sito da realizzare) ma chi lo indossa (il core con l'output dei contenuti) rimane sempre uguale.

Possiamo considerare, quindi, il template come la  "maschera" dietro la quale lavorano in "background" tutte le estensioni di Joomla! installate, quali Moduli e Componenti; come se non bastasse, principio cardine del seguente articolo, possiamo anche modificare il codice proveniente dal core di Joomla! apportando modifiche al codice PHP e HTML sovrascrivendolo. Tale processo di sovrascrittura prende il nome di Override dell'output di Joomla!

L'output standard di un Modulo o Componente per Joomla! può essere bypassato, sovrascrivendo determinati files del core con del codice PHP e HTML, inserendoli in una cartella appositamente creata e denominata html del template predefinito.

Vantaggi dell'override

I vantaggi che l'override dell'output di Joomla! apporta in un sito sono notevoli e molto importanti. Si è a conoscenza del fatto che il codice HTML prodotto è costituito da molte tabelle, tantissime sono superflue ed inutili - a mio modo di vedere - Questo motivo allontana un sito web realizzato con Joomla! dall'uso semantico del codice; si pensi - ad esempio - al titolo che potrebbe essere dato ad una pagina; esso è contenuto in una cella di tabella (td class="componentheading") al posto di un più corretto tag h1, h2 ecc.

Adottando l'override, quindi, è possibile introdurre modifiche sostanziali al corretto utilizzo dei tag senza per questo intaccare il core di Joomla! E' vero anche che una riscrittura del core potrebbe eliminare le tabelle introdotte nei files .php ma, nel caso di un aggiornamento critico del CMS, si deve rifare tutto da zero in quanto non possiamo sapere quali files siano stati interessati o meno.   

Individuare i files da sovrascrivere

Se non si ha molta dimestichezza con il codice sorgente di Joomla!, sarebbe meglio cominciare,  prima di metterci mano, ad individuare i files che possono essere sovrascritti, senza causare danni al sito web. Se si accede tramite un qualsiasi programma FTP alla directory remota, nella quale sono contenuti tutti i files, possiamo notare che sono presenti le seguenti cartelle:

/
administrator
cache
components
images
includes
installation
joomla
language
libraries
logs
media
modules
plugins
templates
tmp
xmlrpc

Oltre alle suddette cartelle, ci sono anche altri files che compongono tutta la struttura del CMS. Per cominciare con l'ovverride dell'output, è necessario creare una cartella denominata html e va collocata nella cartella del template di default, attualmente in uso. Fatto questo, la cartella del template sarà così formata:

/Cartella_Template/html/Nome_Estensione/Nome_View/Nome_File.php

Per esempio, se si volesse sovrascrivere l'output di un "Articolo", generato dal componente com_content, è necessario copiare il file da:

Root_Principale/components/com_content/views/article/tmpl/default.php

a

Cartella_Template/html/com_content/article/default.php

Si noti la differenza sostanziale del percorso tra le due cartelle.

Alla stessa maniera, se volessimo fare l'override del modulo di login (mod_login), dovremmo copiare il file dalla seguente cartella:

Root_Principale/modules/mod_login/tmpl/default.php

in quest'altra:

Cartella_Template/html/mod_login/default.php

Joomla 1.5.7, per esempio, veniva installato con il template di default "Beez". Beez adotta l'override del template affinchè il suo layout fosse producesse un codice HTML table-less, leggero e semanticamente corretto.

Per potere vedere la directory dell'override del template Beez, portarsi nella cartella /templates/Beez/html.

Se si volesse utilizzare l'override del template Beez nel proprio sito, non si deve fare altro che copiare tutta la cartella html nella propria directory del template di default. Tale operazione non è sufficente a garantire l'ottimizzazione dell'override dell'output del proprio template. Se si installa la cartella del template, si deve aggiungere un rigo di codice nel file templateDetails.xml; per la precisione si deve scrivere:

<folder>html</folder>

Il codice di cui sopra, in sostanza, permette all'installer di Joomla! di estrarre, oltre a tutti gli altri files, anche quelli che dovranno assolvere alla funzione di override dell'output.

Conclusioni

Come si è avuto modo di vedere in questa panoramica sull'override, si potrebbe affermare che non ci sarebbero limiti alla sovrascrittura dell'output del core di Joomla!. Esso consente di aggiungere, modificare e rimuovere il codice con il quale sono state scritte le estensioni per il CMS.

Commenti  

0 #3 introdesign 2011-05-12 14:51
Ciao, favoloso sono un appassionato di Joomla, favoloso questo tutorial mi e servito molto grazie.
Citazione
0 #2 Admin 2011-04-06 22:58
Ciao
il componente VirtueMart è "esterno" al core Joomla!; esso è distinto e separato. Se volessi crearti un nuovo template per l'e-commerce, hai la possibilità di farlo dall'amministrazione del negozio on-line. Tra i parametri sulla destra puoi scegliere quale è il template che desideri utilizzare. Ti fai una copia del template di default di VM ed in quella cartella vai ad apportare tutte le modifiche che desideri.
Citazione
0 #1 Cassiopea 2011-04-06 22:05
Cosa s'intende per nome view?
Se il componente in questione è virtuemart ad esempio e il file ha questo percorso:
com_virtuemart/themes/default/templates/common/minicart.tpl.php
cosa scriverò nella cartella html del template?
Grazie della guida.
Citazione

Aggiungi commento


Codice di sicurezza
Aggiorna

© www.extrowebsite.com - Grafica, layout, articoli e guide sono di esclusiva proprietà del webmaster - Tutti i diritti riservati