This page provides feedback on the process of upgrading a Joomla 1.5 template for use with Joomla 1.6 from those who have already attempted it. This is intended to be a living document that can be added to as more experience is gained and is likely to be reorganised periodically. If you have encountered a problem when upgrading a template, or if you have any information that you think will help smooth the way for others who will follow then please add your comments initially on the Talk page. We will then collate the information and incorporate it into this page.
Chris Davenport prepared slides for a presentation at the JoomlaDay UK 2010 event which explain the changes in templates for Joomla! 1.6.
In both Joomla! 1.5 and 1.6 template parameters are defined in templateDetails.xml.
Whereas in 1.5 parameters are defined as part of the
<params> section, and each parameter is defined as a
<param>, in 1.6 template parameters are contained in the
<config> section and treated as a
<field> nested within the
<fields> tags, as illustrated below.
<field name="" type=" default="" label="" description="">
<field name="" type="" default="" label="e" description="" />
<fieldset name="basic"> wraps the parameters in a slider and using name=”basic” labels that slider as “Basic Options” and name=”advanced” labels it as “Advanced Options”.
The name=”” type=” default=”” label=”” description=”” attributes still apply.
Template Manifest File
Two other important changes to the templateDetails.xml file include: 1) adding the new 1.6 Doctype and 2) changing the <install> tag to <extension> as shown below.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 1.6//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.6/template-install.dtd">
<extension version="1.7" type="template" client="site">
Notice the additional new “client” attribute which is set to “site” for a front-facing template and “administrator” for an back-end template.
Objects and Methods
<?php echo $mainframe->getCfg('sitename');?> is now
$app = JFactory::getApplication();
$this->error->code is replaced by
$this->error->message is replaced by