DEPRECATION WARNING

This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.

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

Extension Key: ameos_formidable

Copyright 2000-2002, Jérôme Schneider - Typo3 Ameos , <typo3dev@ameos.com>

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

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

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

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

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.

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

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

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

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

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

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

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

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 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.

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

  • 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

  • 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 <element> peut faire appel à plusieurs types validators différents (STANDARD, DB, ... ); ces validators sont tous à encapsuler dans une balise <validators>

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 <http://www.ameos.com/>`_