Схема работы ядра и порядок запуска модулей


Чтобы успешно работать с 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 код будущей страницы


Далее удаление объекта, тем самым запуск деструктора в которым закрытие соединения с базой.

Вот как-то так.




Создание и продвижение сайтов: Unibix