Раширяемость WEB-NICK Framework состоит
из компонентов, модулей, плагинов и шаблонов. Модули, плагины,
компоненты и шаблоны, которые будут вызваны по-умолчанию, определяются
в файле "config/default_extensions.php".
Шаблоны:
В завершающей части выполнения страницы, CMF вызывает нужный шаблон, и помещает в него результат выполнения определенных модулей и компонента. Вызываемый шаблон на странице может быть только один.
Шаблон по-умолчанию задается значением в массив $default_extensions["templates"], в файле "config/default_extensions.php". Это имя папки шаблона в папке "templates". Имя главного файла шаблона (точка входа шаблона) определяется свойством $EXTENSIONS_ENTRY_POINT_TP в файле config/config.php.
Структура шаблона:
Шаблон состоит из HTML-кода с добавлением специальных вставок {} (шаблонизатор HTML_Template_IT), в которых следует имя от вставляемого модуля, или {components}, если необходимо вставить результат выполнения компонента.
В самую первую строчку шаблона рекомендуется вставить {notice_PHP}, если необходимо выносить предупреждения PHP в верхнюю часть сайта (смотрите свойство $NOTICE_PHP_ON_TOP и $CH_NOTICE_PHP_STRING в файле "config/default_extensions.php". )
В тег <head> шаблона необходимо вставить блок {head}, чтобы иметь возможность динамически добавлять в этот тег значения.
Компонент:
Компонент является главным элементом в расширяемости WEB-NICK
Framework. Вызываемый компонент на странице может быть только один.
Вставка в шаблон происходит путем добавления {components} в HTML-код, и обычно идет посередине шаблона, так как компонент выполняется только один, и предполагается что визуальный результат его выполнения есть самый главный результат для WEB-страницы.
Компонент по-умолчанию задается значением в массив $default_extensions["components"], в файле "config/default_extensions.php". Это имя папки компонента в папке "components". Имя главного файла компонента (точка входа компонента) определяется свойством $EXTENSIONS_ENTRY_POINT в файле config/config.php.
Компонент который будет вызван на следующей странице WEB-сайта определяется в строке запроса браузера через параметр "component" или "com". Например: http://ваш_сайт.ком/?com=register.
Компонент должен определить используемые далее на странице модули, или их отсутствие, иначе будут использоваться модули по-умолчанию из массива $default_extensions["modules"].
Определение модулей происходит через код: $WN_Extensions->set_modules(массив с модулями) или $WN_Extensions->set_modules(false) если модули на странице не нужны. "Массив с модулями" - аналогичный по структуре массив, как и значение массива $default_extensions["modules"].
Модули:
Модули являются вспомогательными визуальными частями на сайте. Вызываемых модулей на странице может быть сколько угодно.
Модули по-умолчанию задается значением в массив $default_extensions["modules"], в файле "config/default_extensions.php". Это имя отображения в шаблоне + имя папки модуля в папке "modules". Имя главного файла модуля (точка входа модуля) определяется свойством $EXTENSIONS_ENTRY_POINT в файле config/config.php.
Имя папки модуля и имя отображения в шаблоне рекомендуется делать одно и то же. Например $default_extensions["modules"]["top"] = "top" означает что будет запущен модуль "top" и в шаблоне будет происходить поиск блока {top}, для вставки визуального результата работы этого модуля.
Если модули на сайте не нужны, то необходимо в файле "config/default_extensions.php" написать $default_extensions["modules"] = false;
Плагины:
Плагины являются вспомогательными НЕ визуальными частями на сайте. Вызываемых плагинов на странице может быть сколько угодно. Предполагается что плагин не генерирует никакой HTML-код (в отличии от компонентов и модулей), поэтому определять блоки в шаблоне для него не надо.
Плагины по-умолчанию задаются значением в массив $default_extensions["plugins"][], в файле "config/default_extensions.php". Это имя папки плагина в папке "plugins". Имя главного файла плагина (точка входа плагина) определяетя свойством $EXTENSIONS_ENTRY_POINT в файле config/config.php.
Практический пример реализации:
Пользователь заходит на главную страницу сайта http://ваш_сайт.com. CMF обращается к файлу "config/default_extensions.php" и определяет какие нужны расширения.
Порядок запуска расширений:
CMF сначала запускает все плагины, затем компонент и все модули. После этого загружается файл шаблона, в котором ищутся нужные блоки, для вставки в них HTML-результата работы модулей и компонента.
Далее пользователь заходит на следующую страницу сайта, например вида: http://ваш_сайт.ком/?com=register. Запускается компонент "register", который отрабатывает свои задачи, генерирует HTML-код, определяет какие на это странице нужны модули, и какой нужен шаблон.
Подробнее на странице
с описанием API для расширений.