Инструменты пользователя

Инструменты сайта


limb3_2007_3:ru:packages:web_app:lmb_form_command

lmbFormCommand

Общее описание

lmbFormCommand используется в качестве базового класса для команд, которые работают с формами. lmbFormCommand наследуется от lmbActionCommand.

lmbFormCommand в конструкторе принимает:

  • название шаблона, который содержит форму,
  • название (идентификатор) формы,
  • валидатор, который используется для проверки данных, пришедших с формы (см. Валидация)
$validator = new NewslineValidator();
$template_path = 'news/create.html';
$form = new lmbFormCommand($template_path, 'newsline_form', $validator);

lmbFormCommand содержит методы, которые позволяют получить большой спектр информации о форме:

  • isSubmitted() - была ли форма отправлена или нет. Алиас для $this→request→hasPost()
  • isValid() - верны ли данные, которые пришли с формой. Алиас для $this→error_list→isValid()
  • getErrorList() - возвращает объект ErrorList, который содержит список ошибок валидации, если они есть.
  • setFormDatasource($datasource) - передает в активный компонент формы в шаблоне объект $datasource в качестве источника данных.

События lmbFormCommand

Класс lmbFormCommand реализован с применением паттернам Observer. Он может генерировать и принимать подписку на следующие события ( в скобках указаны методы для подписки на события):

  • onBefore - при активации команды. Генерируется в любом случае.
  • onShow - когда форма была отображена в первый раз (то есть не была отправлена).
  • onBeforeValidate - когда форма была отправлена, генерируется перед валидацией данных.
  • onValid - когда форма была отправлена и все данные верны.
  • onNotValid - когда форма была отправлена и данные неверны.
  • onAfterValidate - когда форма была отправлена, генерируется после валидации вне зависимости от результатов валидации.
  • onAfter - в конце работы формы. Генерируется в любом случае.

Например, если форма была отправлена и все данные верны, то последовательно будут активизированы следующие подписчики: onBefore, onBeforeValidate, onValid, onAfterValidate, onAfter. Если формы была отображена в первый раз - то onBefore, onShow, onAfter.

Для подписки на эти события используются соответствующие методы:

  • registerOnBeforeCallback()
  • registerOnShowCallback()
  • registerOnBeforeValidateCallback()
  • registerOnValidCallback()
  • registerOnNotValidCallback()
  • registerOnAfterValidateCallback()
  • registerOnAfterCallback()

Расширение lmbFormCommand

lmbFormCommand содержит набор методов, которые дочерние классы могут расширяеть:

  • _onBefore()
  • _onShow()
  • _onBeforeValidate()
  • _onValid()
  • _onError()
  • _onAfterValidate()
  • _onAfter()

Эти методы вызываются до момента оповещения случателей на соответствующие события.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  ____    __  ___     __ __  __   ___ 
 / __ \  /  |/  / __ / / \ \/ /  / _ \
/ /_/ / / /|_/ / / // /   \  /  / // /
\___\_\/_/  /_/  \___/    /_/  /____/
 
limb3_2007_3/ru/packages/web_app/lmb_form_command.txt · Последнее изменение: 2010/11/10 10:02 — 127.0.0.1