Визуальные элемены - виджеты yii в системе управления, предоставляющие возможность пользователю-редактору изменять данные.
Другими словами, это элементы формы, настроенные заранее под определенные типы свойств, такие как дата, строка, загрузка файлов и другие.
По своей сути свойства объекта являются визуальными элементами. И у каждого свойства объекта есть специальное поле для настройки, которое называется "Виджет".
В это поле можно прописать алиас к виджету, которые переопределит визуальный элемент по умолчанию. Т.о. можно менять поведение визуальных элементов, например, прописать для визуального элемента Текстовый редактор свой собственный редактор вместо редактора по умолчанию TinyMce.
В качестве примера работы с визуальными элементами рассмотрим переопределение строкового визуального элемента:
class MyTextFieldWidget extends TextFieldWidget { public function onPostForm(PostFormEvent $event) { $this->model->attachEventHandler('onAfterSave', array($this, 'processModel')); } public function processModel(CEvent $event) { $this->model->{$this->attributeName} = mb_strtolower($this->model->{$this->attributeName}); } }
В данном примере мы переопределили метод onPostForm прикрепившись в нем на событие модели onAfterSave. И далее в событии модели переводим значение элемента в нижний регистр.
Также можно создать свой собственный визуальный элемент с нуля, указав в качестве типа данных "Абстрактный". В этом случае виджет должен наследоваться от класса VisualElementWidget
.
Классы виджетов для системы управления следует располагать в директории приложения в папке backend.widgets.className.ClassNameWidget, либо при наличии модуля в директории модуля.
Комментарии (0)