Статья руководства Создание шаблона Joomla
Создание шаблона Joomla 1.0.х
Руководство
Любая перепечатка учебника или его части запрещена без согласия администрации Joom.ru
Перед созданием нового, собственного, шаблона, необходимо понять его структуру, из чего состоит шаблон. Разбирать состав шаблона мы будем на основе демонстрационного шаблона, поэтому рекомендуется всем читателям скачать этот шаблон - гораздо проще разобраться с шаблоном, имея пример под рукой.
Демонстрационный шаблон упакован в архив. Здесь сделаем небольшое лирическое отступление: в 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
Чтобы установить шаблон, зайдите в "Панели управления" сайта -> "Установка/удаление" -> "Шаблоны сайта" и укажите zip-архив с шаблоном.
Кроме автоматической установки, вы можете установить шаблон вручную. Достаточно распаковать архив, и распакованную папку с шаблоном скопировать в папку /templates вашего сайта.
Пример templateDetails.xml обычного шаблона:
<mosinstall type="template" version="1.0.x"> <name>Название шаблона</name> <creationDate>11/12/06</creationDate> <author>Автор</author> <copyright>GNU/GPL</copyright> <authorEmail> author@email.com </authorEmail> <authorUrl>www.joom.ru</authorUrl> <version>1.0</version> <description> Пример templateDetails.xml обычного шаблона </description> <files> <filename>index.php</filename> <filename>js/ie.js</filename> <filename>template_thumbnail.png</filename> </files> <images> <filename>images/header.png</filename> <filename>images/background.png</filename> <filename>template_thumbnail.png</filename> </images> <css> <filename>css/base.css</filename> <filename>css/norightcol.css</filename> <filename>css/template_css.css</filename> </css> </mosinstall>
А теперь рассмотрим каждую строчку файла:
name: - Имя шаблона. В процессе установки будет создана папка с идентичным именем, поэтому в названии шаблона нельзя использовать пробелы.
Именно этот файл определяет разметку шаблона и отвечает за вывод компонентов/модулей на экран. Именно в этом файле нам придётся проводить большую часть времени создания шаблона. И именно этот файл отвечает за соответствие шаблона стандартам W3C. Ладно, пора переходить к изучению этого файла. Прежде всего, для каждого шаблона необходимо определить DOCTYPE. Тег <!DOCTYPE> сообщает браузеру о типе текущего документа и как его интерпретировать. Различают несколько версий и типов (X)HTML-документов. Тип нашего шаблона - XHTML 1.0 Transitional:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="<?php echo _LANGUAGE; ?>" xml:lang="<?php echo _LANGUAGE; ?>">
Кроме версии XHTML Transitional, существует версия Strict. Опять же при описании различий между этими двумя версиями все упирается в стандарты W3C:
Хорошо, с определением DOCTYPE мы разобрались, поэтому в следующем коде определение типа документа я опущу. Все нормальные шаблоны состоят из двух главных частей: заголовка (<HEAD>) и тела документа (<BODY>). Раздел заголовка может содержать текст и теги, но содержимое этого раздела не показывается напрямую на странице. Теперь разберём на примере нашего шаблона. Взгляните на код:
<?php defined( '_VALID_MOS' ) or die( 'Доступ ограничен' ); ?> <!--Определение DOCTYPE --> <head> <meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" /> <?php if ($my->id) { initEditor(); } ?> <?php mosShowHead(); ?> <link href="templates/<?php echo $cur_template; ?>/css/template_css.css" rel="stylesheet" type="text/css" /> </head>
И снова, как в случае с templateDetails.xml, я расшифрую каждую строчку вышеприведённого кода:
<?php defined( '_VALID_MOS' ) or die( 'Доступ ограничен' ); ?>
Предотвращает прямой доступ к файлу шаблона index.php. Допустим, пользователь в адресной строке браузера набрал адрес вида "http://site/joomla/templates/rd_demotemplate/index.php" - в итоге вместо исходного кода файла, Joomla! покажет ему 'Доступ ограничен'.
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
Эта строка сообщает браузеру, какая кодировка используется на сайте. Если указание кодировки отсутствует, браузер пытается сам определить, какой тип символов используется в документе и выбирает необходимую кодировку автоматически. Браузер не всегда может точно распознать язык веб-страницы и в некоторых случаях предлагает вьетнамскую кодировку вместо кириллицы. По этой причине лучше всегда указывать приведённую строчку.
<?php if ($my->id) { initEditor(); } ?>
Загрузка WISYWYG-редактора в фоновом режиме при посещении сайта. После авторизации пользователи, которым дан соответствующий доступ, впрочем, как и администраторы, могут редактировать новости/статьи прямо на сайте, не пользуясь "Панелью управления". Очень удобно, когда необходимо за считанные минуты исправить очепятку в тексте.
<?php mosShowHead(); ?>
Подставляет в веб-страницу метатеги. Метатеги используются для хранения информации предназначенной для браузеров и поисковых систем. Например, механизмы поисковых систем обращаются к метатегам для получения описания сайта, ключевых слов и других данных. Данные для формирования метатегов берутся из глобальной конфигурации сайта. Включает в себя следующие поля:
<title>Учебник Создание шаблона Joomla</title> <meta name="description" content="doctype, установка joomla, создание шаблона для joomla" /> <meta name="keywords" content="doctype, шаблон, joomla" /> <meta name="Generator" content="Joomla! - Copyright (C) 2005 Open Source Matters. All rights reserved." /> <meta name="robots" content="index, follow" /> <link rel="shortcut icon" href="images/favicon.ico" /> <link href="templates/<?php echo $cur_template; ?>/css/template_css.css" rel="stylesheet" type="text/css" />
<?php echo $cur_template; ?>возвращает в документ название текущего шаблона Joomla сайта, а вернее - название папки с шаблоном Joomla.
Достоинства подключения отдельного файла стилей:
Этот файл предназначен не только для вывода мета-информации и определения типа шаблона Joomla. Главное предназначение index.php - вывод содержимого (новостей, модулей и т.д.). В Joomla! уже имеются все необходимые команды вывода содержимого, их нужно только вставить в нужное место шаблона. Ниже приведены самые основные коды шаблоны Joomla 1.0.x:
<body> <!-- 1 --><?php echo $mosConfig_sitename;?> <!-- 2 --><?php mospathway()?> <!-- 3 --><?php mosLoadModules('top');?> <!-- 4 --><?php mosLoadModules('left');?> <!-- 5 --><?php mosMainBody();?> <!-- 6 --><?php mosLoadModules('right');?> <!-- 7 --><?php include_once( $mosConfig_absolute_path .'/includes/footer.php' );?> </body>
Рассмотрим их по порядку:
Вернуться: W3C-стандарты | Далее: Создание шаблона Joomla: CSS и HTML |