Перевод статьи
Joomla 1.5 to 1.6 Template Upgrade Tutorial (Part 1)Автор: Kyle Ledbetter

С выходом 4-й бета-версии
Joomla! 1.6, многие из нас хотели бы узнать, каким образом можно адаптировать шаблон от
Joomla! 1.5 к новой
Joomla! 1.6. В качестве тестового решения мы адаптировали наш бесплатный шаблон
Genesis под
Joomla! 1.6, а также ниже приведём несколько рекомендаций по адаптации.
Данная статья не является официальным или исчёрпывающим руководством, однако описанные ниже шаги позволят помочь разобраться в структуре шаблонов новой версии
Joomla! Сложные шаблоны с широкими настройками (клубные шаблоны) потребуют дополнительные манипуляции и, соответственно, в данной статье принцип их адаптации рассматриваться не будет (поскольку это уже углублённый материал).
Шаблоны
Joomla! размещены в папке
/templates/ и если это вам ни о чём не говорит, то даже не пытайтесь прочесть что написано ниже
index.php
defined( '_JEXEC' ) or die( 'Restricted access' );
изменился на:
defined('_JEXEC') or die;далее нам нужно получить новую переменную специально для 1.6 (вставить между <?php .... ?>
(в оригинале: <?php brackets, но это, видимо, авторская недоработка - прим.пер.)$app = JFactory::getApplication();
Объявив новую переменную, вам нужно изменить событие с $mainframe на $app.
Например, строка из Joomla! 1.5
$mainframe->getCfg('live_site');в Joomla! 1.6 будет иметь такой вид:
$app->getCfg('live_site');а событие
$mainframe->getCfg('sitename');нужно заменить на:
$app->getCfg('sitename');Если вы берёте выражения наподобие любой информации из url, теперь вы можете их удалить. О новых методах мы расскажем в части 2 (пока не написано - прим. пер). Вот пример строки, вызывавшей у нас проблему:
$pageOption = JRequest::getCmd('option', '');Позиции модулейЕсли вы являетесь разработчиком клубных шаблонов, вам следует учесть изменения позиций, которые произошли в новой версии Joomla. В демо-данных
Joomla! 1.6 вы не найдёте стандартные модули в позициях, которые ожидаете (например, mod_search в позиции user4). Это сделано для приведения названий позиций к более логическому и семантическому виду. Вы не встретите позицию с названием "left" (левая часть) в области шаблона, которая не относится к левой колонке. Однако если вы создаёте собственный шаблон, можете не беспокоиться об этом, поскольку названия и позиции модулей вы задаёте произвольно.
templateDetails.xml
Прежде всего, нужно добавить первую строку:
<!DOCTYPE install PUBLIC "-//Joomla! 1.6//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.6/template-install.dtd">
сразу под строкой (означающей то же самое)
<?xml version="1.0" encoding="utf-8"?>
Далее, заменить:
<install version="1.5" type="template">
на:
<install version="1.6" type="template">
Далее, вам нужно сконвертировать параметры вашего шаблона согласно новому методу. Например, код из
Joomla! 1.5:
<params>
<param name="templateTheme" type="list" default="theme1" label="Template Theme" description="Choose your template theme">
<option value="theme1">theme1</option>
<option value="theme2">theme2</option>
<option value="theme3">theme3</option>
</param>
</params>
нужно заменить на:
<config>
<fields name="params">
<fieldset name="advanced">
<field name="templateTheme" type="list" default="theme1" label="Template Theme" description="Choose your template theme">
<option value="theme1">theme1</option>
<option value="theme2">theme2</option>
<option value="theme3">theme3</option>
</field>
</fieldset>
</fields>
</config>
Самое значительное отличие, которое вы заметите, это возможность группировки параметров шаблона в <fieldset>, что является крайне полезным решением для шаблонизации с множеством параметров.
CSS (файлы template.css или theme.css).article_separator
изменился на:
.item-separator
и
.blog_more
теперь выглядит так:
.items-more
У кнопок [Print, PDF, Email] в режиме полного просмотра материала ранее использовалась конструкция <td class="buttonheading",теперь же это <div class="actions" с <ul>, поэтому теперь нужно использовать такие стили:
.actions{
margin:0;
}
.actions li{
list-style: none;
display:inline;
float:right;
}
Вид таблицы категории теперь не упорядочен, поэтому в шаблон нужно добавить такой стиль:
table.category{
border:1px solid #CCC;
width:100%;
text-align:center;
}
table.category th,table.category td{
padding:2px 6px;
}
table.category thead{
background:#EEE;
}
.jcat-children ul,.jcat-children li{
margin:0;
list-style:none;
}
.jcat-children li a{
background:url(../images/bullet_green_arrow.png) no-repeat 0 12px;
display:block;
padding:5px 5px 5px 15px;
font-size:0.9em;
}
Форма авторизации была приведена в порядок, новые метки теперь встроенные (inline), однако выводятся не списком.
Если потребуется поля вернуть в прежний вид, добавьте:
#form-login #form-login-username label,
#form-login #form-login-password label{
display:block;
}
template_preview.pngВ завершении раьоты вы можете добавить эскиз
template_preview.png разрешением 800x600 пикселей и положить его в корень шаблона (не забудьте добавить соответствующую строку в
templateDetails.xml!)
<filename>template_preview.png</filename>
Теперь перейдите в админ. панели в расширения > менеджер шаблонов > шаблоны и посмотрите что получилось:
Во второй части руководства мы планируем описать более подробно процесс миграции шаблона с
Joomla! 1.5 на
Joomla! 1.6. Можете делиться в ленте комментариев информацией как успешно получается переделывать шаблоны, опираясь на наше руководство.
Yay Joomla 1.6! 