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