54
PloneFormGen: Past, Present & Future Steve McMahon

PloneFormGen: Past, Present, Future

Embed Size (px)

DESCRIPTION

Presented at Plone Conference, October 12, 2008

Citation preview

Page 1: PloneFormGen: Past, Present, Future

PloneFormGen: Past, Present & Future

Steve McMahon

Page 2: PloneFormGen: Past, Present, Future

<past>

Page 3: PloneFormGen: Past, Present, Future

Formulator

Infrae ! Download ! Formulator

Formulator

Formulator is an extensible framework that eases the creation and validation of web forms.

HISTORY for the latest release.

Important links:

Subscribe to the Formulator mailing list, for general discussions and questions on Formulator usage.

If you're interested in the further development of Formulator, subscribe to the Formulator-dev list

Formulator SourceForge project page

Formulator SVN web

Check out Formulator from SVN like this:

svn co https://infrae.com/svn/Formulator/trunk Formulator

Important hint:

Don't ever use field_<fieldname>; anything prefixed with field_ in REQUEST is a Formulator implementation detail.

Instead, don't forget to validate the form, for instance using validate_all_to_request(). See the Formulator API help

and Howto for more information. Forgetting to validate the form is the most frequently made Formulator mistake that

I've encountered.

Documentation:

Formulator HOWTO

Very nice slides about Formulator by Jens Quade (in German)

A Zopelabs recipe by Scott Burton on using Formulator with Zope Page Templates

Howto on using Formulator with Zope Page Templates by Beno

Some less important links:

Formulator on Freshmeat

Formulator project page on Advogato

older Formulator page on zope.org

License: New BSD

Release version Release date Release files

Formulator 1.11.3 21 may 2007 15:05 Formulator-1.11.3.tgz

Formulator 1.11.2 12 jun 2006 16:35 Formulator-1.11.2.tgz

Formulator 1.11.1 02 feb 2006 18:21 Formulator-1.11.1.tgz

Formulator 1.11 23 jan 2006 15:54 Formulator-1.11.tgz

Formulator 1.10.1 16 dec 2005 16:21 Formulator-1.10.1.tar.gz

Formulator 1.10 09 sep 2005 16:40 Formulator-1.10.tgz

Formulator 1.9.0 25 may 2005 21:05 Formulator-1.9.0.tgz

Formulator 1.8.0 21 jan 2005 15:32 Formulator-1.8.0.tgz

Formulator 1.7.0 08 sep 2004 18:20 Formulator-1.7.0.tgz

Formulator 1.6.2 01 sep 2004 10:47 Formulator-1.6.2.tgz

Public Domain

Page 4: PloneFormGen: Past, Present, Future

Formulator

Page 5: PloneFormGen: Past, Present, Future
Page 6: PloneFormGen: Past, Present, Future
Page 7: PloneFormGen: Past, Present, Future

Formulator Overrides

Page 8: PloneFormGen: Past, Present, Future

FormulatorRendering

Page 9: PloneFormGen: Past, Present, Future

PloneFormMailerA Formulator Wrapper for Plone

Jens KleinReinout van Rees

Page 10: PloneFormGen: Past, Present, Future

PloneFormMailerA Formulator Wrapper for Plone

Jens KleinReinout van Rees

CMFFormulator Rendering & Validation

Page 11: PloneFormGen: Past, Present, Future

PloneFormMailerA Formulator Wrapper for Plone

Jens KleinReinout van Rees

CMFFormulator Rendering & Validation

Sample Form Content

Page 12: PloneFormGen: Past, Present, Future

PloneFormMailerA Formulator Wrapper for Plone

Jens KleinReinout van Rees

CMFFormulator Rendering & Validation

Sample Form Content

Excellent Mail Functionality Built-In

Page 13: PloneFormGen: Past, Present, Future

PloneFormGen Concept

Page 14: PloneFormGen: Past, Present, Future

PloneFormGen Concept

Archetypes already contains a form generator / validator.

Page 15: PloneFormGen: Past, Present, Future

PloneFormGen Concept

Archetypes already contains a form generator / validator.

Multiple Kinds of actions needed:

MailingSavingScripting

Page 16: PloneFormGen: Past, Present, Future

PloneFormGen Concept

Archetypes already contains a form generator / validator.

Multiple Kinds of actions needed:

MailingSavingScripting

Simple — better easy than complete.

Page 17: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Fields

Page 18: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Fields

Fields types are all individual content types.

Page 19: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Fields

Fields types are all individual content types.

Each field object contains an embedded Archetypes field.

Page 20: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Fields

Fields types are all individual content types.

Each field object contains an embedded Archetypes field.

Each field object knows how to render and validate itself.

Page 21: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Fields

Fields types are all individual content types.

Each field object contains an embedded Archetypes field.

Each field object knows how to render and validate itself.

The form folder contains the fields; they are rendered in order.

Page 22: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Actions

Page 23: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Actions

Action adapters are also content types.

Page 24: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Actions

Action adapters are also content types.

They are not Z3 adapters!

Page 25: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Actions

Action adapters are also content types.

They are not Z3 adapters!

Each has an OnSuccess method.

Page 26: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Actions

Action adapters are also content types.

They are not Z3 adapters!

Each has an OnSuccess method.

Actions are executed in order.

Page 27: PloneFormGen: Past, Present, Future

PloneFormGen Architecture: Actions

Action adapters are also content types.

They are not Z3 adapters!

Each has an OnSuccess method.

Actions are executed in order.

Built-ins include mailer, saver, script.

Page 28: PloneFormGen: Past, Present, Future

</past><present>

Page 29: PloneFormGen: Past, Present, Future

PloneFormGen Extensions

Page 30: PloneFormGen: Past, Present, Future

PloneFormGen Extensions

SalesForce adapter

Page 31: PloneFormGen: Past, Present, Future

PloneFormGen Extensions

SalesForce adapter

CAPTCHAs

Page 32: PloneFormGen: Past, Present, Future

PloneFormGen Extensions

SalesForce adapter

CAPTCHAs

GetPaid

Page 33: PloneFormGen: Past, Present, Future

Simple PFG Tricks

Page 34: PloneFormGen: Past, Present, Future

Simple PFG Tricks

Ad-hoc validators / defaults.

Page 35: PloneFormGen: Past, Present, Future

Simple PFG Tricks

Ad-hoc validators / defaults.

Multiple controlled actions

Page 36: PloneFormGen: Past, Present, Future

Simple PFG Tricks

Ad-hoc validators / defaults.

Multiple controlled actions

Chained forms

Page 37: PloneFormGen: Past, Present, Future

Simple PFG Tricks

Ad-hoc validators / defaults.

Multiple controlled actions

Chained forms

Turning fields on/off

Page 38: PloneFormGen: Past, Present, Future

Simple PFG Tricks

Ad-hoc validators / defaults.

Multiple controlled actions

Chained forms

Turning fields on/off

SQL CRU(D)

Page 39: PloneFormGen: Past, Present, Future

Amazing PFG Tricks

Page 40: PloneFormGen: Past, Present, Future

Amazing PFG Tricks

JavaScript/CSS Injection

Page 41: PloneFormGen: Past, Present, Future

Amazing PFG Tricks

JavaScript/CSS Injection

Highly customized thanks pages

Page 42: PloneFormGen: Past, Present, Future

Amazing PFG Tricks

JavaScript/CSS Injection

Highly customized thanks pages

Posting to outside

Page 43: PloneFormGen: Past, Present, Future

Amazing PFG Tricks

JavaScript/CSS Injection

Highly customized thanks pages

Posting to outside

Creating content

Page 44: PloneFormGen: Past, Present, Future

PFG Gotchas:

Page 45: PloneFormGen: Past, Present, Future

PFG Gotchas:

Incredibly inefficient due to Plone 2.1 architecture

Page 46: PloneFormGen: Past, Present, Future

PFG Gotchas:

Incredibly inefficient due to Plone 2.1 architecture

Not interactive enough

Page 47: PloneFormGen: Past, Present, Future

</present><future>

Page 48: PloneFormGen: Past, Present, Future

Zope 3 Events

Page 49: PloneFormGen: Past, Present, Future

Zope 3 Schema

Page 50: PloneFormGen: Past, Present, Future

z3c.form

Page 51: PloneFormGen: Past, Present, Future

KSS: inline validation form editing

Page 52: PloneFormGen: Past, Present, Future

Smooth Migration

Stay Simple

Page 53: PloneFormGen: Past, Present, Future

Dexterity

Page 54: PloneFormGen: Past, Present, Future

<!-- /future -->