Создание шаблонов для 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.

Комментировать
Закрыть
Сумма:
0 ₽
После согласования условий заказа мы Вам отправим счёт или ссылку c удобным способом оплаты.
Оформить заказ