Файловая структура 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:
- <DOCUMENT_ROOT> этих сайтов расположен в каталоге www/subdmn/<ИМЯ САЙТА>
- Для этих сайтов, устанавливается тема simple. Поэтому, все файлы этих сайтов располагаются в каталоге www/subdmn/<ИМЯ САЙТА>/themes/simple
Шаблонизатор Twig
В качестве шаблонизатора при разработке сайтов используем Twig http://twig.sensiolabs.org
Инициализация движка производится в bootstrap.php:
$twig = \Cetera\Application::getInstance()->getTwig();
Правила именования шаблонов
- Все шаблоны в подкаталоге design
- Использование подкаталогов внутри design не приветствуется. Если у вас 100 шаблонов, то с вероятностью 90% вы делаете что-то не так
- Расширение файлов .twig
- Главный шаблон называется layout.twig
- Шаблон главной страницы называется page_index.twig
- Шаблоны страниц называются page_*.twig
- Подключаемые блоки называются block_*.twig
- Шаблоны писем называются mail_*.twig
- Шаблоны rss лент называются rss_*.twig
- Макросы — macros_*.twig
- Не приветствуется вынос кода из шаблона в подключаемый шаблон, если подключать вы его будете всего в 1 месте
Главный шаблон и шаблоны страниц:
Главный шаблон layout.twig — скелет сайта. Содержит код, повторяющийся на всех остальных страницах сайта:
<html>
<head>
… стили, мета, скрипты …
</head>
<body>
… ШАПКА …
… ЛЕВАЯ КОЛОНКА …
{% block content %}центральная часть, будет переопределена в конкретных страницах{% endblock %}
… ПРАВАЯ КОЛОНКА …
… ПОДВАЛ …
</body>
</html>
Шаблоны страниц как правило расширяют главный шаблон, например page_index.twig может выглядеть так:
{% extends "layout.twig" %}
{% block content %}Добро пожаловать на главную страницу!{% endblock %}