Работа с шаблонами
Теперь можно приступить непосредственно к наполнению шаблонов. Рассмотрим типовое наполнение основных частей шаблонов в нашей созданной в предыдущей статье теме «main-theme».
Данные доступные в шаблоне
В Deep-CMS все необходимые данные уже доступны в шаблоне. В частности это переменные документа, идентификаторы пользователя и конфигурационные переменные.
Для начала давайте откроем файл application/layouts/themes/main-theme/public/page.html и напишем в нем вот такой код:
<?=$page_text?>
Вот и все — содержимое страницы уже должно выводиться на сайт. Давайте теперь добавим h1-заголовок документа:
<h1><?=$page_h1?></h1>
<div><?=$page_text?></div>
Вот так все просто. Теперь у нас выводятся заголовок и текст страницы. Кроме заголовка и текста страницы есть еще огромное количество переменных текущего документа доступных в шаблоне. Полный список можно посмотреть тут.
Подключение частей шаблонов (подшаблонов)
Мы уже успели ранее создать две главные части шаблонов: header.html и footer.html. Как же их подключить к шаблону page.html? Это очень просто. В php существуют стандартные способы подключения файлов внутрь других так, будто это целый файл. Этим стандартным способом мы и воспользуемся.
Однако есть и нюансы: все шаблоны должны подключаться именно конструкцией require, остальные конструкции (require_once, include, include_once) при подключении использовать запрещено. Это обусловлено внутренней структурой приложения в пользу других возможностей.
Не всегда известно какая из тем сейчас активна. А писать полные пути не очень удобно, вдруг Вы решите переименовать тему. Тогда пути к шаблонам изменятся и придется редактировать эти пути в шаблонах. Deep-CMS предоставляет некоторое удобство для подключения шаблонов, в системном окружении доступны следующие переменные:
$_config->layouts->parts
$_config->layouts->header
$_config->layouts->footer
Первая из них позволяет подключать шаблоны из директории «parts» в контексте текущей темы. Выглядит это следующим образом:
<?php require $_config->layouts->parts . 'top-menu.html'; ?>
Как видите, ничего сложного, достаточно указать имя шаблона и система сама его найдет и подключит из директории «parts» в контексте текущей активной темы.
Две оставшиеся переменные подключают соответственно header.html и footer.html. Эти два подшаблона можно подключить и с помощью первой переменной — они ведь лежат в директории «parts», тем не менее, чтобы было немного короче, используйте эти специальные переменные.
Вот так будет выглядеть наш шаблон page.html с подключением «шапки» и «подвала»:
<?php require $_config->layouts->header; ?>
<h1><?=$page_h1?></h1>
<div><?=$page_text?></div>
<?php require $_config->layouts->footer; ?>
В данный момент предполагается что шаблоны «шапка» и «подвал» у нас пустые. Соответственно туда нужно добавить htlm-код.
Это у нас будет «шапка»:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="<?=$meta_keywords?>" />
<meta name="Description" content="<?=$meta_description?>" />
<title><?=$page_title?></title>
</head>
<body>
Как видно из примера, мы использовали некоторые предопределенные переменные документа: $meta_keywords, $meta_description и $page_title. С ними наша страница уже будет выглядеть правильно с точки зрения SEO-требований.
А это «подвал»:
</body>
</html>
Ну вот, самую простую страничку мы с Вами уже создали. В следующей статье мы разберем как получать список элементов меню, список потомков документа, «хлебные крошки», а так же узнаем еще много интересного.