Система управления SATCMS

Движок

Структура папок движка

/cache/ - кэш системы
/tfdocs - файлы конфигурации
/htdocs - корень сайта
/htdocs/modules - модули системы
/htdocs/modules/core - ядреный модуль
/htdocs/modules/sat - модуль SATCMS
/htdocs/modules/users - модуль пользователей
/htdocs/ext - внешние библиотеки
/htdocs/editor/ - файлы редактора

/htdocs/uploads/ - динамически созданные файлы пользователя
/htdocs/static/ - генератор статики отложит сюда личинки

/modules/core/loader.php - загрузчик системы

Каждый модуль имеет свою структуру:

/classes - модели модуля
/editor - файлы редактора - действия и шаблоны
/i18n - языковые файл
/module.php -  файл модуля
/exception.php - исключения модуля
/controller.php - контроллер
/router.php - роутер
/routes.php - роуты для модуля
/blocks.php - блоки модуля

/htdocs/templates/* - шаблоны для сайта (фронтенд)

Работа системы

Все запросы сервера переадресуются на файл /index.php
Далее загружается modules/core/loader.php, происходит подгрузка необходимых файлов
Загружается ядро modules/core/core.php и создается экземпляр класса core.
(Доступ к нему можно получить через core::get_instance()).

После инициализации необходимых библиотек, управление передается методу core::initial_route(),
который выясняет какому сайту предназначается запрос, вычисляет необходимый модуль для обработки запроса и перенаправляет запрос роутеру модуля module::get_router()->route(). Роутер разбирает входящий URI и ищет совпадения в таблице роутинга. Далее вызывается контроллер с нужным действием.
Отработавший контроллер устанавливает данные для шаблона через renderer (core::lib('renderer')), который в свою очередь передаст их шаблонизатору (smarty).

По завершении цикла шаблонизатор вызывает шаблон root.tpl (или переназначенный для страницы) указанного для сайта макета и подставляет переданные данные, получая на выходе запрошенную страницу.