Перейти к содержанию

Создание шаблонов страниц

По умолчанию, все шаблоны страниц находятся в директории Extensions/Content/tpl. Для создания нового шаблона, достаточно создать файл с расширением .tpl в этой же директории.

Simflex CMS не работает с шаблонизаторами, соответственно вся верстка шаблона интерпретируется через PHP. Это позволяет ускорить работу сайта, а также избавляет от необходимости изучать синтаксис стороннего шаблонизатора.

Организация верстки

Для более удобной работы с шаблонами, рекомендуется создать файлы header.tpl и footer.tpl. В этих файлах располагаются части верстки до основного контента и после основного контента (прим. header.tpl оканчивается тегом <body>, а footer.tpl начинается с тега </body>).

Чтобы использовать эти файлы, достаточно добавить строки <?php include 'header.tpl' ?> в начало шаблона и <?php include 'footer.tpl' ?> в конец шаблона.

Аналогично, можно помещать часто используемые куски верстки в отдельные файлы.

Внимание

Для правильной работы сайта, в header.tpl необходимо добавить код <?php Simflex\Core\Page::meta() ?> для вывода title и стилей, а в footer.tpl - <?php Simflex\Core\Page::metaJS() ?> для вывода скриптов.

Вывод данных

В каждом файле шаблона доступно несколько глобальных переменн:

Название Тип Описание
$content массив объект, хранящий в себе данные о странице
$children массив объект, хранящий в себе дочерние страницы (если они есть). Каждый элемент этого массива является аналогом массива $content

В массиве $content хранятся следующие элементы:

Название Тип Описание
title строка заголовок страницы
photo строка ссылка на изображение страницы
path строка ссылка на страницу (прим. /blog/my-new-post/)
params массив массив с параметрами шаблона, которые задаются вручную

Для вывода данных используется конструкция <?= $var ?>, где $var - переменная, которую нужно вывести. Также, внутри тега <?php ?> можно писать любой PHP код, который будет выполнен во время подготовки страницы к выводу.

Пример:

<ul>
    <?php foreach ($items as $item): ?>
        <li><?= $item ?></li>
    <?php endforeach; ?>
</ul>