Шаблоны
В шаблонах S2 хранится $GLOBALS. Однако включать большие фрагменты кода в шаблоны не рекомендуется, для изменения и добавления функциональности в S2 есть специальный механизм расширений.
Стандартные шаблоны
В ядре S2 есть несколько шаблонов:
- site.php — обычная страница;
- back_forward.php — страница без боковой колонки (в стандартном стиле zeta);
- mainpage.php — главная страница;
- service.php — служебные страницы, например, предварительный просмотр комментариев;
- error404.php — страница ошибки 404.
Переопределение шаблонов
S2 ищет шаблоны сначала в папке стиля, а затем в папке _include/templates/. Таким образом стили могут переопределять стандартные шаблоны.
Если установлено расширение s2_tpl_edit (редактор шаблонов), логика загрузки шаблонов меняется, и шаблоны сначала ищутся в кеше. Также это расширение позволяет редактировать содержимое кеша.
Обработка ссылок в шаблонах
Для удобства создания дополнительных навигационных панелей все ссылки в шаблонах проходят специальную обработку. Когда значение атрибута href совпадает с адресом (URL) текущей страницы, элемент a заменяется элементом span. Когда адрес текущей страницы начинается со значения атрибута href, к элементу a добавляется класс class="current". Чтобы происходила такая замена, адреса в ссылках должны быть абсолютными и без домена. Кроме того, у открывающего тега a не должно быть других атрибутов, количество пробелов должно быть минимальным. Например, следующая ссылка пройдет обработку: <a href="/">...</a>
Пример шаблона
Рассмотрим шаблон _include/templates/site.php. Специальные метки в виде
<?php if (!defined('S2_ROOT')) die; ?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><!-- s2_head_title --></title>
<!-- s2_meta -->
<!-- s2_styles -->
<!-- s2_navigation_link -->
<!-- s2_rss_link -->
</head>
<body class="site">
<div id="crumbs"><!-- s2_crumbs --></div>
<!-- s2_search_field -->
<div id="header"><!-- s2_site_title --></div>
<div id="center">
<div id="container">
<div id="content">
<!-- s2_author -->
<!-- s2_title -->
<!-- s2_date -->
<!-- s2_text -->
<!-- s2_subarticles -->
<!-- s2_tags -->
<!-- s2_comments -->
<!-- s2_comment_form -->
</div>
<div id="menu">
<!-- s2_menu -->
<!-- s2_article_tags -->
</div>
<div class="clearing"></div>
</div>
<!-- s2_debug -->
</div>
<div id="footer">
<p id="queries"><!-- s2_querytime --></p>
<p id="copyright"><!-- s2_copyright --></p>
</div>
</body>
</html>
Список меток
Ниже приведены описания всех меток, с которыми работает движок S2. Обратите внимание на то, что расширения могут определять любые другие метки. Метки расширений здесь не описаны.
Метки страницы
Эти метки соответствуют полям редактора панели управления.
<!-- s2_title -->- Заголовок страницы.
<!-- s2_meta -->Мета-теги с ключевыми словами и описанием, указанным для страницы.<!-- s2_date -->- Дата создания страницы.
<!-- s2_author -->- Имя автора материала. Выводится имя, назначенное пользователю в панели управления.
<!-- s2_text -->HTML-код основного содержимого.
Метки элементов навигации
<!-- s2_head_title -->- Автоматически создаваемый заголовок. Содержит название самой страницы и название сайта. Предназначен для вставки в тег
title. <!-- s2_crumbs -->- «Хлебные крошки» — цепочка ссылок на разделы (предки всех уровней).
<!-- s2_section_link -->- Ссылка на раздел (непосредственный предок).
<!-- s2_menu -->- Навигационные ссылки на другие страницы в разделе
<!-- s2_article_tags -->- Эта метка работает для страниц, отмеченных ключевыми словами. Ей соответствует список ссылок на другие статьи с такими же ключевыми словами.
<!-- s2_tags -->- Альтернативный способ работы с ключевыми словами. Метка создает список ссылок на страницы ключевых слов с выдержками соответствующих страниц.
<!-- s2_subarticles -->- Эта метка работает только в разделах. Ей соответствует список статей с выдержками и список дочерних разделов.
<!-- s2_last_articles -->- Список последних страниц на всем сайте (заголовки, даты, выдержки). В стандартных шаблонах используется на главной странице. В него попадают страницы с указанным временем создания или изменения.
Метки комментариев
<!-- s2_comments -->- Комментарии пользователей.
<!-- s2_comment_form -->- Форма ввода комментариев.
<!-- s2_last_comments -->- Список последних комментариев. В стандартных шаблонах используется на главной странице.
<!-- s2_last_discussions -->- Список страниц (не более 10), собравших наибольшее количество комментариев за месяц.
Прочие метки
<!-- s2_site_title -->- Название сайта. Его можно изменить в панели управления на вкладке настройки сайта.
<!-- s2_styles -->- Место для подключения стилей и скриптов (например, тегов
linkк ). Содержимое метки определяется выбранным стилем и установленными расширениями.css-файлам <!-- s2_navigation_link -->- Теги
linkсо ссылками на соседние страницы. <!-- s2_rss_link -->- Тег
linkдля подключения RSS. <!-- s2_debug -->- Отладочная информация о запросах к базе данных. Выводится только тогда, когда включена константа
S2_SHOW_QUERIES. <!-- s2_querytime -->- Время генерации страницы и количество запросов к базе. Выводится только тогда, когда включена константа
S2_DEBUG. <!-- s2_copyright -->- Авторские права на содержимое сайта и информация о движке. В панели управления (раздел настройки сайта) можно изменить параметры, на основе которых генерируется эта строка.