Initial import
[ldapsaisie.git] / trunk / includes / class / class.LSform.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23
24 /**
25  * Formulaire pour LdapSaisie
26  *
27  * Cette classe gère les formulaires en se basant sur PEAR::HTML_QuickForm
28  *
29  * @author Benjamin Renard <brenard@easter-eggs.com>
30  */
31
32 class LSform {
33   
34   var $quickform;
35   var $idForm;
36   var $can_validate=true;
37   
38   /**
39    * Constructeur
40    *
41    * Cette methode construit l'objet et définis la configuration.
42    * Elle lance la construction de l'objet HTML_QuickForm et définis les élements
43    * de base à communiquer de page en page par le formulaire.
44    *
45    * @author Benjamin Renard <brenard@easter-eggs.com>
46    *
47    * @param[in] $idForm [<b>required</b>] string L'identifiant du formulaire
48    * @param[in] $submit string La valeur du bouton submit
49    *
50    * @retval void
51    */   
52   function LSform ($idForm,$submit="Envoyer"){
53     $this -> idForm = $idForm;
54     $this -> submit = $submit;
55     $this -> quickform = new HTML_QuickForm($idForm);
56     $this -> quickform -> addElement('hidden',"LSdata['idForm']",$idForm);
57   }
58   
59   /**
60    * Affiche le formualaire
61    *
62    * @author Benjamin Renard <brenard@easter-eggs.com>
63    *
64    * @retval void
65    */   
66   function display(){
67     if($this -> can_validate) {
68       $this -> quickform -> addElement('submit', null, $this -> submit);
69     }
70     $this -> quickform -> display();
71   }
72   
73   /**
74    * Défini l'erreur sur un champ
75    *
76    * @author Benjamin Renard <brenard@easter-eggs.com>
77    *
78    * @param[in] $attr [<b>required</b>] string Le nom du champ
79    * @param[in] $msg Le format du message d'erreur à afficher (pouvant comporter
80    *                 des valeurs %{[n'importe quoi]} qui seront remplacé par le label
81    *                 du champs concerné.
82    *
83    * @retval void
84    */   
85   function setElementError($attr,$msg=NULL) {
86     //~ print 'erreur<br />';
87     if($msg!='') {
88       $msg_error=getFData($msg,$attr->getLabel());
89     }
90     else {
91       $msg_error="Les données pour l'attribut ".$attr->getLabel()." ne sont pas valides.";
92     }
93     $this -> quickform -> setElementError($attr->name,$msg_error);
94   }
95   
96   /**
97    * Verifie si le formulaire a été validé et que les données sont valides.
98    *
99    * @author Benjamin Renard <brenard@easter-eggs.com>
100    *
101    * @retval boolean true si le formulaire a été validé et que les données ont été validées, false sinon
102    */   
103   function validate(){
104     return (($this -> can_validate)&&($this -> quickform -> validate()));
105   }
106   
107 }
108
109 ?>