Zope3 продукты ng.base.itemsfilter ng.app.mailfeed

ng.base.form

Степан Ломов  2009-08-13 17:53

Продукт ng.base.form - основа для создания компонентов, позволяющих редакторам использующих их сайтов настраивать через веб формы для конечного пользователя.

Продукт

Название:
ng.base.form
Репозиторий
Краткое описание пакета ng.base.form

Краткое описание пакета ng.base.form

Пакет предоставляет возможность разработки продуктов, позволяющих через веб-интерфейс задать поля и умолчания формы и затем вызывать ее, обрабатывая введенные данные специфичным для продукта способом. Таким образом созданы продукты ng.app.registry и ng.app.mailform.

Основная составная часть ng.base.form - контейнер, в котором можно создать поля формы и задать для них ограничения и значения по умолчанию.

Использование продуктов на основе ng.base.form

Любой продукт на основе ng.base.form предоставляет упорядоченный контейнер, в котором создаются элементы, описывающие поля формы. Существуют поля следующих типов:

INT
Поле позволяет ввести целочисленное значение. Настройки поля примерно соответствуют описанию поля ng.schema.Int;
Textline
Поле позволяет ввести одну строку текста. Настройки поля примерно соответствуют описанию поля ng.schema.Textline;
Text
Поле позволяет ввести многострочный текст. Настройки поля примерно соответствуют описанию поля ng.schema.Text;
Regexp
Поле позволяет ввести одну строку текста, проверить ее на соответствие регулярному выражению, и выполнить несколько последовательных операций переписывания введенного значения. Настройки поля подробно описаны в описании поля RegExp.

Самым удобным полем является поле RegExp, позволяющее создать понятную пользователю диагностику и привести введенное значение к некоторому "нормальному" виду.

После того, как настройка продукта на основе ng.base.form выполнена, для этого продукта можно вызвать следующие виды:

System Message: WARNING/2 (<string>, line 37)

Literal block expected; none found.
form.html
Соответствует обычной форме редактирования и может использоваться в стандартном интерфейсе редактирования для решения каких-либо административных задач;
dialog.html
Специальная форма, ориентированная на конечного пользователя. Возможности настройки, предоставляемые продуктом ng.base.form позволяют указать текст, отображемый пользователю после отправки формы, и другие настройки.

Экземпляры объектов, созданных на основе ng.base.form можно регистрировать как утилиты с интерфейсом ng.base.form.interfaces.IFormDialog и вызывать форму для заполнения через пространство имен dialog под указанным именем (если утилита зарегистрирована под именем feedback, то форму можно вызвать как "/++dialog++feedback").

Способ обработки значений, введенных в форму, зависит от реализации продукта, основанного на ng.base.form.

Разработка продуктов на основе ng.base.form

Разработка продукта на основе ng.base.form включает в себя создание контент-класса, унаследованного от ng.base.form.form.Form, и реализация для этого класса интерфейса **** (непосредственно или с использованием адаптера). Пример такого класса:

System Message: WARNING/2 (<string>, line 53); backlink

Inline strong start-string without end-string.
from ng.base.form.formcontainer import Form

class MailForm(Form,Persistent) :
    implements(IFormDialog,I)

    value = u""

    def do(self,d,**kw) :
        self.value = "\n".join( [str(x) + ":" + str(y) for x,y in d.items()])

Этот класс сохраняет введенные в форме значения в виде текста в атрибуте value, который потом может как-то использоваться.

Заключение

На основе продукта ng.base.form удобно создавать средства интерактивной работы конечных пользователей сайтов, позволяющие настраивать их редакторам сайта через веб.

Ссылки на эту статью:

ng.app.mailform

Вложено:

README.txt 2009-08-13 17:55  

...

Новое в ng.base.form 2009-08-13 17:55  
Эпицентр Zope3 Учат тут Нейросети Репозиторий Статистика Редакторам Проекты
Подписаться на RSS Feed Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site noooxml