Весной 2008 года в блоге Compass Designs был опубликован неплохой цикл статей о создании «чистого» шаблона для Joomla 1.5 (под «чистым» в данном случае понимается шаблон, сверстанный по современным стандартам, т.е. без использования таблиц и с грамотным применением каскадных таблиц стилей). Первые две части цикла содержат в основном общие объяснения терминологии, советы по организации разработки на локальном хосте и т.д., поэтому я решил опубликовать переводы только основных 4-х статей, которые собственно и содержат небольшое руководство по созданию шаблона. Итак, сегодня первая часть, содержащая основные сведения о построении шаблонов Joomla.

Создание простого пустого шаблона

Для того, чтобы понять, из чего состоит шаблон, мы начнем с рассмотрения пустого шаблона Joomla.

Файлы шаблона

Шаблон Joomla содержит некоторый набор файлов и директорий. Шаблоны должны быть размещены в директории /templates/ установленного дистрибутива Joomla, каждый в собственной поддиректории. Т.е., если у нас установлены два шаблона, то директория /template/ выглядит примерно так:

/templates/element
/templates/voodoo

Обратите внимание, что название директории для шаблона должно совпадать с названием этого шаблона, как в данном случае «element» и «voodoo». Как правило, названия чувствительны к регистру букв и не должны содержать пробелы. Внутри директории шаблона находятся два ключевых файла:

/element/templateDetails.xml
/element/index.php

Имена этих файлов и их расположение должны быть в точности такими, поскольку именно так они вызываются ядром Joomla.

Первый из них — это XML-файл шаблона

templateDetails.xml

Это файл мета-данных в XML-формате, сообщающий Joomla, какие другие файлы, включая файлы изображений, нужны для отображения страницы, которая использует данный шаблон. Обратите внимание на букву «D» в верхнем регистре. Также он содержит информацию об авторе и копирайте. И наконец, он используется при инсталляции шаблона в административном интерфейсе.

Второй файл — это основной движок шаблона:

index.php

Этот файл является самым важным. Он определяет визуальное расположение элементов сайта и сообщает Joomla CMS, куда поместить различные компоненты и модули. Этот файл является комбинацией PHP и (X)HTML.

Практически во всех шаблонах используются дополнительные файлы. Общепринято (хотя это и не является требованием ядра) называть и размещать эти файлы следующим образом:

/element/template_thumbnail.png
/element/css/template.css
/element/images/logo.png

Это просто примеры. Ниже приведено описание каждого файла:

/element/template_thumbnail.png

Скриншот шаблона (обычно уменьшенный до 140 пикселей в ширину и 90 пикселей в высоту). После установки шаблона, этот скриншот можно увидеть с помощью функции «Preview Image» в разделе «Template Manager» административного интерфейса, а также в модуле выбора шаблона оформления в публичной части (если этот модуль задействован).

/element/css/template.css

Таблица стилей шаблона. Название директории устанавливается произвольно, но вы должны указать, путь к этому файлу в index.php. Название файла тоже может быть любым. Обычно применяется указанные выше название файла, но ниже вы увидите, что есть некоторые преимущества и у использования дополнительных CSS-файлов.

/element/images/logo.png

Любые изображения, включенные в шаблон. Опять же, из организационных соображений, большинство разработчиков размещают их в директории images. Мы указали картинку с названием logo.png в качестве примера.

templateDetails.xml

templateDetails.xml должен содержать перечень всех файлов, содержащихся в шаблоне. Также он включает информацию об авторе и копирайте. Часть этой информации можно увидеть в менеджере шаблонов в административном интерфейсе Joomla. Ниже приведен пример XML-файла:

<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="template">     
<name>TemplateTutorial15</name>     
<creationDate>August 2007</creationDate>     
<author>Barrie North</author>     
<copyright>GPL</copyright>     
<authorEmail> <span id="cloakc062601ddda77a0f88c18c4df537762f">Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.</span><script type='text/javascript'>
        document.getElementById('cloakc062601ddda77a0f88c18c4df537762f').innerHTML = '';
        var prefix = '&#109;a' + 'i&#108;' + '&#116;o';
        var path = 'hr' + 'ef' + '=';
        var addyc062601ddda77a0f88c18c4df537762f = 'c&#111;mp&#97;ssd&#101;s&#105;gns' + '&#64;';
        addyc062601ddda77a0f88c18c4df537762f = addyc062601ddda77a0f88c18c4df537762f + 'gm&#97;&#105;l' + '&#46;' + 'c&#111;mTh&#105;s';
        var addy_textc062601ddda77a0f88c18c4df537762f = 'c&#111;mp&#97;ssd&#101;s&#105;gns' + '&#64;' + 'gm&#97;&#105;l' + '&#46;' + 'c&#111;mTh&#105;s';document.getElementById('cloakc062601ddda77a0f88c18c4df537762f').innerHTML += '<a ' + path + '\'' + prefix + ':' + addyc062601ddda77a0f88c18c4df537762f + '\'>'+addy_textc062601ddda77a0f88c18c4df537762f+'<\/a>';
    </script> e-mail address is being protected from spambots, you need JavaScript enabled to view it </authorEmail>     
<authorUrl>www.compassdesigns.net</authorUrl>     
<version>1.0</version>     
<description>First example template for Chapter 9 of the Joomla Book</description>     
<files>           
<filename>index.php</filename>           
<filename>templateDetails.xml</filename>           
<filename>js/somejsfile.js</filename>           
<filename>images/threecol-l.gif</filename>           
<filename>images/threecol-r.gif</filename>           
<filename>css/customize.css</filename>           
<filename>css/layout.css</filename>           
<filename>css/template_css.css</filename>      
</files>     
<positions>           
<position>user1</position>           
<position>top</position>           
<position>left</position>            
<position>banner</position>           
<position>right</position>           
<position>footer</position>     
</positions>        
<params>           
<param name="colorVariation" type="list" default="white" label="Color Variation" description="Color variation to use">                 
<option value="blue">Blue</option>                 
<option value="red">Red</option>           
</param>        
</params>
</install>

Поясним отдельные строки:

<install version="1.5" type="template">

Содержимое XML-документа — это инструкции для инсталлятора в административном интерфейсе Joomla. Опция type=«template» сообщает инсталлятору, что мы устанавливаем шаблон, предназначенный для Joomla версии 1.5.

<name>TemplateTutorial15</name>

Определяет название шаблона. Это имя также будет использовано при создании поддиректории шаблона в директории templates. Если вы устанавливаете шаблон вручную, то вы должны создать поддиректорию с названием, идентичным названию шаблона.

<creationDate>August 2007</creationDate>

Дата создания шаблона. Это поле задается в свободном формате и может быть любой строкой типа «May 2005», «08-June-1978», «01/01/2004» и т.д.

<author>Barrie North</author>

Имя автора шаблона (вероятно, ваше имя).

<copyright>GPL</copyright>

Информация о копирайте. Руководство по лицензированию для разработчиков и дизайнеров вы можете найти в форумах Joomla.

<authorEmail><span id="cloak93bd095d10050a45ad6e9c87be10c369">Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.</span><script type='text/javascript'>
        document.getElementById('cloak93bd095d10050a45ad6e9c87be10c369').innerHTML = '';
        var prefix = '&#109;a' + 'i&#108;' + '&#116;o';
        var path = 'hr' + 'ef' + '=';
        var addy93bd095d10050a45ad6e9c87be10c369 = '&#97;&#117;th&#111;r' + '&#64;';
        addy93bd095d10050a45ad6e9c87be10c369 = addy93bd095d10050a45ad6e9c87be10c369 + 's&#111;m&#101;d&#111;m&#97;&#105;n' + '&#46;' + 'c&#111;m';
        var addy_text93bd095d10050a45ad6e9c87be10c369 = '&#97;&#117;th&#111;r' + '&#64;' + 's&#111;m&#101;d&#111;m&#97;&#105;n' + '&#46;' + 'c&#111;m';document.getElementById('cloak93bd095d10050a45ad6e9c87be10c369').innerHTML += '<a ' + path + '\'' + prefix + ':' + addy93bd095d10050a45ad6e9c87be10c369 + '\'>'+addy_text93bd095d10050a45ad6e9c87be10c369+'<\/a>';
    </script></authorEmail>

E-mail для связи с автором шаблона.

<authorUrl>www.compassdesigns.net</authorUrl>

Адрес сайта автора.

<version>1.0</version>

Версия шаблона.

<files></files>

Различные файлы, используемые в шаблоне.

Файлы, используемые в шаблоне, заключаются в теги <filename>:

 <files>
 <filename>index.php</filename>
 <filename>templateDetails.xml</filename>
 <filename>js/somejsfile.js</filename>
 <filename>images/threecol-l.gif</filename>
 <filename>images/threecol-r.gif</filename>
 <filename>css/customize.css</filename>
 <filename>css/layout.css</filename>
 <filename>css/template_css.css</filename>
 </files>

Секция «files» содержит все основные файлы типа PHP-скриптов или изображений для превью шаблона. Каждый файл перечисляется в этой секции внутри тегов <filename> и </filename>. Также здесь указываются дополнительные файлы, например JavaScript-файлы, используемые в шаблоне.

Файлы картинок, используемых в шаблоне, также перечисляются в секции «files». Опять же, каждый файл заключается в теги <filename> и </filename>. Пути к файлам указываеются относительно корневой директории шаблона. Например, если шаблон находится в директории 'YourTemplate', а все картинки находятся в поддиректории 'images', то правильный путь к файлу будет:

<filename>images/my_image.jpg</filename>

Наконец, в секции files перечисляются все файлы стилей, используемые в шаблоне. И снова, имя файла заключается в теги <filename> и </filename>, а путь файла указывается относительно корневой папки шаблона.

<positions></positions>

Позиции модулей, используемые в шаблоне.

<params></params>

Описывает параметры, которые могут задаваться для различных функций шаблона, например, для изменения его цвета.

Источник

Оригинал статьи на английском можно прочитать здесь:
www.compassdesigns.net/tutorials/208-joomla-15-template-tutorial.html?start=2


Если у Вас возникли вопросы, то для скорейшего получения ответа рекомендуем воспользоваться нашим форумом

You have no rights to post comments