Архитектура Coffee CMS
Эта статья поможет в написании ваших модулей под свои уникальные нужды. Она описывает базовые принципы на которых построена CMS.
Основной принцип CMS - это KISS - делай как можно проще. Чтобы не придумывать очередной сложный фреймворк со своими правилами и можно было бы писать произвольный php-код используется всего одна глобальная переменная $cms[], которая представляет собой ассоциативный массив. Она содержит вообще все, импортируется практически во все функции и доступна для изменения любым модулем.
Сохраняемые в конфигурационный файл параметры находятся в $cms["config"][]. Всё помещенное туда сохраняется в файл функцией cms_save_config(). Рекомендация состоит в том, чтобы помещать настройки модуля в подмассивы типа $cms["config"]["pages.mod.php"], для модуля pages.mod.php, например, чтобы не разводить бардак.
Все остальные переменные, нужные только на время генерации страницы, размещаются в корне переменной $cms[], вне секции $cms["config"]. Будьте аккуратны в придумывании собственных имен, чтобы не пересечься с уже задействованными именами или лучше используйте свои глобальные переменные. Чтобы посмотреть какие подмассивы есть в переменной $cms, просто сбросьте ее содержимое в файл, добавив соответствующий код в конец файла .cms/index.php.
Продолжение следует...