Перед прочтением настоятельно рекомендую ознакомиться с материалами:
http://joomlaforum.ru/index.php/topic,9638.0.htmlhttp://joomlaforum.ru/index.php/topic,135047.0.htmlСразу отмечу, что разработка шаблона под версию J2.5
ничем существенно не отличается от версии J1.5. Глядя на шаблоны по умолчанию можно увидеть в них много отличного от предыдущих версий кода. Это может запутать. На самом деле все это лишь показательные изыски разработчиков данных шаблонов. Ничего такого, что не работало бы в предыдущих версиях в них не содержится. Все конструкции шаблонов 1.5 работают и в 2.5 версии. Более подробно о них смотрите
тут.
Из кардинальных можно отметить изменения в файле templateDetails.xml.
В версии 1.5 мы помещали параметры в общий контейнер:
<install version="1.5" type="template"></install>
Теперь он выглядит как:
<extension version="2.5" type="template" client="site"></extension>
Параметры описания шаблона(автор, название, сайт разработчика, E-Mail и т.д.) остались прежними.
Перечисление файлов инсталл. пакета выполняется в прежнем порядке, за исключением того, что теперь не обязательно перечислять каждый файл в папках шаблона(например изображения), а достаточно указать название папки. В предыдущих версиях это так же работало, но не совсем стабильно и часто возвращало ошибки.
Выглядит следующим образом:
<files>
<folder>css</folder>
<folder>html</folder>
<folder>images</folder>
<folder>javascript</folder>
<folder>fonts</folder>
<folder>language</folder>
<filename>index.html</filename>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>template_preview.png</filename>
<filename>template_thumbnail.png</filename>
<filename>favicon.ico</filename>
<filename>component.php</filename>
<filename>error.php</filename>
</files>
Назначение позиций шаблона осталось прежним:
<positions>
<position>debug</position>
<position>position-0</position>
</positions>
Правда в версии 1.6/1.7 наблюдался баг с односложным названием позиции, писали двусложные через тире. В 2.5 он был устранен.
Небольшие изменения в локализации.
В 1.5 было:
<languages>
<language tag="en-GB">en-GB.tpl_ja_purity.ini</language>
</languages>
<administration>
<languages>
<language tag="en-GB">admin/en-GB.tpl_ja_purity.ini</language>
</languages>
</administration>
В 2.5:
<languages folder="language">
<language tag="en-GB">en-GB/en-GB.tpl_beez5.ini</language>
<language tag="en-GB">en-GB/en-GB.tpl_beez5.sys.ini</language>
</languages>
Более подробно остановимся на параметрах шаблона.
Для назначения опций нам требуется вписать в файл index.php шаблона строчку
$app = JFactory::getApplication();
То есть, подключить в шаблон
JFactory.
Разберем материал на примере.
Загрузка и выбор своего логотипа:
<?php
$app=JFactory::getApplication();
$doc=JFactory::getDocument();
$templateparams=$app->getTemplate(true)->params;
$logo=$this->params->get('logo');
?>
Ставим условие на проверку наличия изображения. Если картинка отсутствует, выводим текст.
Код для templateDetails.xml:
<field name="logo" type="media" label="TPL_BEEZ5_FIELD_LOGO_LABEL" description="TPL_BEEZ5_FIELD_LOGO_DESC" />
<field name="sitetitle" type="text" default="" label="TPL_BEEZ5_FIELD_SITETITLE_LABEL" description="TPL_BEEZ5_FIELD_SITETITLE_DESC" filter="string" />
</param>
name="logo" - название переменной из $logo=$this->params->get('logo');
type="media" - тип опции. Тут вызываем медиаменеджер из com_media.
label="TPL_BEEZ5_FIELD_LOGO_LABEL" - название опции, выводимое в админпанели шаблона. Можно вывести в файл локализации, как на примере, так же можно сделать без локализации статично label="Выбрать изображение лого". Не забываем о кодировке файла XML, должно стоять UTF-8 без BOM. В противном случае вернет ошибку парсинга XML или "кракозябры".
description="TPL_BEEZ5_FIELD_LOGO_DESC" - описание во всплывающей подсказке.
default="" - значение по умолчанию. Можно назначить картинку логотипа, например default="images/logo.png"
filter="string" - фильтр значения. В данном случае имеет строковое значение.
Уточнение. Если в 1.5 назначая параметры писали:
<params><param></param></params>
То для 2.5:
<config><fields><fieldset><field></field></fieldset></fields></config>
Пример взят из шаблона beez_20.
Впрочем не обязательно создавать конструкцию:
$templateparams=$app->getTemplate(true)->params;
И писать:
<?php echo htmlspecialchars($templateparams->get('sitetitle')); ?>
Вполне достаточно:
<?php echo $this->params->get('sitetitle'); ?>
Более подробно о параметрах
тут.
В описании index.php никакх кардинальных изменений не наблюдается.
http://docs.joomla.org/Jdoc_statementsВ версии 2.5 появилась возможность создавать собственные страницы offline и ошибок на уровне шаблона. Для этого следует скопировать файлы
error.php и offline.php из папки system в корень шаблона, после чего можно будет их редактировать на свое усмотрение.