S2Документация → Шаблоны

Шаблоны

В шаблонах S2 хранится HTML-разметка макетов страниц. По сути шаблоны — это обычные PHP-файлы. Помимо разметки, они теоретически могут содержать исполняемый код. Шаблоны подключаются в локальной области видимости одной из функций, поэтому обращаться к глобальным переменным нужно через $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. Специальные метки в виде HTML-комментариев обозначают места, в которые будет помещен HTML-код фрагментов страницы.

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