Визуальные элемены - виджеты 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, либо при наличии модуля в директории модуля.

15 июля 2013

Автор: Михаил Абрамов

Комментарии (0)

Добавить комментарий