- Come si può modificare un template Joomla in totale sicurezza e non perdere le modifiche al prossimo aggiornamento?
- Come si fa a creare più override diversi della stessa vista?
Per rispondere a queste domande, in Joomla è stata introdotta una nuova funzionalità chiamata Child Templates.
Che cosa sono i Child Templates ?
Il 15 febbraio 2022, è stata rilasciata Joomla 4.1 che ha portato con se una nuove funzionalità che si chiama Child Templates. Questa funzionalità significa che Joomla supporterà i template con la possibilità di creare template figli. In altre parole, un Child Template è un template che eredita le funzionalità e le caratteristiche del template padre.
Perché si devono utilizzare ?
L'idea dietro i Child Templates e di permettere gli aggiornamenti dei template in totale sicurezza e senza modificare o perdere le personalizzazioni fatte dall'utente. In sostanza questo significa un ambiente più sicuro per gli autori di template ma anche per gli utenti finali.
Come funziona ?
Un Child Template funziona esattamente come qualsiasi altro template tranne che usa tutto il codice, php, css e javascript, del suo template padre. Al suo livello più elementare contiene solo un singolo file, templateDetails.xml
. In questo file esiste un campo che fa riferimento al template padre, tipo: <parent>cassiopeia</parent>
. La parte MVC di Joomla è già consapevole di come gestire i Child Templates e funziona in base all'ereditarietà.
Per esempio, se index.php
non esiste nel Child Template, allora verrà usato quello del template padre. Questo schema è applicato ai punti di ingresso diretti del template e anche agli override dei file statici.
Ora con un Child Template si può personalizzare un override o un css e mantenere il template padre pulito come il giorno in cui è stato installato. Non c'è limite al numero di Child Templates che si possono creare, quindi ognuno potrebbe avere diversi layout e stili.
Tutti i template possono avere Child Templates ?
No, questa e una caratteristica opzionale, quindi un template per essere abilitato per i Child Templates dovrebbe avere, nel file manifest templateDetails.xml
, un nome di campo ereditabile con un valore 1.
<inheritable>1</inheritable>
Un'altra novità, a partire dalla versione di Joomla 4.1, e che le risorse statiche sono memorizzate nella cartella media piuttosto che nella cartella template. Con risorse statiche si intende i file che sono ragiunti dal browser web, i file css e javascript, le immagini, in pratica le cartelle CSS, SCSS, JS e IMAGES. Questo vale per Cassiopeia e per tutti altri template che sono compatibili con Child Templates.
ALTRE RISORSE
* Dimitris Grammatiko: Sweet child o' mine; A deep dive into Child Templates for Joomla 4.1 (opens in a new tab)
* Il concetto dietro i Child Templates e perché utilizzarli (opens in a new tab). (Articolo su Joomla! Magazine maggio 2022)
Buon Joomla !