Subversion Repositories Applications.bazar

Rev

Rev 80 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5 florian 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
82 alexandre_ 22
// CVS : $Id: bazar.fonct.formulaire.php,v 1.16 2006-01-24 14:11:44 alexandre_tb Exp $
5 florian 23
/**
45 florian 24
* Formulaire
5 florian 25
*
26
* Les fonctions de mise en page des formulaire
27
*
28
*@package bazar
29
//Auteur original :
30
*@author        Florian SCHMITT <florian@ecole-et-nature.org>
31
//Autres auteurs :
32
*@author        Aleandre GRANIER <alexandre@tela-botanica.org>
33
*@copyright     Tela-Botanica 2000-2004
82 alexandre_ 34
*@version       $Revision: 1.16 $ $Date: 2006-01-24 14:11:44 $
5 florian 35
// +------------------------------------------------------------------------------------------------------+
36
*/
37
 
45 florian 38
require_once 'bazar.fonct.formulaire.controles.php';
39
 
5 florian 40
//-------------------FONCTIONS DE MISE EN PAGE DES FORMULAIRES
41
 
42
/** liste() - Ajoute un élément de type liste au formulaire
43
*
44
* @param    mixed   L'objet QuickForm du formulaire
68 florian 45
* @param    int     identifiant de la liste sur bazar_liste
5 florian 46
* @param    string  label à afficher dans le formulaire
47
* @param    string  première restriction de la taille des champs du formulaire
48
* @param    string  deuxième restriction de la taille des champs du formulaire
49
* @param    string  valeur par défaut du formulaire
50
* @param    string  table source pour les valeurs de la liste
51
* @param    string  ce champs est il obligatoire? (required)
52
* @return   void
53
*/
68 florian 54
function liste(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
79 florian 55
	$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'"';
5 florian 56
	$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
57
	if (DB::isError ($resultat)) {
62 alexandre_ 58
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
5 florian 59
	}
60
	while ($ligne = $resultat->fetchRow()) {
68 florian 61
		$select[$ligne[1]] = $ligne[2] ;
5 florian 62
	}
63
	$option=array('style'=>'width: '.$limite1.'px;');
57 florian 64
	require_once 'HTML/QuickForm/select.php';
68 florian 65
	$select= new HTML_QuickForm_select('liste'.$id_liste, constant($label), $select, $option);
5 florian 66
	$select->setSize($limite2);
67
	$select->setMultiple(0);
45 florian 68
	$select->setSelected($defaut);
5 florian 69
	$formtemplate->addElement($select) ;
47 florian 70
	if (isset($obligatoire)and($obligatoire==1)) {
68 florian 71
		$formtemplate->addRule('liste'.$id_liste, BAZ_CHOISIR_OBLIGATOIRE.' '.constant($label) , 'nonzero', '', 'client') ;
72
		$formtemplate->addRule('liste'.$id_liste, constant($label.'_REQUIS'), 'required', '', 'client') ;}
5 florian 73
}
74
 
75
 
54 florian 76
/** checkbox() - Ajoute un élément de type checkbox au formulaire
77
*
78
* @param    mixed   L'objet QuickForm du formulaire
68 florian 79
* @param    int     identifiant de la liste sur bazar_liste
54 florian 80
* @param    string  label à afficher dans le formulaire
81
* @param    string  première restriction de la taille des champs du formulaire
82
* @param    string  deuxième restriction de la taille des champs du formulaire
83
* @param    string  valeur par défaut du formulaire
84
* @param    string  table source pour les valeurs de la liste
85
* @param    string  ce champs est il obligatoire? (required)
86
* @return   void
87
*/
68 florian 88
function checkbox(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
79 florian 89
	$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'"';
54 florian 90
	$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
91
	if (DB::isError ($resultat)) {
80 alexandre_ 92
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
79 florian 93
	}
94
	require_once 'HTML/QuickForm/checkbox.php' ;
54 florian 95
	$i=0;
79 florian 96
	if (isset($defaut)) $tab=split(', ', $defaut);
54 florian 97
	while ($ligne = $resultat->fetchRow()) {
98
		if ($i==0) $labelchkbox=constant($label) ; else $labelchkbox='&nbsp;' ;
79 florian 99
		$checkbox[$i]= & HTML_Quickform::createElement('checkbox', $ligne[1], $labelchkbox, $ligne[2],
67 alexandre_ 100
						array ('style'=>'display:inline;margin-left:2px;')) ;
79 florian 101
		foreach ($tab as $val) {
102
            if ($ligne[1]==$val) $checkbox[$i]->setChecked(1);
103
        }
54 florian 104
		$i++;
105
	}
68 florian 106
	$formtemplate->addGroup($checkbox, 'checkbox'.$id_liste, constant($label), '<br />'."\n");
79 florian 107
	if (isset($obligatoire)and($obligatoire==1)) {
108
		//TODO: marches pas...
109
		$formtemplate->addGroupRule('checkbox'.$id_liste, constant($label.'_REQUIS'), 'required', null, 1, 'client');
110
	}
54 florian 111
}
112
 
113
 
5 florian 114
/** listedatedeb() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de début
115
*
116
* @param    mixed   L'objet QuickForm du formulaire
117
* @param    string  nom de la table dans la base de donnée
118
* @param    string  label à afficher dans le formulaire
119
* @param    string  première restriction de la taille des champs du formulaire
120
* @param    string  deuxième restriction de la taille des champs du formulaire
121
* @param    string  valeur par défaut du formulaire
122
* @param    string  table source pour les valeurs de la date
123
* @param    string  ce champs est il obligatoire? (required)
124
* @return   void
125
*/
126
function listedatedeb(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
82 alexandre_ 127
	$optiondate = array('language' => BAZ_LANGUE_PAR_DEFAUT,
128
						'minYear' => date('Y'),
129
						'maxYear'=> (date('Y')+10),
130
						'format' => 'd m Y',
131
						'addEmptyOption' => true,
132
						);
5 florian 133
	$formtemplate->addElement('date', $nom_bdd, constant($label), $optiondate) ;
79 florian 134
	//gestion des valeurs par défaut (date du jour)
135
	if (isset($defaut)) $formtemplate->setDefaults(array($nom_bdd => $defaut));
136
	else {
137
		$defauts=array($nom_bdd => array ('d'=>date('d'), 'm'=>date('m'), 'Y'=>date('Y')));
138
		$formtemplate->setDefaults($defauts);
139
	}
5 florian 140
	//gestion du champs obligatoire
141
	if (isset($obligatoire)and($obligatoire==1)) {$formtemplate->addRule($nom_bdd, constant($label.'_REQUIS'), 'required', '', 'client') ;}
142
}
143
 
144
/** listedatefin() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de fin
145
*
146
* @param    mixed   L'objet QuickForm du formulaire
147
* @param    string  nom de la table dans la base de donnée
148
* @param    string  label à afficher dans le formulaire
149
* @param    string  première restriction de la taille des champs du formulaire
150
* @param    string  deuxième restriction de la taille des champs du formulaire
151
* @param    string  valeur par défaut du formulaire
152
* @param    string  table source pour les valeurs de la date
153
* @param    string  ce champs est il obligatoire? (required)
154
* @return   void
155
*/
156
function listedatefin(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
157
	listedatedeb($formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire);
158
}
159
 
160
 
161
/** texte() - Ajoute un élément de type texte au formulaire
162
*
163
* @param    mixed   L'objet QuickForm du formulaire
164
* @param    string  nom de la table dans la base de donnée
165
* @param    string  label à afficher dans le formulaire
166
* @param    string  première restriction de la taille des champs du formulaire
167
* @param    string  deuxième restriction de la taille des champs du formulaire
168
* @param    string  valeur par défaut du formulaire
169
* @param    string  table source pour les valeurs du texte (inutile)
170
* @param    string  ce champs est il obligatoire? (required)
171
* @return   void
172
*/
173
function texte(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
174
	$option=array('size'=>$limite1,'maxlength'=>$limite2);
175
	$formtemplate->addElement('text', $nom_bdd, constant($label), $option) ;
176
	//gestion des valeurs par défaut
177
	$defauts=array($nom_bdd=>$defaut);
178
	$formtemplate->setDefaults($defauts);
41 alexandre_ 179
	$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
5 florian 180
	//gestion du champs obligatoire
181
	if (isset($obligatoire)and($obligatoire==1)) {$formtemplate->addRule($nom_bdd, constant($label.'_REQUIS'), 'required', '', 'client') ;}
182
}
183
 
184
 
185
/** textelong() - Ajoute un élément de type textearea au formulaire
186
*
187
* @param    mixed   L'objet QuickForm du formulaire
188
* @param    string  nom de la table dans la base de donnée
189
* @param    string  label à afficher dans le formulaire
190
* @param    string  taille des colonnes de l'élément
191
* @param    string  taille des lignes de l'élément
192
* @param    string  valeur par défaut du formulaire
193
* @param    string  table source pour les valeurs du texte (inutile)
194
* @param    string  ce champs est il obligatoire? (required)
195
* @return   void
196
*/
197
function textelong(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
54 florian 198
	$formtexte= new HTML_QuickForm_textarea($nom_bdd, constant($label), array('style'=>'white-space: normal;'));
5 florian 199
	$formtexte->setCols($limite1);
200
	$formtexte->setRows($limite2);
201
	$formtemplate->addElement($formtexte) ;
202
	//gestion des valeurs par défaut
203
	$defauts=array($nom_bdd=>$defaut);
204
	$formtemplate->setDefaults($defauts);
41 alexandre_ 205
	$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
5 florian 206
	//gestion du champs obligatoire
207
	if (isset($obligatoire)and($obligatoire==1)) {$formtemplate->addRule($nom_bdd, constant($label.'_REQUIS'), 'required', '', 'client') ;}
208
}
209
 
210
 
211
/** labelhtml() - Ajoute un élément de type textearea au formulaire
212
*
213
* @param    mixed   L'objet QuickForm du formulaire
214
* @param    string  nom de la table dans la base de donnée (pas utilisé)
215
* @param    string  label à afficher dans le formulaire
216
* @param    string  taille des colonnes de l'élément (pas utilisé)
217
* @param    string  taille des lignes de l'élément (pas utilisé)
218
* @param    string  valeur par défaut du formulaire (pas utilisé)
219
* @param    string  table source pour les valeurs du texte (pas utilisé)
220
* @param    string  ce champs est il obligatoire? (required) (pas utilisé)
221
* @return   void
222
*/
223
function labelhtml(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
57 florian 224
	require_once 'HTML/QuickForm/html.php';
68 florian 225
	$formhtml= new HTML_QuickForm_html('<tr>'."\n".'<td colspan="2">'."\n".constant($label)."\n".'</td>'."\n".'</tr>'."\n");
5 florian 226
	$formtemplate->addElement($formhtml) ;
227
}
228
 
229
/* +--Fin du code ----------------------------------------------------------------------------------------+
230
*
41 alexandre_ 231
* $Log: not supported by cvs2svn $
82 alexandre_ 232
* Revision 1.15  2006/01/23 16:57:03  alexandre_tb
233
* correction d'un notice
234
*
80 alexandre_ 235
* Revision 1.14  2006/01/19 17:42:11  florian
236
* ajout des cases à cocher pré-cochées pour les maj
237
*
79 florian 238
* Revision 1.13  2006/01/13 14:12:51  florian
239
* utilisation des temlates dans la table bazar_nature
240
*
68 florian 241
* Revision 1.12  2006/01/05 16:28:24  alexandre_tb
242
* prise en chage des checkbox, reste la mise à jour à gérer
243
*
67 alexandre_ 244
* Revision 1.11  2006/01/02 13:24:07  alexandre_tb
245
* correction de bug d'un mauvais retour en erreur
246
*
62 alexandre_ 247
* Revision 1.10  2005/12/01 16:05:41  florian
248
* changement des chemins pour appli Pear
249
*
57 florian 250
* Revision 1.9  2005/11/24 16:17:13  florian
251
* corrections bugs, ajout des cases à cocher
252
*
54 florian 253
* Revision 1.8  2005/11/18 16:03:23  florian
254
* correction bug html entites
255
*
53 florian 256
* Revision 1.7  2005/11/07 17:51:06  florian
257
* correction bug liste
258
*
47 florian 259
* Revision 1.6  2005/11/07 17:30:36  florian
260
* ajout controle sur les listes pour la saisie
261
*
46 florian 262
* Revision 1.5  2005/11/07 17:05:45  florian
263
* amélioration validation conditions de saisie, ajout des règles spécifiques de saisie des formulaires
264
*
45 florian 265
* Revision 1.4  2005/10/25 13:53:02  alexandre_tb
266
* ajout d'un filtre dans les formulaire texte et textelong
267
*
41 alexandre_ 268
* Revision 1.3  2005/07/21 19:03:12  florian
269
* nouveautés bazar: templates fiches, correction de bugs, ...
270
*
5 florian 271
* Revision 1.1.1.1  2005/02/17 18:05:11  florian
272
* Import initial de Bazar
273
*
274
* Revision 1.1.1.1  2005/02/17 11:09:50  florian
275
* Import initial
276
*
277
* Revision 1.1.1.1  2005/02/16 18:06:35  florian
278
* import de la nouvelle version
279
*
280
* Revision 1.4  2004/07/08 11:17:59  alex
281
* ajout de commentaires et d'entete
282
*
283
*
284
* +-- Fin du code ----------------------------------------------------------------------------------------+
285
*/
286
?>