| << Paramétrage avant utilisation |
Sommaire |
Dans cette section, vous allez pouvoir découvrir les principes de fonctionnement de QuickForm afin de pouvoir mieux approcher et faciliter son utilisation. Un passage par cet étape est indispensable car un grand nombre de réponses se trouvent ici, et notamment en ce qui concerne la personnalisation du code de QuickForm.
Qu’est ce que Quickform ? QuickForm à la base est un simple générateur de formulaires, toutefois plusieurs différences par rapport à ses concurrents lui confèrent un statut un peu différent pour ceux qui en ont le besoin.
QuickForm est architecturé sur 4 éléments de base indissociables et qui s’auto-complètes :
- Les formulaires
- Le traitement des résultats
- Les groupes d’utilisateurs
- Les catégories
Les formulaires
QuickForm intègre une solution de saisie des données simple et vous permet de définir et personnaliser facilement vos formulaires.
- Génération de formulaires simples ou complexe
- Gestion des tables
- Gestion des champs de la table
- Contrôle de la publication manuellement
- Contrôle de la publication automatiquement (par date et horaires de début/fin)
- Possibilité d’envoi de mail lors de la soumission
- Stockage des informations en base de donnée
- Gestion de la mise en page du formulaire
- Possibilité de créer des liens entres tables
- Vérification des données selon paramétrage avant enregistrement
- Redirection manuelle ou automatique possible
Le traitement des résultats
A travers une interface similaire à celle de génération des formulaires, il vous est possible, en quelques clics de créer des documents mis en forme, prêt à l'emploi, à partir des données saisies dans un formulaire, ou encore un tableau dynamique.
- Personnalisation des données à afficher
- Création de document mis en forme à partir des données saisies
- Edition possible des données (si paramétré)
- Suppression possible des données (si paramétré)
- Duplication possible des données (si paramétré)
- Export possible des données au format CSV/Excel
- Génération de PDF à partir de la mise en page
Les droits d’accès
Tout au long de la génération des formulaires et des traitements des résultats, QuickForm vous propose de définir des droits d’accès, individuels ou collectifs pour chacun des éléments créés (formulaires, résultats, champs). Ces paramètres, simples à définir, juste en sélectionnant les groupes appropriés, sont ensuite automatiquement utilisés et traités par QuickForm lors des différentes générations.
- Création de groupes personnalisés
- Utilisation de groupes pré définis
- Possibilité de créer des groupes de groupes
Les catégories
Vous permet de regrouper les formulaires, ou traitement de résultats en fonction de catégories pré établies.
La génération d’applications
A travers des champs dédiés et l’utilisation de plugins il vous est possible de personnaliser vos formulaires et ainsi d’en faire de véritables applications à part entière.
- Création de plugins spécialement adaptés pour QuickForm
- Ajout de javascript facilement
- Ajout de php pour la génération de liste, des tests avant enregistrement, avant génération du formulaire,…
Un des aspects important de QuickForm est également l’utilisation des variables QuickForm. Les variables sont en réalité des sortes de Tags permettant d’afficher les données saisies. Il faut tout d'abord différencier 3 types de variables :Les globales
Ce sont des variables générales et qui servent à récupérer des informations sur l'utilisateur connecté, ou encore, la date courante au format de votre choix.
Les variables de valeurs
Elles vous permettent d'afficher les valeurs enregistrées ou prochainement enregistrées. Ces variables là ont toutes le même schéma d'utilisation. C'est à dire :
Type Extension Exemple valeur value {nomduchamp:value} lien externe e-link {nomduchamp:e-link} lien interne i-link {nomduchamp:i-link} lien vers un fichier chargé file {nomduchamp:file} nom d'un fichier chargé filename {nomduchamp:filename} poids d'un fichier charge en ko file:ko {nomduchamp:file:ko} poids d'un fichier charge en mo file:mo {nomduchamp:file:mo} liste de valeurs montante listasc {nomduchamp:listasc} liste de valeurs descendante listdesc {nomduchamp:listdesc} tableau de valeurs montant arrayasc {nomduchamp:arrayasc} tableau de valeurs descendant arraydesc {nomduchamp:arraydesc} valeur postée post {nomduchamp:post} Les variables de liaisons
Sur le même schéma que les variables de valeur, vous pouvez définir les variables de la table en cours, mais également celles de tables liées (si vous avez utilisé des champs dont le pré remplissage fait référence à une table, un id, et une valeur), pour afficher les valeurs d'une table liée il faut remplacer dans le tableau précédent nomduchamp par le chemin de liaison.
Exemple n°1 :
Table 1 (en cours) liée à la Table 2 par un champ liste nommé liste_T1 : {liste_T1:nom_T2:value} Exemple n°2 :
Table 1 (en cours) liée à la Table 2 par un champ liste nommé liste_T1. Tandis que la Table 2 est liée par un champ liste_T2 à la Table 3 : {liste_T1:liste_T2:prenom_T3:value}
La personnalisation du code est également un des aspects important de QuickForm, elle confère ainsi une souplesse de création tant pour vos formulaires. Il vous est donc proposé, lors de la création ou de l'édition d'un formulaire, de saisir du code dans les différentes sections suivantes :Définition de tag personnalisés et scripts avant affichage du formulaire
Vous permet de définir du code PHP qui sera exécuté avant la génération du formulaire. Il vous est donc possible d‘ajouter, par exemple, vos propres tags, ou encore des tests afin de limiter les enregistrements à un certain nombre de saisies, ...
La liste des variables PHP utilisable est :
$this->globals[‘nomdutag’] Array Définition des variables globales $this->infos Array Paramétrages du formulaires $this->acl Array Tableau des groupes auxquels appartient l’utilisateur $this->loadvalues Array Tableau des valeurs à éditer $this->post Array Tableau des valeurs postées $this->replace[‘nomdutag’] Array Tableau des variables standard Ajouter des fonctions javascript
Vous permet en fait d'ajouter du code javascript. Celui ci sera placé directement à la suite de la mise en page de votre formulaire. Vous ne devez insérer que des fonctions javascript, les tags d'ouverture et de fermeture seront ajoutés automatiquement.
Script à exécuter avant test de soumission
Cet emplacement vous permet d’ajouter du code PHP permettant d’assurer des vérifications supplémentaires à celles déjà déterminées.
Exemple : if(isset($this->post['weblinks_url'])) { if(!ereg("^[a-zA-Z0-9\-\.]+\.(com|org|net||edu)$",strtolower($this->post['weblinks_url']))) { array_push($this->error,'weblinks_url'); } }Ce code vous permet de vérifier que la donnée saisie dans le champ weblinks_url, est bien une adresse URL, si elle ne l’est pas, on ajoute au tableau des erreurs le nom du champ. Ainsi au s’il y a des erreurs, la page se recharge et affiche un message d’erreur pour ’weblinks_url’.
Script à exécuter avant enregistrement des données
Vous permet d’ajouter du code PHP qui sera exécuté avant génération enregistrement des donnés, cela vous permet entre autre d’adapter et de personnaliser les données avant enregistrement dans la base.
Exemple :
$this->post['masqué'] = ((int)$this->post['nombre_de_joueur'])+1 ; return $this->post ;Ce code enregistrera dans le champ maqué, le nombre_de_joueur incrémenté de 1.
Le plugin est en quelques sorte l'arme suprême de QuickForm car il vous permet d'insérer des portions de code complète, sans avoir à modifier le code source de QuickForm, et ce afin de pouvoir étendre les possibilités du composant principal.
Installer un plugin
L'installation d'un plugin quickform se fait comme n'importe quel autre plugin, il vous suffit d'aller dans l'installateur de joomla! et de faire comme vous le feriez pour n'importe quel autre élément. Une fois installé, afin de pouvoir bénéficier des fonctionnalités de celui ci, il vous le publier, et éventuellement suivant comme vous l'avez conçu, le paramétrer. Toujours comme vous le feriez pour n'importe quel autre plugin.
Utiliser un plugin
Pour utiliser un plugin, cela n'est pas très difficile, mais vous avez en réalité deux choix qui s'offre à vous.
- Le plugin est à exécuter après l'enregistrement des données
- Le plugin est à exécuter n'importe ou ailleurs
Dans le premier cas de figure, la démarche est simple, les plugins installés et publiés apparaissent dans une liste lors de la création/édition d'un formulaire ou d'une page de traitement des résultats. il vous suffit donc de choisir, un ou plusieurs (en maintenant la touche ctrl de votre clavier) plugin(s).
Dans le second cas de figure, ils vous est possible d'appeler, depuis les zones de codes PHP personnalisées, un ou plusieurs plugins en saisissant ce code :
$dispatcher =& JDispatcher::getInstance(); JPluginHelper::importPlugin('quickform'); $results = $dispatcher->trigger('onQFnomdufichierduplugin1',array(deparametres)); $results = $dispatcher->trigger('onQFnomdufichierduplugin2',array(deparametres));Concevoir un plugin
La conception d'un plugin pour QuickForm correspond à quelques critères bien précis qu'il faut impérativement respecter. Vous trouverez ci-dessous, un code source type pour vos futures créations :
Fichier monpremierpluginquickform.xml (pour installation et paramétrage)<?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="plugin" group="quickform"> <name>QuickForm - Mon premier plugin</name> <author>QuickForm! Project</author> <creationDate>November 2005</creationDate> <copyright>Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.</copyright> <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>1.5</version> <description>DESCCONTENTMONPREMIERPLUGIN</description> <files> <filename plugin="monpremierpluginquickform">monpremierpluginquickform.php</filename> </files> </install>Fichier monpremierpluginquickform.php (pour exécution du code dans un formulaire)
<?php /** * @version $Id: monpremierpluginquickform.php 10906 2008-09-05 07:27:34Z willebil $ * @package Joomla * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); $mainframe->registerEvent( 'onQFmonpremierpluginquickform', 'plgquickformmonpremierpluginquickform' ); /** * redirect plugin */ function plgquickformmonpremierpluginquickform( &$acl, &$infos, &$id_edition, &$id_enregistrement,&$remplacement) { global $mainframe; $mainframe->redirect('index.php'); }ou Fichier monpremierpluginquickform.php (pour exécution du code dans une page de traitement)
<?php /** * @version $Id: monpremierpluginquickform.php 10906 2008-09-05 07:27:34Z willebil $ * @package Joomla * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); $mainframe->registerEvent( 'onQFmonpremierpluginquickform', 'plgquickformmonpremierpluginquickform' ); /** * redirect plugin */ function plgquickformmonpremierpluginquickform( &$acl, &$list_data ,&$infos, &$id_enregistrement, &$html) { $valeur = 'ma valeur'; $html = str_replace('{montageperso}',$valeur,$html); return $html; }
| Gestion des formulaires >> |