Выбрать главу

</files>

Другие элементы XML файла служат для описания шаблона. Вот полный листинг функций такого файла:

Листинг 3: templateDetails.xml

templateDetails.xml

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

<name>joomla150_book</name>

<version>0.1</version>

<creationDate>28.07.2006</creationDate>

<author>Hagen Graf</author>

<copyright>GNU/GPL</copyright>

<authorEmail>hagen@cocoate.com</authorEmail>

<authorUrl>http://www.cocoate.com</authorUrl>

<version>0.1</version>

<description>… Описание</description>

<files>

<filename>index.php</filename>

<filename>templateDetails.xml</filename>

<filename>template_thumbnail.png</filename>

<filename>css/template.css</filename>

</files>

</install>

CSS файл: В одном шаблоне можно использовать несколько CSS файлов. Название CSS файла и метод его создания не имеют особого значения. Хотя существуют стандартные описания различных элементов CSS. Для нашего тестового шаблона мы используем файл /templates/joomla150_book/css/template.css (Листинг 2).

Графика, Картинки: здесь можно разместить графические файлы, необходимые для шаблона. Во время инсталляции, Установщик шаблонов копирует их в директорию /images. Имя и путь к файлу при этом выглядят так: /templates/joomla150_book/images/[user-defined image files].

Первый запуск

После того, как мы создали структуру директории [ПутьКJoomla!]/templates/, наш шаблон появится в соответствующей секции административной части Joomla! (Extensions | Template). Теперь его можно использовать как шаблон по умолчанию.

Рис. 2: Структура директории и файлы шаблона Joomla150_book

Рис. 3: Новый шаблон в менеджере шаблонов

Если вы загрузите свой сайт в веб обозревателе, вы увидите новый шаблон. К сожалению, он пока пуст. Теперь нам предстоит интегрировать контент в шаблон элемент за элементом.

Рис. 4: Вид в веб обозревателе

Внедрение модуля Joomla!

Внедрение модуля Joomla! проводится с помощью команд, встроенных в HTML код. Это могут быть и старые команды Joomla! 1.0.x или Mambo 4.5.x, или новые команды patTemplate. Класс patTemplate служит для дифференцирования PHP и HTML кода. Для интеграции в шаблон различных элементов, Joomla! использует объект типа jdoc. Если, вместо тега <title>, вы вставите в заголовок файла index.php следующую строку, в окне веб обозревателя при загрузке вашего сайта корректно отобразятся иконка сайта, заголовок страницы и символ источника новостей (Newsfeed symbol):

<head>

<jdoc:include type="head" />

</head>

Рис. 5: Иконка сайта и заголовок страницы

Если вы откроете исходный код этой страницы, то заметите, что Joomla! копировала все метаданные, введенные через панель администратора в HTML код. В дополнение к этому источники RSS также были интегрированы в страницу в виде тегов ссылок, отображаемых как символы источников новостей (Newsfeeds) в веб обозревателях, поддерживающих данную технологию (Firefox, Opera и т.д.).

Листинг 4: Метаданные Joomla!

<head>

<title>Joomla 1.5.0 – Home</title>

<meta name="generator" content="Joomla! 1.5" />

<meta name="description" content="Joomla! – the dynamic portal engine and content management system" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="robots" content="index, follow" />

<meta name="keywords" content="joomla, Joomla" />

<link href="http://localhost/Joomla150/feed.php?option=comfrontpage&amp; Itemid=1&amp;format=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />

<link href="http://localhost/Joomla150/feed.php?option=comfrontpage&amp; Itemid=1&amp;format=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />

<link href="favicon.ico" rel="shortcut ico" rel="shortcut icon" type="image/x-icon" />

</head>

Если данный фрагмент кода работает, можно перейти к другим важным объектам jdoc.

Например, команда <jdoc:includetype="modules"name="top"style="-1" /> получает тип вставляемого объекта в качестве параметра (в данном случае это “modules”). Параметр “name” определяет положение модуля. (top, right, left, user1 и т.д.). Установить положение модуля можно также в административной части Joomla! (Extensions | Module Managers, категория Position). Список всех возможных позиций можно посмотреть в Extensions | Templates | Module Positions. Последний параметр “style” содержит значение, которое определяет тип HTML кода, передаваемый модулем. Например, значение –1 передает «чистый» HTML без использования контейнерных тегов <div>.

Параметр   Отображение

     1     Горизонтальное меню

    -1     «Чистое» отображение без использования начального и замыкающего тегов <div>

    -2     Отображение в виде XHTML

    -3     форматирования круглых углов

Таблица 1: Параметры модуля

Описание возможных вставок в index.php объектов jdoc можно увидеть в следующем листинге:

Листинг 5:index.php сjdoc вставками

<html>

<head>

<jdoc:include type="head" />

<link rel="stylesheet" href="templates/system/css/general.css" type="text/css" />

<link rel="stylesheet" href="templates/{TEMPLATE}/css/template.css" type="text/css" />

</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="780" border="1">

<!– Section 1 –>

<tr>

<!– Part 1 –>

<td colspan="2" height="89" bgcolor="#F5C228">&nbsp;</td>

<!– Part 2 –>

<!– Section 3 –>

<tr bgcolor="#FFCC33">

<!– Part 7 –>

<td colspan="3" height="40">

<jdoc:include type="modules" name="footer" style="-1" />

</td>

</tr>

</table>

</body>

</html>

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

Конечно, до визуального совершенства еще далеко, но сайт уже работает:

Рис. 6: Шаблон с динамическими данными

Теперь перейдем к CSS форматированию, чтобы улучшить внешний вид нашего сайта.

Копируйте следующий код в файл template.css. В данном фрагменте кода мы определяем, что шрифтом по умолчанию будет Arial, ссылки не будут подчеркиваться, а при наведении на них курсора изменят цвет и толщину букв.