Создание шаблонов для Coffee CMS
В этой статье рассмотрены 3 способа создания шаблонов. От самого простого, до самого гибкого. Если у вас на сайте все страницы одинаковы, то выбирайте первый. Если есть несколько типов страниц, но они не сильно разнятся - второй. Если требуется полностью индивидуализировать каждый тип страниц - третий.
Самый простой шаблон
1. В папке .cms создайте папку с названием вашего шаблона MyTemplate1.
2. В папке MyTemplate1 создайте файл html.php:
<html>
<head>
<meta charset=utf-8>
</head>
<body>
<?php echo $cms["page"]["text"]; ?>
</body>
</html>
С несколькими подшаблонами
1. В папке .cms создайте папку с названием вашего шаблона MyTemplate2.
2. В папке MyTemplate2 создайте основной файл шаблона html.php:
<html>
<head>
<meta charset=utf-8>
</head>
<body>
<?php include( $cms["page"]["tpl"] . ".php" ); ?>
</body>
</html>
3. В папке MyTemplate2 создайте файл подшаблона page.php:
<?php echo $cms["page"]["text"]; ?>
4. В папке MyTemplate2 создайте файл следующего подшаблона page2.php:
<?php echo $cms["page"]["text"]; ?>
Создание шаблона с максимальной гибкостью
Данный вариант позволяет к каждому шаблону подключать индивидуальные стили, скрипты, тем самым распределять нагрузку между страницами, а также создавать полностью индивидуальные страницы, включая верхнюю и нижнюю часть сайта.
1. В папке .cms создайте папку с названием вашего шаблона MyTemplate3.
2. В папке MyTemplate3 создайте основной файл шаблона html.php:
<?php
$f = __DIR__ . "/" . $cms["page"]["tpl"] . ".php";
if ( file_exists( $f ) ) include( $f );
?>
3. В папке MyTemplate3 создайте файлы подшаблонов page.php и page2.php
<html>
<head>
<meta charset=utf-8>
</head>
<body>
<?php echo $cms["page"]["text"]; ?>
</body>
</html>
Теперь вы можете индивидуализировать каждый подшаблон целиком, до неузнаваемости меняя вид сайта на разных страницах. Это может пригодиться когда вы делаете лендинги и хотите убрать все лишнее.
Вывод переменных
Для того, чтобы вывести в шаблоне заголовок страницы (title), описание страницы (description) и т.д., используйте заготовки кода расположенного ниже.
Язык
<html lang="<?php echo $cms["config"]["lang"]; ?>">
Title (SEO Title)
<title><?php if ( ! empty( $cms["page"]["seo_title"] ) ) { print $cms["page"]["seo_title"]; } else { print @$cms["page"]["title"]; } ?></title>
Description
<?php if ( ! empty( $cms["page"]["description"] ) ) { echo '<meta name="description" content="' . htmlspecialchars( $cms["page"]["description"] ) . '">'; } ?>
Canonical
<link rel="canonical" href="<?php print $cms["url"]["scheme"] . "://" . $cms["url"]["host"] . $cms["base_path"] . $cms["page"]["url"]; ?>">
Встроить стили прямо в страницу
<style type="text/css"><?php include( __DIR__ . "/style.css" ); ?></style>
Вывод заголовка страницы
<h1><?php echo $cms["page"]["title"]; ?></h1>
Вывод содержимого страницы
<?php echo $cms["page"]["text"]; ?>
Дата создания страницы
<?php echo date( "d.m.Y H:i", strtotime( $cms["page"]["created"] ) ); ?>
Дата изменения страницы
<?php echo date( "d.m.Y H:i", (int) $cms["page"]["modified"] ); ?>
Ошибка 404. Вместо простого echo $cms["page"]["text"];
поставьте следующее:
<?php
if ( $cms["status"] == 404 ) {
if ( ! empty( $cms["page"]["text"] ) && is_admin() ) {
echo $cms["page"]["text"];
} else {
echo "<h1>404 Not found</h1>";
}
} else {
echo $cms["page"]["text"];
}
?>
Вывод меню
Вывод меню в области header, aside, footer.
<?php echo menu( "header" ); ?>
<?php echo menu( "aside" ); ?>
<?php echo menu( "footer" ); ?>
Настройки шаблона
Вы можете создать свои собственные области меню. Для этого создайте файл template.settings.php в папке шаблона:
<?php
$cms["menu_areas"]["header"] = array( "title" => "Верхнее" );
$cms["menu_areas"]["footer"] = array( "title" => "Нижнее" );
$cms["menu_areas"]["side"] = array( "title" => "Боковое" );
В папке шаблона вы можете создавать любые xxx.yyy.php вспомогательные файлы и они не будут считаться шаблонами поскольку содержат точку в имени файла. Если в имени файла нет точки, то он будет считаться шаблоном для страницы и отобразится в выпадающем списке в свойствах страницы. Такой подход был выбран чтобы имена шаблонов страниц не выглядели странными и в тоже время не усложнять алгоритм поиска шаблонов страниц.
Более сложные примеры можно подсмотреть в шаблоне mini, который идет в стандартной поставке.
Инструкция к шаблону
Создайте файлик instruction.ru_RU.UTF-8.html в котором разместите заготовки кода для вставки на сайт. Эти заготовки состоят из предварительного просмотра результата и кнопки Копировать, по нажатию на которую, код будет скопирован и затем его можно вставить в страницу.
В файл заготовок подключите стили от шаблона и заготовки будут выглядеть ровно так, как они будут выглядеть на сайте.
Пример того, как это делается вы можете увидеть в шаблоне mini.