Схема работы ядра и порядок запуска модулей
Чтобы успешно работать с UserCMS нужно понимать как он работает изнутри (всю его подноготную), а это кстати не сложно понять.
Начинается конечно всегда при любом урле с файла index.php
Откройте его.
Как видите сначала подключаются три ядра, которые друг друга наследуют
require(ROOT_DIR . '/user_cms/user_cms_core.php');
require(ROOT_DIR . '/user_cms/user_cms_core_edition.php');
require(ROOT_DIR . '/modules/core.php');
Потом запускается приложение, создавая объект $u
$u = new core();
Тем самым мы запускаем констурктор ядра, то есть в файле
/user_cms/user_cms_core.php
выполняется function __construct()
$u -> load_addons('before');
то есть запускается function load_addons() из /user_cms/user_cms_core.php
фактически смотрится какие аддоны активаированы в позиции before и производится их запуск, то есть $a = $this->load_addon($addon);
$u -> load_component();
Определяется какой компонент надо запустить, см.
и потом на основе его контроллера создается объект и запускается нужны action_xxxxx или action_index() - по умолчанию
$c = new $component_full_name($this -> config, $this -> url,$this -> component, $this -> dbh);
$component_action_name = 'action_' . $this -> component['action'];
в index.php идут сделующие строчки
$u -> load_theme(); //загрузка темы и определение какие в ней есть позиции
$u -> load_blocks(); // згрузка блоков, понимая какие есть позиции и какие в них активированы блоки
$u -> load_plugins(); // загрузка плагинов, найдя фигурные скобки вида { plugin:XXXXX=YYYY }
$u -> load_addons('after'); // загрузка аддонов, но в позиции афтер
$u -> load_pre_echo(); // компоновка всех кусков html кода (компонента, блоков, плагинов) в единый html код
все эти функции (методы класса) тоже можно посмотреть в /user_cms/user_cms_core.php
echo $u -> html
именно это свойство нашего класса и содержит весь html код будущей страницы
Далее удаление объекта, тем самым запуск деструктора в которым закрытие соединения с базой.
Вот как-то так.