Ova struktura je implementirana u Joomla! 1.5, odvojeni su logika (programsko povezivanje), podaci i izgled. Znači da su HTML, CSS i drugi kodovi za prikazivanje Joomla!-e (u browserima) sada potupuno odvojeni od Joomla! logistike i ona je potpuno odvojena od template sistema. Ovo omogućava bolju kontrolu izgleda (dizajna) bez da se zalazi u osnovni kod Joomla-e.
Pozicije su sada definisane u templateDetails.xml. Npr:
<positions> <position>top</position> <position>left</position> </positions>
Oznaka verzije je sada deklarisana u template-u. Npr: <mosinstall type=“template”> iz 1.0.x. se zamenjuje sa <install version=“1.5” type=“template”>
Parametri mogu biti definisani u vašem šablonu. Ovo je definisano u templateDetails.xml. Podrazumevane vrednosti parametara se definišu u params.ini, koji je takođe pozvan iz templateDetails.xml kao template <file>. Parametri se mogu podešavati u Administrator Template Manager i takođe u letu upotrebom template Javascript-a.
Svaki podrazumevani sitem chrome ('views') za bilo koji modul ili komponentu može da se “pregazi” sa template-om. Podrazumevani sistem chrome za svaki modul i komponentu sada se nalazi u modules/mod_modulename/tmpl i components/com_componentname/views/layout/tmpl. Paginacija takođe može da se promeni u pagination.php.
Joomla! 1.5 sistem je prearanžiran i sada sadrži JApplication layer, koji u sebi ima brojne objekte i metode koje se pozivaju iz template index.php. Na primer: <?php mosShowHead(); ?>; se zamenjuje sa <jdoc:include type=“head” />, <?php echo $mosConfig_sitename; ?> se zamenjuje sa <?php echo $mainframe→getCfg('sitename');?>, <?php defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' ); ?> se zamenjuje sa <?php no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); ?> ===== Pozicije modula ===== U novoj verziji je i novi metod određivanja pozicija modula. Ova logika može da se upotrebljava za sklopive (collapsible) kolone (npr. nestajanje leve ili desne kolone ukoliko nemaju sadržaja). Funkcija iz 1.0.x mosCountModules se zamenjuje sa $this→countModules - dodaje se uslov: možete koristiti '+', '-', 'or' ili 'and', npr. if ($this→countModules('left or right') == 1). ===== Struktura fajlova ===== Tipična struktura template direktorijuma Najopštije za template je da ima najmanje četiri fajla: * index.php - Obezbeđuje logiku za prikaz i pozicioniranje modula i komponenti. * template.css - Uređuje prezentacioni deo template-a uključujući definisanje stilova, margina, fontova, zaglavlja, podnožja, pozadine, itd. * templateDetails.xml - Sadrži meta-informacije o šablonu koje koristi Installer i Template Manager. * template_thumbnail.ext – zamenjuje .ext sa formatom slike (.jpg, .png, .gif) generalno, slika 200×150 piksela prikazuje se kada kursor miša pređe preko naziva template-a u Template Manager-u. Ovo daje adminitratoru uvid u izgled sajta pre nego sto ga primeni. Tipični template za Joomla! 1.5 sadrži sledeće direktorijume: * css - sadrži .css fajlove * html - sadrži template override fajlove za core output i module chrome * images – sadrži sve slike koje template koristi ===== Pristupačnost i standardi ===== Korišćenjem template overrides, moguće je kreirati Joomla!-u. Parametri i overrides omogućavaju bolju veb standardizaciju, pristupačnost, search engine optimisation (SEO) (source ordering and markup), prilagodljivost različitim jezicima i browser optimizacija (browser-dependent CSS). ===== Podrazumevani sistem template ===== Sistemski template (u /templates direktorijumu) je razvijen zbog uključivanja više CSS fajlova i standardni modules.php (module chrome) i component.php (component chrome). Možete uključiti neke podrazumevane CSS fajlove u vaš template. Npr. <HTML> <link rel=“stylesheet” href=“templates/system/css/system.css” type=“text/css” /> <link rel=“stylesheet” href=“templates/system/css/general.css” type=“text/css” /> </HTML> ===== Dodatni Javascript ===== Postoje i dodatni Javascript-ovi koje možete koristiti u vašem template-u. Npr. <HTML> <script type=“text/javascript” src=“media/system/js/mootools.js”></script> <script type=“text/javascript” src=“media/system/js/caption.js”></script> </HTML> Oni su uključeni u <jdoc:include type=“head” /> ===== Prikazivanje grešaka ===== Više podrazumevanih “error pages” su uključeni u sistemski template (403.php i 500.php). Uvode se nove poruke o greškama, a njih definišete u <jdoc:include type=“message” />