После того, как в предыдущей статье была рассмотрена основная структура папок и файлов шаблона сайта для CMS Joomla 3, можно более подробно остановиться на файле templateDetails.xml. В этом файле содержится структурированная информация для проверки целостности пакета шаблона (которая проверяется перед установкой шаблона), а также содержатся данные конфигурации, данные языковой локализации, настраиваемые поля шаблона, а также служебная информация о разработчике и то, что связано с правами на использование шаблона.
Данные о формате данных, содержащимся в конфиге templateDetails.xml шаблона сайта на Joomla 3
Первые две строчки файла templateDetails.xml содержат данные о формате этого документа и данные о совместимости шаблона сайта с версией Joomla.
Первая строка содержит данные о версии XML и о кодировке файла:
<?xml version="1.0" encoding="utf-8"?>
Вторая строчка предназначена для:
- указания того, что это файл установочного пакета шаблона сайта,
- указания предназначения этого файла (то, что это шаблон Joomla),
- указания версии CMS Joomla, начиная с которой шаблон сможет работать,
- указание на стандарт формирования этого файла:
<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "https://www.joomla.org/xml/dtd/2.5/template-install.dtd">
Тело конфига templateDetails.xml шаблона сайта на Joomla 3
Ниже этих двух строчек располагается тело XML документа, которое обрамлено контейнером extension, атрибутами которого могут быть заданы:
version— версия Joomla, для которой предназначен шаблон.type— тип расширения Joomla (для автоматического определения того, что за расширение пользователь подключает и/или загружает в админке). Загрузчик расширений в Joomla один для всех расширений (шаблонов, модулей и компонентов, причём как для админки, так и для сайта). Поэтому Joomla требует указания того, что за тип расширения ей подсовывают.client— указание области сайта, для которой предназначен шаблон (админка или сайт).
Выглядит это так:
<extension version="3.9" type="template" client="site">
<!-- тут собственно содержимое тела XML-файла -->
</extension>
Поля конфига templateDetails.xml шаблона сайта на Joomla 3 с данными о шаблоне, авторе, его контактах, лицензии и т.п.
Поле <name> конфига templateDetails.xml
Поле <name> содержит название шаблона, например:
<name>rezon</name>
Поле <creationDate> конфига templateDetails.xml
Поле <creationDate> содержит дату создания шаблона, например:
<creationDate>15 August 2019</creationDate>
Поле <author> конфига templateDetails.xml
Поле <author> содержит данные (обычно имя и фамилию) автора (или авторов) шаблона или название компании, которой принадлежат авторские права на этот шаблон, например:
<author>Aleksandr Zakharov</author>
Поле <authorEmail> конфига templateDetails.xml
Поле <authorEmail> содержит адрес электронной почты для связи с автором шаблона, например:
<authorEmail>muba4@yandex.ru</authorEmail>
Поле <authorUrl> конфига templateDetails.xml
Поле <authorUrl> содержит адрес сайта разработчика шаблона, например:
<authorUrl>https://mb4.ru</authorUrl>
Поле <copyright> конфига templateDetails.xml
Поле <copyright> содержит данные об авторском праве разработчика шаблона, например:
<copyright>Copyright (C) 2006 — 2019 MoonBase, Inc. All rights reserved.</copyright>
Поле <license> конфига templateDetails.xml
Поле <license> содержит данные о лицензии, выбранной разработчиком шаблона для защиты своих авторских прав, например:
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
Поле <version> конфига templateDetails.xml
Поле <version> содержит данные о версии шаблона, например:
<version>1.0.2</version>
Поле <description> конфига templateDetails.xml
Поле <description> содержит описание шаблона. Все описанные выше поля должны быть прописаны явно. В поле <description> можно вставить языковую переменную, которая в зависимости от локализации сайта, будет отображаться на том языке, который выбран пользователем. Если в поле <description> введена языковая переменная, то Joomla постарается найти её значение в файлах локализации. Если в файлах локализации выбранного языка не будет найдено, Joomla подставит значение из файла на английском языке. Если значения языковой переменной вообще нет ни в одном из файлов локализации, Joomla выдаст название переменной. Пример использования поля <description> с языковой переменной:
<description>TPL_REZON_XML_DESCRIPTION</description>
Группа полей <files> конфига templateDetails.xml
Группа полей <files> конфига templateDetails.xml указывает в явном виде, какие папки и файлы содержатся в пакете шаблона сайта. При установке шаблона Joomla проверит наличие всех указанных папок и файлов, и если каких-то папок и/или файлов не будет найдено в установочном пакете, выдаст ошибку и, скорее всего не позволит установить шаблон.
- Папки указываются в полях
<folder>FolderNamt</folder> - Файлы указываются в полях
<filename>FileName</filename>
Например:
<files>
<folder>css</folder>
<folder>images</folder>
<folder>language</folder>
<filename>component.php</filename>
<filename>error.php</filename>
<filename>favicon.ico</filename>
<filename>index.php</filename>
<filename>template_preview.png</filename>
<filename>template_thumbnail.png</filename>
<filename>templateDetails.xml</filename>
</files>
Группа полей <positions> конфига templateDetails.xml
Группа полей <positions> конфига templateDetails.xml содержит список позиций для вставки модулей в шаблон сайта. Название позиции прописывается в поле <position>. Для каждой позиции нужно задавать отдельное поле, например:
<positions>
<position>debug</position>
<position>pos1</position>
<position>pos2</position>
</positions>
Группа полей <languages> конфига templateDetails.xml
Группа полей <languages> конфига templateDetails.xml задаёт файлы языковой локализации и их место расположения.
В атрибуте folder поля <languages> задаётся имя папки, в которой находятся папки отдельных локализаций. Обычно это папка language и выглядит это так:
<languages folder="language">
<!-- тут список файлов локализаций -->
</languages>
Каждой отдельной локализации указывается тег, по которому будет определяться соответствие языку. Тег задаётся атрибутом tag в поле <language>.
Значение поля <language> — это полный путь до файла локализации в папке, указанной в атрибуте folder поля <languages>.
Пример группы полей <languages> конфига templateDetails.xml:
<languages folder="language">
<language tag="en-GB">en-GB/en-GB.tpl_rezon.ini</language>
<language tag="en-GB">en-GB/en-GB.tpl_rezon.sys.ini</language>
<language tag="ru-RU">ru-RU/ru-RU.tpl_rezon.ini</language>
<language tag="ru-RU">ru-RU/ru-RU.tpl_rezon.sys.ini</language>
</languages>
Группа полей <config> конфига templateDetails.xml
В группу полей <config> конфига templateDetails.xml включены поля, содержащие настройки шаблона, которые можно использовать для управления ими через админку Joomla. Подробная статья по работе с Дополнительными полями шаблона сайта по → этой ссылке.