Template override con Joomla – il modo migliore per personalizzare i componenti
Nelle versioni di Joomla precedenti alla 1.5, se avessimo voluto personalizzare l’aspetto di un componente, avremmo dovuto molto probabilmente mettere mano direttamente al codice sorgente del componente. Mi è successo personalmente, e non è la soluzione ideale, in quanto ci rendiamo complicato l’eventuale aggiornamento a versioni successive dello stesso componente.
Fortunatamente, in Joomla 1.5 esiste una soluzione migliore.
La tecnica che andrò a illustrare è quella del template override. In breve, consiste nel creare una versione modificata di uno specifica pagina del nostro componente, e salvarla insieme al template che vogliamo usare. Questo ci dà due grossi vantaggi:
- il componente può essere aggiornato, senza che le nostre modifiche vengano sovrascritte;
- se riutilizziamo il nostro template altrove, le modifiche allo specifico componente saranno automaticamente applicate.
La tecnica si basa sul fatto che i componenti pensati per la versione 1.5 seguono l’approccio MVC (Model – View – Controller) per la separazione delle pagine che producono l’output da quelle che si occupano della logica applicativa, tanto è vero che troviamo delle cartelle denominate proprio in questa maniera. Per l’override, a noi interessa la parte dedicata alle viste (Views). E’ possibile creare nel proprio template una copia di questa pagina, modificata in base alle proprie esigenze, e tale pagina verrà utilzzata al posto di quella originale. Le pagine modificate devono essere racchiuse in una cartella chiamata html all’interno del template.
Passiamo ad un esempio concreto. Nel nostro caso abbiamo bisogno di sostituire la visualizzazione tabellare dei contatti (predefinita) con una visualizzazione ad elenco, in cui i dati di ciascun contatto fossero racchiusi in una div. Esaminiamo quindi la struttura del componente “com_contacts”, e vediamo dove sono le pagine che ci interessano:
/components/com_contact/views/category/tmpl
Tutte le modifiche di override sono contenute in una cartella html all’interno del nostro template, che quindi andiamo a creare. All’interno della cartella html, la struttura riporta solo il nome dell’estensione e il nome della vista da modificare:
/templates/nometemplate/html/com_contact/category
Copiamo quindi dalla cartella del componente a quella del template la pagina (o le pagine) che vogliamo modificare, nel nostro caso default.php e default_items.php. Queste sono pagine abbastanza facili da modificare per chiunque conosca un minimo di html e php. Salviamo il tutto, e abbiamo finito: da questo momento, fintanto che useremo il template in questione, l’elenco dei contatti sarà visualizzato come abbiamo impostato noi.