In-Portal Developers Guide

This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.

EventHandler:OnAfterConfigRead

From In-Portal Developers Guide

Jump to: navigation, search

События общего применения События общего применения
Статьи в этой категории

Событие OnAfterConfigRead происходит для каждого Unit на этапе инициализации системы, после того как в памяти уже собрана базовая конфигурация, основанная на Unit Configs. Соответственно, события OnAfterConfigRead генерируются модулем, ответственным за считывание конфигурации - kUnitConfigReader.

По умолчанию тело метода OnAfterConfigRead пусто. Однако, это событие широко используется для изменения базовой конфигурации - путём переопределения в классе-наследнике, либо путём создания hook к событию OnAfterConfigRead нужного префикса.

Contents

Вызывается из шаблона

Не вызывается из шаблонов.

Вызывается из событий

Не вызывается из событий.

Входные параметры

Отсутствуют.

Вызывает события

Не вызывает события.

Потенциальное применение

В событии OnAfterConfigRead можно переопределить поля базы данных, шаблоны, классы, секции в главном меню административной части сайта и любые другие настройки, доступные в Unit Configs без изменения базовых конфигурационных файлов.

Пример - делаем поле обязательным для ввода.

$fields = $this->Application->getUnitOption($event->Prefix, 'Fields');
$fields['FirstName']['required'] = 1;
$fields['LastName']['required'] = 1;
$this->Application->setUnitOption($event->Prefix, 'Fields', $fields);

Типичные действия таковы -

  1. методом Application::getUnitOption считывается часть конфигурационного массива
  2. делаются необходимые изменения в полученном ассоциативном массиве
  3. методом Application::setUnitOption перезаписывется конфигурация

Ограничения

Особых ограничений нет.

Использует вспомогательные методы класса

Не использует вспомогательные методы класса.