Файловая структура Fastsite CMS

<DOCUMENT_ROOT>
+---.prefs            — основные настройки CMS
+---.htaccess         — настройки прав доступа и url rewrite
+---robots.txt    
+---cms/                     — скрипты Fastsite CMS
+---library/                 — сторонние библиотеки, используемые Fastsite CMS
+---uploads/                 — каталог по умолчанию для файлов, загружаемых пользователями через интерфейс CMS
+---plugins/                 — каталог с дополнительными модулями
+---themes/                  — каталог с темами (редакциями)
+---.cache/                  — хранилище кэша
+---.templates/              — скрипты сайта
|   +---design/              — верстка 
|   |   +---layout.twig      — главный шаблон
|   |   +---page_index.twig  — шаблон главной страницы сайта
|   |   +---page_404.twig    — шаблон страницы 404
|   +---classes/             — пользовательские классы
|   +---widgets/             — шаблоны виджетов
|   +---default.php          — контроллер по умолчанию
|   +---bootstrap.php        — скрипт запускаемый перед выполнением любого контроллера
+---css/                     — стили
+---js/                      — javascripts

По умолчанию, все скрипты, отвечающие за логику работы сайта располагаются в каталоге <DOCUMENT_ROOT>/.templates. Имеется возможность переопределить этот каталог персонально для каждого сервера, задав нужное значение в поле «Каталог» в свойствах сервера в интерфейсе Fastsite CMS.

Например, при активации темы (редакции) на конкретном сервере прописывается каталог <DOCUMENT_ROOT>/themes/<НАЗВАНИЕ ТЕМЫ>, структура которого идентична .templates, за исключением того, что стили и js-скрипты (каталоги css и js) находятся также внутри каталога темы.

Замечание, касаемо сайтов, созданных в конструкторе fastsite.ru:

  1. <DOCUMENT_ROOT> этих сайтов расположен в каталоге www/subdmn/<ИМЯ САЙТА>
  2. Для этих сайтов, устанавливается тема simple. Поэтому, все файлы этих сайтов располагаются в каталоге www/subdmn/<ИМЯ САЙТА>/themes/simple

Шаблонизатор Twig

В качестве шаблонизатора при разработке сайтов используем Twig http://twig.sensiolabs.org

Инициализация движка производится в bootstrap.php:

$twig = \Cetera\Application::getInstance()->getTwig();

Правила именования шаблонов

  1. Все шаблоны в подкаталоге design
  2. Использование подкаталогов внутри design не приветствуется. Если у вас 100 шаблонов, то с вероятностью 90% вы делаете что-то не так
  3. Расширение файлов .twig
  4. Главный шаблон называется layout.twig
  5. Шаблон главной страницы называется page_index.twig
  6. Шаблоны страниц называются page_*.twig
  7. Подключаемые блоки называются block_*.twig
  8. Шаблоны писем называются mail_*.twig
  9. Шаблоны rss лент называются rss_*.twig
  10. Макросы — macros_*.twig
  11. Не приветствуется вынос кода из шаблона в подключаемый шаблон, если подключать вы его будете всего в 1 месте

Главный шаблон и шаблоны страниц:

Главный шаблон layout.twig — скелет сайта. Содержит код, повторяющийся на всех остальных страницах сайта:

<html>
  <head>
  … стили, мета, скрипты …
  </head>
  <body>
  … ШАПКА …
 
  … ЛЕВАЯ КОЛОНКА …
 
  {% block content %}центральная часть, будет переопределена в конкретных страницах{% endblock %}
 
  … ПРАВАЯ КОЛОНКА …
 
  … ПОДВАЛ …
  </body>
</html>

Шаблоны страниц как правило расширяют главный шаблон, например page_index.twig может выглядеть так:

{% extends "layout.twig" %}
{% block content %}Добро пожаловать на главную страницу!{% endblock %}