.. You may want to use the usual include line. Uncomment and adjust the path.
.. include:: ../Includes.txt
===============
EXT: FORMidable
===============
:Author:
Kasper Skårhøj
:Created:
2002-11-01T00:32:00
:Changed by:
Schneider Jérôme
:Changed:
2005-12-23T13:59:41
:Author:
Jérôme Schneider
:Email:
typo3dev@ameos.com
:Info 3:
:Info 4:
.. _EXT-FORMidable:
EXT: FORMidable
===============
Extension Key: **ameos\_formidable**
Copyright 2000-2002, Jérôme Schneider - `Typo3 Ameos
`_ ,
This document is published under the Open Content License
available from http://www.opencontent.org/opl.shtml
The content of this document is related to TYPO3
\- a GNU/GPL CMS/Framework available from www.typo3.com
.. _Table-of-Contents:
Table of Contents
-----------------
**EXT: FORMidable 1**
**Introduction 1**
Qu'est-ce que ca fait ? 1
**Vision macroscopique de l'architecture de FORMidable 2**
Comment FORMidable s'intègre-t'il dans mon extension ? 2
**Vision microscopique de FORMidable 3**
L'organisation interne 3
Détail des composants logiciels de FORMidable 3
**Installation 5**
FORMidable et ses composants de base 5
L'extension de démonstration de FORMidable 5
**Développer mes propres renderlets, validators, datahandlers, ... 6**
**To do list 7**
**Changelog 8**
.. _Introduction:
Introduction
------------
.. _Qu-est-ce-que-ca-fait:
Qu'est-ce que ca fait ?
^^^^^^^^^^^^^^^^^^^^^^^
FORMidable est un outil de création et de gestion de formulaires HTML
pour le Front End de Typo3, développé par `Typo3 Ameos
`_ . Il s'adresse aux développeurs, et a pour
but d'accélérer, améliorer et flexibiliser au maximum la réalisation,
le déploiement et la gestion des formulaires HTML dans les
développements Front End de Typo3
.. _Vision-macroscopique-de-l-architecture-de-FORMidable:
Vision macroscopique de l'architecture de FORMidable
----------------------------------------------------
.. _Comment-FORMidable-s-intgre-t-il-dans-mon-extension:
Comment FORMidable s'intègre-t'il dans mon extension ?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FORMidable s'autogère complètement. Il suffit que l'extension faisant
appel à ses services lui fournisse une configuration XML correctement
formatée pour le bon fonctionnement du système.
|img-1|
.. _Vision-microscopique-de-FORMidable:
Vision microscopique de FORMidable
----------------------------------
.. _L-organisation-interne:
L'organisation interne
^^^^^^^^^^^^^^^^^^^^^^
FORMidable est un jeu d'extensions Typo3 s'appuyant les unes sur les
autres dans le but de gérer tous les aspects d'un formulaire HTML
complexe, de son affichage, à sa mise en page, son design, ses champs,
les validations, les messages d'erreur de saisie, le traitement des
données saisies, l'édition des données enregistrées, ...
Il a été concu avec pour objectif évolutivité et flexibilité
maximales. Ainsi, sa structure interne suit les règles de la
programmation orientée objet.
.. _Dtail-des-composants-logiciels-de-FORMidable:
Détail des composants logiciels de FORMidable
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FORMidable est composé de 6 types d'objets interconnectés, gérant
chacun un aspect du traitement.
Les objets de type renderlet
Les objets de type validator
Les objets de type datahandler
Les objets de type renderer
Les objets de type actionlet
L'objet de type FORMidable
.. _Les-Renderlets:
Les Renderlets
""""""""""""""
C'est la représentation pour FORMidable de l'élément de formulaire
affichable de base. Ils se chargent du rendu des champs, et des
spécificités relatives à la gestion de chacun ( ex. : textbox,
listbox, ... ).
Ils héritent TOUS de la classe formidable\_mainrenderlet, définie dans
EXT:ameos\_formidable/pi1/class.mainrenderlet.php.
.. _Les-Validators:
Les Validators
""""""""""""""
Ils valident les données saisies dans chaque champ et génèrent des
messages d'erreur si besoin. Ils ont le pouvoir de bloquer l'appel au
processus final du DataHandler ( ex. : l'enregistrement des données en
base ) tant que les données ne sont pas validées.
Ils héritent TOUS de la classe formidable\_mainvalidator, définie dans
EXT:ameos\_formidable/pi1/class.mainvalidator.php.
.. _Les-DataHandlers:
Les DataHandlers
""""""""""""""""
Ils se chargent de manipuler les données saisies dans le formulaire,
et de les distribuer aux autres types d'objets à la demande. Ils
effectuent une action sur les données une fois que les validators ont
donné leur feu vert ( ex. : enregistrement en DB MYSQL, dans un
fichier XML, ... )
Ils héritent TOUS de la classe formidable\_maindatahandler, définie
dans EXT:ameos\_formidable/pi1/class.maindatahandler.php.
.. _Les-Renderers:
Les Renderers
"""""""""""""
Ils récupèrent tous les flux HTML générés par les différents objets (
les champs renderlets, les messages d'erreur des validators, les
notifications de traitement envoyées par les datahandlers, ... ) et
les mettent en page pour un affichage cohérent à l'écran ( ex. :
renderer liste avec retour à la ligne, renderer template, ... )
Ils héritent TOUS de la classe formidable\_mainrenderer, définie dans
EXT:ameos\_formidable/pi1/class.mainrenderer.php.
.. _Les-Actionlets:
Les Actionlets
""""""""""""""
Ils interviennent en toute fin du traitement des données du
formulaires, après l'insertion et/ou la mise à jour des données.
Il est possible d'en définir toute une collection, qui s'exécuteront
séquentiellement en fin de traitement pour effectuer des tâches
diverses, comme envoyer des mails, ...
.. _L-objet-de-type-FORMidable:
L'objet de type FORMidable
""""""""""""""""""""""""""
C'est le chef d'orchestre des autres objets ; c'est lui qui régie et
contrôle le processus de gestion du formulaire, et stocke les données
partagées par tous les types d'objet, notament la configuration du
formulaire issue du XML fourni par l'extension utilisant FORMidable.
Il embarque une collection d'objets de type renderlet, validator,
datahandler, renderer et actionlets ; ces objets sont tous
opérationnels et compatibles entre eux, car ils respectent les
comportements de base de chaque objet de leur type, grace au mécanisme
d'héritage décrit plus loin.
|img-2|
.. _Installation:
Installation
------------
.. _FORMidable-et-ses-composants-de-base:
FORMidable et ses composants de base
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
( Dans le futur, FORMidable utilisera le TER2 pour permettre le
téléchargement de FORMidable et de toutes ses dépendances en une seule
opération )
Connectez vous au TER Typo3.
Téléchargez et installez les extensions ameos\_formidable,
api\_macmade, cc\_debug et rlmp\_dateselectlib.
Déconnectez vous de votre session du back-end Typo3 et reconnectez-
vous.
Une nouvelle entrée de menu 'FORMidable' est apparue dans la section
'Tools' ( Outils ).
Cliquez dessus.
|img-3|
Dans la page de gestion FORMidable, cliquez sur 'Install Now !!'.
Si tout se passe correctement, un log vous informera que FORMidable
est installé et opérationnel.
.. _L-extension-de-dmonstration-de-FORMidable:
L'extension de démonstration de FORMidable
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Connectez vous au TER Typo3.
Téléchargez et Installez l'extension ameos\_demo\_formidable.
Placez cette extension ( Front-end plugin ) sur une page de votre site
pour tester le fonctionnement de FORMidable et pour avoir un exemple
simple d'implémentation d'un formulaire complexe avec FORMidable.
.. _Dvelopper-mes-propres-renderlets-validators-datahandlers:
Développer mes propres renderlets, validators, datahandlers, ...
----------------------------------------------------------------
FORMidable est concu pour permettre à un développeur de créer
rapidement et facilement ses propres objets utilisables dans
FORMidable.
Ex. : de nouveaux renderlets, des datahandlers qui envoient des mails
au lieu d'enregistrer dans la base, ...
Consultez la documentation de l'API disponible dans l'interface du
Backend Module FORMidable ( section Tools ) pour plus de détails.
[...] Coming soon.
.. _To-do-list:
To do list
----------
- Compléter cette documentation
- Réaliser la documentation des renderlets standards, validators
standards, datahandlers standards, renderers standards
- Exploiter les fonctionnalités du TER2 pour télécharger les multiples
extensions de FORMidables en une seule opération
.. _Changelog:
Changelog
---------
- Développement du concept d'actionlets, qui permettent d'effectuer des
opérations spéciales ( envoi de mails, ... ) en fin de traitement
- Implémentation d'un validator DB qui teste des conditions liées aux
données d'une base ( unicité, ... )
Modification du principe du validator : un peut faire appel
à plusieurs types validators différents (STANDARD, DB, ... ); ces
validators sont tous à encapsuler dans une balise
Gestion de tous les évènements standards sur les éléments de
formulaire HTML dans les renderlets ( onclick, onkeypress, ... ) de
manière transparente
Amélioration du module d'installation et de management dans le Backend
Typo3
Création / amélioration de nombreux types de renderlets ( password,
file, date, ... )
Gestion unifiée des objets et méthodes de callback ; callback
disponible sur n'importe quelle propriété de n'importe quel élément
pour une customization totale ( si besoin ) des traitements de
formidable ( voir les XML samples pour chaque element dans la section
INFORMATIONS du backend module de FORMidable pour plus d'information )
Les datahandlers utilisent désormais 2 fonctions standards pour
communiquer avec les renderlets : \_fromDataHandlerToRenderlet() et
\_fromRenderletToDataHandler()
Amélioration de la qualité des infos du debug (si le debug est activé
dans le XML de conf du formulaire)
Ajout d'une pile des appels dans les debugs de FORMidable
Suppression de la dépendance vers l'extension cc\_debug
Amélioration de la cohérence de la structure du code
|img-4| EXT: FORMidable - 8
**`Typo3 Ameos `_**
.. ######CUTTER_MARK_IMAGES######
.. |img-1| image:: img-1.png
.. :align: left
.. :border: 0
.. :height: 277
.. :id: Image1
.. :name: Image1
.. :width: 599
.. |img-2| image:: img-2.png
.. :align: left
.. :border: 0
.. :height: 546
.. :id: Image2
.. :name: Image2
.. :width: 569
.. |img-3| image:: img-3.png
.. :align: left
.. :border: 0
.. :height: 153
.. :id: Image3
.. :name: Image3
.. :width: 122
.. |img-4| image:: img-4.png
.. :align: left
.. :border: 0
.. :height: 32
.. :id: Graphic1
.. :name: Graphic1
.. :width: 102