LSattr_html : Added getFormVal() method
[ldapsaisie.git] / public_html / includes / class / class.LSattr_html.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  * Base d'un type d'attribut HTML
25  *
26  * @author Benjamin Renard <brenard@easter-eggs.com>
27  */
28 class LSattr_html {
29   
30   var $name;
31   var $config;
32   var $attribute;
33   var $LSformElement_type = false;
34
35   /**         
36    * Constructeur
37    *
38    * Cette methode construit l'objet et définis la configuration.
39    *
40    * @author Benjamin Renard <brenard@easter-eggs.com>
41    *
42    * @param[in] $name string Nom de l'attribut ldap
43    * @param[in] $config array Configuration de l'objet
44    * @param[in] &$attribute LSattribute L'objet LSattribut parent
45    *
46    * @retval boolean Retourne true.
47    */   
48   function LSattr_html ($name,$config,&$attribute) {
49     $this -> name = $name;
50     $this -> config = $config;
51     $this -> attribute = $attribute;
52     return true;
53   }
54   
55   /**
56    * Retourne le label de l'attribut
57    *
58    * Retourne le label de l'attribut ou son nom si aucun label n'est défini
59    * dans la configuration.
60    *
61    * @retval string Le label de l'attribut.
62    */
63   function getLabel() {
64     if ( $this -> config['label'] != '' ) {
65       return __($this -> config['label']);
66     }
67     else {
68       return __($this -> name);
69     }
70   }
71   
72   /**
73    * Ajoute l'attribut au formualaire passer en paramètre
74    *
75    * @param[in] &$form LSform Le formulaire
76    * @param[in] $idForm L'identifiant du formulaire
77    * @param[in] $data Valeur du champs du formulaire
78    *
79    * @retval LSformElement L'element du formulaire ajouté
80    */
81   function addToForm (&$form,$idForm,$data=NULL) {
82     if (!$this -> LSformElement_type) {
83       LSerror :: addErrorCode('LSattr_html_01',$this -> name);
84       return;
85     }
86     $element=$form -> addElement($this -> LSformElement_type, $this -> name, $this -> config['label'],$this -> config, $this);
87     if(!$element) {
88       LSerror :: addErrorCode('LSform_06',$this -> name);
89       return;
90     }
91     if ($data) {
92       $element -> setValue($data);
93     }
94     return $element; 
95   }
96   
97   /**
98    * Effectue les tâches nécéssaires au moment du rafraichissement du formulaire
99    * 
100    * @param[in] $data mixed La valeur de l'attribut
101    * 
102    * @retval mixed La valeur formatée de l'attribut
103    **/
104   function refreshForm($data) {
105     return $data;
106   }
107
108   /**
109    * Return the values to be displayed in the LSform
110    *
111    * @param[in] $data The values of attribute
112    *
113    * @retval array The values to be displayed in the LSform
114    **/
115   function getFormVal($data) {
116     return $this -> attribute -> getDisplayValue();
117   }
118
119 }
120
121 /*
122  * Error Codes
123  */
124 LSerror :: defineError('LSattr_html_01',
125 _("LSattr_html : The method addToForm() of the HTML type of the attribute %{attr} is not defined.")
126 );
127 // 02 : not yet used
128 LSerror :: defineError('LSattr_html_03',
129 _("LSattr_html_%{type} : Multiple data are not supported for this field type.")
130 );
131
132 ?>