Шаблон Joomla отвечает за вывод содержимого вашего сайта и его внешнее форматирование. Под содержимым я подразумеваю компоненты, модули, статьи/новости и другую статическую информацию. Оформлением всего вышеперечисленного занимается CSS - стили вашего шаблона (файл template_css.css). Не заблуждайтесь, шаблон - это не "полноценное" оформление сайта. Шаблон без содержимого - это просто пустая обертка, ровно, как и наоборот, содержимое сайта без шаблона - это один текст. Взгляните на скриншоты, шаблон с содержимым, и без. Заметная разница, не правда ли?
По умолчанию в Joomla! доступно два стандартных шаблона. Больше шаблонов вы можете найти на сайтах, посвященных Joomla! или, при наличии достаточных навыков, вы можете сделать свой собственный шаблон (надеемся, что после прочтения этого руководства, вы сможете сделать шаблон самостоятельно).
Использование шаблонов в Joomla!, как и в любой другой CMS, имеет и недостатки, и определенные преимущества:
Полное разделение оформления и содержания, особенно если CSS используется для форматирования слоев (в отличии от таблиц) - это одно из главных критериев современных стандартов интернета.
Новый шаблон и, соответственно, полностью новое оформление сайта, могут быть установлены моментально. К тому же, для отдельных страниц может быть назначен индивидуальный шаблон.
Хотя различные слои создают видимость единого сайта, трудно достичь полной функциональности шаблона. Многие дизайнеры применяет php-код при разработке шаблона с целью повысить функциональность. Различные советы и трюки при создании шаблона рассказаны в "Приложении: Советы и трюки".
Сайт, при создании которого соблюдали стандарты W3C, имеет больше шансов для создания доступного, совместимого и оптимизированного под поисковые системы содержимого. Вы можете проверить ваш шаблон на соответствие стандартам W3C. Бесплатно.
Чтобы вы лучше поняли, откуда появились веб-стандарты, вспомним историю развития браузеров. Многие веб-сайты разработаны под более старшие версии браузеров. Почему? Браузеры развивались непосредственно с начала образования WWW. Появлялись новые, старые исчезали (вы помните Netscape?). Ситуация усложнялась ещё тем, что некоторые производители браузеров, такие как Microsoft, имели тенденцию (и до сих пор имеют) по-разному интерпретировать html/xhtml код. Поэтому некоторые вебдизайнеры предпочитают разрабатывать сайт под более старшие версии браузеров. Они считают, что следующие версии браузеры должны также интерпретировать код, как и старшие версии. W3C-стандартов - это общий набор "правил" для браузеров с указанием, как использовать и показывать код страницы. Главная организация - это World Wide Web Consortium (W3C), чей директор Тим Бернерс-Ли активно участвовал в развитии WWW с 1989 года.
Спросите бывалых веб-дизайнеров, что такое веб-стандарты, и вы получите пять разных ответов. Но все они основаны на следующих утверждениях:
Чистый код, соответствующий стандартам W3C, html, или xhtml
Удостоверьтесь, что у вас чистый код, соответствующий стандартам W3C. Это легко проверить с помощью сайта http://validator.w3.org/. Убедитесь, что вы определили правильный DOCTYPE. Более подробно об этом можно прочитать в этой статье.
Семантически верный код
Удостоверьтесь, что (x)html описывает только содержимое, но не внешний вид содержимого. Это означает использование тегов h1/h2 и др. и использование таблиц для представления табличный данных, но не для представления всей страницы.
Используются для форматирования внешнего вида различных элементов веб-страницы: цвета, фона, шрифта и т.д. Они параллельны (x)html-коду и находятся отдельно. Лучший пример - CSS Zen Garden, где используется один xhtml файл и сотни css-стилей. Результат: одно содержимое, но различные стили оформления.
Сегодня, проектирование сайтов на Joomla!, соответствующих веб-стандартам - это большие трудности. Дело в том, что вся линейка Joomla! 1.0.x использует достаточно большое количество таблиц для представления содержимого. Но, даже в таком случае можно достигнуть результата, когда шаблон будет соответствовать W3C-стандартам.
Из чего состоит шаблон Joomla 1.0?
Перед созданием нового, собственного, шаблона, необходимо понять его структуру, из чего состоит шаблон. Разбирать состав шаблона мы будем на основе демонстрационного шаблона, поэтому рекомендуется всем читателям скачать этот шаблон - гораздо проще разобраться с шаблоном, имея пример под рукой.
Демонстрационный шаблон упакован в архив. Здесь сделаем небольшое лирическое отступление: в Joomla! любой компонент, модуль или шаблон перед установкой должны быть архивированы в zip-архив. Не спрашивайте меня почему. Предлагаем вам распаковать архив с шаблоном. Появится папка с названием шаблона (например, rd_demotemplate), в которой находятся все важные файлы шаблона или, другими словами, в этой папке находится сам шаблон.
После установки Joomla!, вы наверняка заметили среди прочих папок папку /templates. Именно в этой папке хранятся все установленные шаблоны. В стандартной комплектации Joomla! устанавливается с двумя шаблонами - madeyourweb и rhuk_solarflare_ii. После установки системы, папка /templates выглядит так:
/templates
/madeyourweb
/rhuk_solarflare_ii
Обратите внимание, что название папки шаблона должно иметь такое же название, как и у самого шаблона, а также не должно содержать пробелы. Иногда в название шаблона добавляют инициалы или имя дизайнера, например: rhuk_solarflare. Теперь перейдем к изучение непосредственно самого шаблона. Откройте папку rhuk_solarflare_ii и обратите внимание на файлы templateDetails.xml и index.php:
/rhuk_solarflare_ii
templateDetails.xml
index.php
Можно сказать, это наиболее важные файлы шаблона, поэтому они всегда должны находится в основной папке шаблона. templateDetails.xml - Информационный XML-файл шаблона, содержит информацию о шаблоне (автор, дата создания и т.д.), а также указывает, какие файлы входят в состав шаблона (изображения, css, php и т.д.) - при установке шаблона эти файлы будут скопированы в соответствующие папки шаблона.
index.php - Разметка шаблона. Содержит код оформления, параметры вывода компонентов и модулей. (X)HTML и PHP. Помимо перечисленных выше файлов, в состав шаблона также входят: скриншот шаблона, файлы css, изображения.
/rhuk_solarflare_ii
template_thumbnail.png
/css
template_css.css
/images
logo.png
template_thumbnail.png - Небольшой скриншот шаблона. Необходим для предварительного просмотра шаблона в "Панели управления Joomla".
template_css.css - Основной файл с CSS-стилями. Здесь настраивается оформление для различных областей шаблона.
logo.png - Изображение, использованное в оформлении шаблона. В папке /images может находиться любое количество изображений.
Чтобы установить шаблон, зайдите в "Панели управления" сайта -> "Установка/удаление" -> "Шаблоны сайта" и укажите zip-архив с шаблоном.
Кроме автоматической установки, вы можете установить шаблон вручную. Достаточно распаковать архив, и распакованную папку с шаблоном скопировать в папку /templates вашего сайта.
templateDetails.xml
templateDetails.xml - В файле templateDetails.xml находится вся информация о шаблоне: автор, дата создания и т.д. Кроме этого, здесь описываются все файлы (изображения, css, php и т.д.), входящие в состав шаблона.
Пример templateDetails.xml обычного шаблона:
type="template" version="1.0.x">
Название шаблона
11/12/06
Автор
GNU/GPL
author@email.com
www.joom.ru
1.0
Пример templateDetails.xml обычного шаблона
index.php
js/ie.js
template_thumbnail.png
images/header.png
images/background.png
template_thumbnail.png
css/base.css
css/norightcol.css
css/template_css.css
А теперь рассмотрим каждую строчку файла:
mosinstall - Содержит информацию об установке шаблона. Параметр type="template" указывает, что устанавливается шаблон.
name: - Имя шаблона. В процессе установки будет создана папка с идентичным именем, поэтому в названии шаблона нельзя использовать пробелы.
creationDate - Дата создания шаблона. Может быть "8 Мая", "19/08/06" и т.д.
author - Имя автора шаблона. Можете использовать любое имя.
copyright - Информация о авторских правах на шаблон.
authorEmail - E-mail автора шаблона. Этот e-mail защищён от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
authorURL - Ссылка на веб-сайт автора.
version - Текущая версия шаблона.
files - Здесь указываются файлы, входящие в состав шаблона: php и т.д, но не изображения и файлы css. Каждый файл должен быть заключён в контейнер .
images - Аналогично файлам, только в этом разделе указываются изображения, входящие в состав шаблона. Также, каждое изображение должно быть заключено в контейнер.
css - Аналогично, только здесь указываются файлы css-стилей. Как и в случае с файлами и изображениями, каждый css-файл должен быть заключён в контейнер .
index.php
Именно этот файл определяет разметку шаблона и отвечает за вывод компонентов/модулей на экран. Именно в этом файле нам придётся проводить большую часть времени создания шаблона. И именно этот файл отвечает за соответствие шаблона стандартам W3C. Ладно, пора переходить к изучению этого файла. Прежде всего, для каждого шаблона необходимо определить DOCTYPE. Тег сообщает браузеру о типе текущего документа и как его интерпретировать. Различают несколько версий и типов (X)HTML-документов. Тип нашего шаблона - XHTML 1.0 Transitional:
Кроме версии XHTML Transitional, существует версия Strict. Опять же при описании различий между этими двумя версиями все упирается в стандарты W3C:
XHTML 1.0 Strict используется в том случае, если в документе идёт чёткое разделение оформления и содержания. При этом код веб-страницы содержит только теги разметки, а сам вид элементов задаётся через стили.
XHTML 1.0 Transitional обычно применяется, когда правило разделения оформления и содержания выполняется не в полной мере. В этом случае допускается в коде документа использовать теги физического проектирования (например, тег ) и лишь частично стили.
Что ещё находится в index.php?
Хорошо, с определением DOCTYPE мы разобрались, поэтому в следующем коде определение типа документа я опущу. Все нормальные шаблоны состоят из двух главных частей: заголовка () и тела документа (). Раздел заголовка может содержать текст и теги, но содержимое этого раздела не показывается напрямую на странице. Теперь разберём на примере нашего шаблона. Взгляните на код:
defined( '_VALID_MOS' ) or die( 'Доступ ограничен' ); ?>
if ($my->id) { initEditor(); } ?>
mosShowHead(); ?>
type="text/css" />
И снова, как в случае с templateDetails.xml, я расшифрую каждую строчку вышеприведённого кода:
defined( '_VALID_MOS' ) or die( 'Доступ ограничен' ); ?>
Предотвращает прямой доступ к файлу шаблона index.php. Допустим, пользователь в адресной строке браузера набрал адрес вида "http://site/joomla/templates/rd_demotemplate/index.php" - в итоге вместо исходного кода файла, Joomla! покажет ему 'Доступ ограничен'.
Эта строка сообщает браузеру, какая кодировка используется на сайте. Если указание кодировки отсутствует, браузер пытается сам определить, какой тип символов используется в документе и выбирает необходимую кодировку автоматически. Браузер не всегда может точно распознать язык веб-страницы и в некоторых случаях предлагает вьетнамскую кодировку вместо кириллицы. По этой причине лучше всегда указывать приведённую строчку.
if ($my->id) { initEditor(); } ?>
Загрузка WISYWYG-редактора в фоновом режиме при посещении сайта. После авторизации пользователи, которым дан соответствующий доступ, впрочем, как и администраторы, могут редактировать новости/статьи прямо на сайте, не пользуясь "Панелью управления". Очень удобно, когда необходимо за считанные минуты исправить очепятку в тексте.
mosShowHead(); ?>
Подставляет в веб-страницу метатеги. Метатеги используются для хранения информации предназначенной для браузеров и поисковых систем. Например, механизмы поисковых систем обращаются к метатегам для получения описания сайта, ключевых слов и других данных. Данные для формирования метатегов берутся из глобальной конфигурации сайта. Включает в себя следующие поля:
Учебник Создание шаблона Joomla
type="text/css" />
Подключение другого css-файла
Для подключения таблицы связанных стилей используется тег в заголовке страницы шаблона Joomla. Путь к файлу со стилями может быть как относительным, так и абсолютным. В нашем случае используется относительный путь к файлу. Конструкция
echo $cur_template; ?>
возвращает в документ название текущего шаблона Joomla сайта, а вернее - название папки с шаблоном Joomla.
Достоинства подключения отдельного файла стилей:
Используется один файл со стилем
Можно изменять таблицу стилей без модификации index.php
При изменении стиля в одном единственном файле, стиль автоматически применяется ко всем соответствующим элементам.
Файл со стилем при первой загрузке помещается в кэш на локальном компьютере, поэтому загрузка сайта происходит быстрее.
Вывод содержимого через index.php
Этот файл предназначен не только для вывода мета-информации и определения типа шаблона Joomla. Главное предназначение index.php - вывод содержимого (новостей, модулей и т.д.). В Joomla! уже имеются все необходимые команды вывода содержимого, их нужно только вставить в нужное место шаблона. Ниже приведены самые основные коды шаблоны Joomla 1.0.x: