Шаблоны
В шаблонах 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 -->
- Авторские права на содержимое сайта и информация о движке. В панели управления (раздел настройки сайта) можно изменить параметры, на основе которых генерируется эта строка.