Subversion Repositories Applications.papyrus

Rev

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

Rev Author Line No. Line
1108 florian 1
<?php
1462 alexandre_ 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
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id$
23
/**
24
* Formulaire
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
34
*@version       $Revision$ $Date$
35
// +------------------------------------------------------------------------------------------------------+
36
*/
37
 
1108 florian 38
function formulaire_valeurs_template_champs($valeur_template) {
39
	//Parcours du template, pour mettre les champs du formulaire avec leurs valeurs specifiques
40
	$tableau= array();
41
	$nblignes=0;
42
	$chaine = explode ("\n", $valeur_template);
43
	array_pop($chaine);
44
	foreach ($chaine as $ligne)  {
45
		$souschaine = explode ("***", $ligne) ;
46
		$tableau[$nblignes]['type'] = trim($souschaine[0]) ;
47
		if (isset($souschaine[1])) {$tableau[$nblignes]['nom_bdd'] = trim($souschaine[1]);}
48
		else {$tableau[$nblignes]['nom_bdd'] ='';}
49
		if (isset($souschaine[2])) $tableau[$nblignes]['label'] = trim($souschaine[2]);
50
		else {$tableau[$nblignes]['label'] ='';}
51
		if (isset($souschaine[3])) $tableau[$nblignes]['limite1'] = trim($souschaine[3]);
52
		else {$tableau[$nblignes]['limite1'] ='';}
53
		if (isset($souschaine[4])) $tableau[$nblignes]['limite2'] = trim($souschaine[4]);
54
		else {$tableau[$nblignes]['limite2'] ='';}
55
		if (isset($souschaine[5])) $tableau[$nblignes]['defaut'] = trim($souschaine[5]);
56
		else {$tableau[$nblignes]['defaut'] ='';}
57
		if (isset($souschaine[6])) $tableau[$nblignes]['table_source'] = trim($souschaine[6]);
58
		else {$tableau[$nblignes]['table_source'] ='';}
59
		if (isset($souschaine[7])) $tableau[$nblignes]['id_source'] = trim($souschaine[7]);
60
		else {$tableau[$nblignes]['id_source'] ='';}
61
		if (isset($souschaine[8])) $tableau[$nblignes]['obligatoire'] = trim($souschaine[8]);
62
		else {$tableau[$nblignes]['obligatoire'] ='';}
63
		if (isset($souschaine[9])) $tableau[$nblignes]['recherche'] = trim($souschaine[9]);
64
		else {$tableau[$nblignes]['recherche'] ='';}
65
 
1512 neiluj 66
		// traitement des cases à cocher, dans ce cas la, on a une table de jointure entre la table
1108 florian 67
		// de liste et la table bazar_fiche (elle porte un nom du genre bazar_ont_***)
1462 alexandre_ 68
		// dans le template, a la place d'un nom de champs dans 'nom_bdd', on a un nom de table
69
		// et 2 noms de champs separes par un virgule ex : bazar_ont_theme,bot_id_theme,bot_id_fiche
1108 florian 70
		if (isset($tableau[$nblignes]['nom_bdd']) && preg_match('/,/', $tableau[$nblignes]['nom_bdd'])) {
71
			$tableau_info_jointe = explode (',', $tableau[$nblignes]['nom_bdd']) ;
72
			$tableau[$nblignes]['table_jointe'] = $tableau_info_jointe[0] ;
73
			$tableau[$nblignes]['champs_id_fiche'] = $tableau_info_jointe[1] ;
74
			$tableau[$nblignes]['champs_id_table_jointe'] = $tableau_info_jointe[2] ;
75
		}
76
		$nblignes++;
77
	}
78
	return $tableau;
79
}
80
 
1462 alexandre_ 81
//-------------------FONCTIONS DE MISE EN PAGE DES FORMULAIRES
82
 
1108 florian 83
/** liste() - Ajoute un élément de type liste au formulaire
84
*
85
* @param    mixed   L'objet QuickForm du formulaire
86
* @param    int     identifiant de la liste sur bazar_liste
87
* @param    string  label à afficher dans le formulaire
88
* @param    string  première restriction de la taille des champs du formulaire
89
* @param    string  deuxième restriction de la taille des champs du formulaire
90
* @param    string  valeur par défaut du formulaire
91
* @param    string  table source pour les valeurs de la liste
92
* @param    string  ce champs est il obligatoire? (required)
93
* @param    boolean sommes nous dans le moteur de recherche?
1462 alexandre_ 94
* @param string le nom de l appli, ou le nom du repertoire de l appli
1108 florian 95
* @return   void
96
*/
1462 alexandre_ 97
function liste(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source,
98
					 $obligatoire, $dans_moteur_de_recherche=0,$appli = 'bazar') {
99
 
100
	// Deux cas, soit avec la table xxx_liste et xxx_liste_valeurs
101
	// soit avec les champs source et colonne identifiant
102
 
103
	// Le nom de l appli permet de retrouver le nom de la table liste
104
	// ex : bazar => bazar_liste_valeurs
105
	// pour le nom des champs, on utilise la premiere lettre du nom de l appli
106
	// bazar => b
1522 neiluj 107
	require PAP_CHEMIN_RACINE . 'client/bazar/configuration/baz_config.inc.php';
1511 alexandre_ 108
 
109
	if (intval($id_liste) != 0) {
1462 alexandre_ 110
		$l = $appli[0];
111
		$requete = 'SELECT * FROM '.$appli.'_liste_valeurs WHERE '.$l.'lv_ce_liste='.$id_liste.
112
					' AND '.$l.'lv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'"';
113
		$nom_liste = 'liste'.$id_liste;
114
 
115
	} else {
116
		list ($table, $col_id, $col_label, $col_langue, $langue) = explode (',', $source);
117
		$requete = 'select "", '.$col_id.', '.$col_label.' from '.$table;
118
		if (isset($col_langue)) $requete .= ' where '.$col_langue.'="'.$langue.'"';
119
		$nom_liste = $id_liste;
120
	}
121
 
1512 neiluj 122
	$resultat = $GLOBALS['_GEN_commun']['pear_db']->query($requete) ;
1108 florian 123
	if (DB::isError ($resultat)) {
1511 alexandre_ 124
		return ($resultat->getMessage().$resultat->getDebugInfo()) ;
1108 florian 125
	}
126
	if ($dans_moteur_de_recherche==0) {
127
		$select[0]=BAZ_CHOISIR;
128
	}
129
	else {
130
		$select[0]=BAZ_INDIFFERENT;
131
	}
132
	while ($ligne = $resultat->fetchRow()) {
1462 alexandre_ 133
		$select[$ligne[1]] = $ligne[2] ;
1108 florian 134
	}
1462 alexandre_ 135
	$option = array('id' => $nom_liste);
1108 florian 136
	require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/select.php';
1462 alexandre_ 137
	$select= new HTML_QuickForm_select($nom_liste, $label, $select, $option);
138
	if ($limite2 != '') $select->setSize($limite2);
1108 florian 139
	$select->setMultiple(0);
140
	$select->setSelected($defaut);
141
	$formtemplate->addElement($select) ;
142
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
143
		$formtemplate->addRule('liste'.$id_liste, BAZ_CHOISIR_OBLIGATOIRE.' '.$label , 'nonzero', '', 'client') ;
144
		$formtemplate->addRule('liste'.$id_liste, $label.' obligatoire', 'required', '', 'client') ;}
145
}
146
 
147
 
148
/** checkbox() - Ajoute un élément de type checkbox au formulaire
149
*
150
* @param    mixed   L'objet QuickForm du formulaire
151
* @param    int     identifiant de la liste sur bazar_liste
152
* @param    string  label à afficher dans le formulaire
153
* @param    string  première restriction de la taille des champs du formulaire
154
* @param    string  deuxième restriction de la taille des champs du formulaire
155
* @param    string  valeur par défaut du formulaire
156
* @param    string  table source pour les valeurs de la liste
157
* @param    string  ce champs est il obligatoire? (required)
158
* @return   void
159
*/
1462 alexandre_ 160
function checkbox(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut,
161
						$source, $obligatoire, $dans_moteur_de_recherche=0, $appli = 'bazar') {
162
	if (is_int ($id_liste)) {
163
	 	$l = $appli[0];
164
		$requete = 'SELECT * FROM '.$appli.'_liste_valeurs WHERE '.$l.'lv_ce_liste='.$id_liste.
165
					' AND '.$l.'lv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'" ORDER BY '.$l.'lv_label';
166
		$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
167
		if (DB::isError ($resultat)) {
168
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
169
		}
170
		require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/checkbox.php' ;
171
		$i=0;
172
		if (isset($defaut)) $tab=split(', ', $defaut);
173
		while ($ligne = $resultat->fetchRow()) {
174
			if ($i==0) $labelchkbox=$label ; else $labelchkbox='&nbsp;';
175
			$checkbox[$i]= & HTML_Quickform::createElement('checkbox', $ligne[1], $labelchkbox, $ligne[2],
176
							array ('style'=>'display:inline;margin:2px;')) ;
177
			foreach ($tab as $val) {
178
	            if ($ligne[1]==$val) $checkbox[$i]->setChecked(1);
179
	        }
180
			$i++;
181
		}
182
		$squelette_checkbox =& $formtemplate->defaultRenderer();
183
		$squelette_checkbox->setElementTemplate( '<tr><td colspan="2" style="text-align:left;">'."\n".'<fieldset class="bazar_fieldset">'."\n".'<legend>{label}'.
184
	                                             '<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".
185
												 '</legend>'."\n".'{element}'."\n".'</fieldset> '."\n".'</td></tr>'."\n", 'checkbox'.$id_liste);
186
	  	$squelette_checkbox->setGroupElementTemplate( "\n".'<div class="bazar_checkbox">'."\n".'{element}'."\n".'</div>'."\n", 'checkbox'.$id_liste);
187
 
188
		$formtemplate->addGroup($checkbox, 'checkbox'.$id_liste, $label, "\n");
189
		if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
190
			$formtemplate->addGroupRule('checkbox'.$id_liste, $label.' obligatoire', 'required', null, 1, 'client');
191
		}
192
	} else {
193
		$checkbox = & HTML_Quickform::createElement('checkbox', $id_liste, $label);
194
		if ($defaut == 1) $checkbox->setChecked(true);
195
		$formtemplate->addElement($checkbox);
196
 
1108 florian 197
	}
1462 alexandre_ 198
 
1108 florian 199
}
200
 
201
 
202
/** listedatedeb() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de début
203
*
204
* @param    mixed   L'objet QuickForm du formulaire
205
* @param    string  nom de la table dans la base de donnée
206
* @param    string  label à afficher dans le formulaire
207
* @param    string  première restriction de la taille des champs du formulaire
208
* @param    string  deuxième restriction de la taille des champs du formulaire
209
* @param    string  valeur par défaut du formulaire
210
* @param    string  table source pour les valeurs de la date
211
* @param    string  ce champs est il obligatoire? (required)
212
* @return   void
213
*/
214
function listedatedeb(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
215
	$optiondate = array('language' => BAZ_LANGUE_PAR_DEFAUT,
1462 alexandre_ 216
						'minYear' => date('Y')-4,
1108 florian 217
						'maxYear'=> (date('Y')+10),
218
						'format' => 'd m Y',
219
						'addEmptyOption' => BAZ_DATE_VIDE,
220
						);
221
	$formtemplate->addElement('date', $nom_bdd, $label, $optiondate) ;
1462 alexandre_ 222
	//gestion des valeurs par défaut (date du jour)
223
	if (isset($defaut) && $defaut!='') {
224
		$tableau_date = explode ('-', $defaut);
225
		$formtemplate->setDefaults(array($nom_bdd => array ('d'=> $tableau_date[2], 'm'=> $tableau_date[1], 'Y'=> $tableau_date[0])));
226
	}
227
 
1108 florian 228
	else {
229
		$defauts=array($nom_bdd => array ('d'=>date('d'), 'm'=>date('m'), 'Y'=>date('Y')));
230
		$formtemplate->setDefaults($defauts);
231
	}
232
	//gestion du champs obligatoire
233
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
234
		$formtemplate->addRule($nom_bdd, $label.' obligatoire', 'required', '', 'client') ;
235
	}
236
}
237
 
238
/** listedatefin() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de fin
239
*
240
* @param    mixed   L'objet QuickForm du formulaire
241
* @param    string  nom de la table dans la base de donnée
242
* @param    string  label à afficher dans le formulaire
243
* @param    string  première restriction de la taille des champs du formulaire
244
* @param    string  deuxième restriction de la taille des champs du formulaire
245
* @param    string  valeur par défaut du formulaire
246
* @param    string  table source pour les valeurs de la date
247
* @param    string  ce champs est il obligatoire? (required)
248
* @return   void
249
*/
250
function listedatefin(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
251
	listedatedeb($formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche);
252
}
253
 
254
 
255
/** texte() - Ajoute un élément de type texte au formulaire
256
*
257
* @param    mixed   L'objet QuickForm du formulaire
258
* @param    string  nom de la table dans la base de donnée
259
* @param    string  label à afficher dans le formulaire
260
* @param    string  première restriction de la taille des champs du formulaire
261
* @param    string  deuxième restriction de la taille des champs du formulaire
262
* @param    string  valeur par défaut du formulaire
263
* @param    string  table source pour les valeurs du texte (inutile)
264
* @param    string  ce champs est il obligatoire? (required)
265
* @return   void
266
*/
267
function texte(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
1462 alexandre_ 268
	$option=array('size'=>$limite1,'maxlength'=>$limite2, 'id' => $nom_bdd);
1108 florian 269
	$formtemplate->addElement('text', $nom_bdd, $label, $option) ;
270
	//gestion des valeurs par défaut
271
	$defauts=array($nom_bdd=>$defaut);
272
	$formtemplate->setDefaults($defauts);
273
	$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
274
	//gestion du champs obligatoire
275
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
276
		$formtemplate->addRule($nom_bdd,  $label.' obligatoire', 'required', '', 'client') ;
277
	}
278
}
279
 
1511 alexandre_ 280
/** champs_cache() - Ajoute un élément de type texte au formulaire
281
*
282
* @param    mixed   L'objet QuickForm du formulaire
283
* @param    string  nom de la table dans la base de donnée
284
* @param    string  label à afficher dans le formulaire
285
* @param    string  première restriction de la taille des champs du formulaire
286
* @param    string  deuxième restriction de la taille des champs du formulaire
287
* @param    string  valeur par défaut du formulaire
288
* @param    string  table source pour les valeurs du texte (inutile)
289
* @param    string  ce champs est il obligatoire? (required)
290
* @return   void
291
*/
292
function champs_cache(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
293
	$formtemplate->addElement('hidden', $nom_bdd, $label, array ('id' => $nom_bdd)) ;
294
	//gestion des valeurs par défaut
295
	$defauts=array($nom_bdd=>$defaut);
296
	$formtemplate->setDefaults($defauts);
297
}
298
 
1462 alexandre_ 299
/** champs_mail() - Ajoute un élément de type mail
300
*
301
* @param    mixed   L'objet QuickForm du formulaire
302
* @param    string  nom de la table dans la base de donnée
303
* @param    string  label à afficher dans le formulaire
304
* @param    string  première restriction de la taille des champs du formulaire
305
* @param    string  deuxième restriction de la taille des champs du formulaire
306
* @param    string  valeur par défaut du formulaire
307
* @param    string  table source pour les valeurs du texte (inutile)
308
* @param    string  ce champs est il obligatoire? (required)
309
* @return   void
310
*/
311
function champs_mail(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
312
	$option=array('size'=>$limite1,'maxlength'=>$limite2, 'id' => $nom_bdd);
313
	$formtemplate->addElement('text', $nom_bdd, $label, $option) ;
314
	//gestion des valeurs par défaut
315
	$defauts=array($nom_bdd=>$defaut);
316
	$formtemplate->setDefaults($defauts);
317
	$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
318
	$formtemplate->addRule($nom_bdd,  $label.' obligatoire', 'required', '', 'client') ;
319
	$formtemplate->addRule($nom_bdd, INS_MAIL_INCORRECT, 'email', '', 'client') ;
320
	//gestion du champs obligatoire
321
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
322
		$formtemplate->addRule($nom_bdd,  $label.' obligatoire', 'required', '', 'client') ;
323
	}
324
	$formtemplate->registerRule('doublonmail', 'callback', 'inscription_verif_doublonMail');
325
	$formtemplate->addRule($nom_bdd, INS_MAIL_DOUBLE, 'doublonmail');
326
}
1108 florian 327
 
1462 alexandre_ 328
function mot_de_passe (&$formtemplate, $nom_bdd , $label1, $limite1, $limite2, $erreur1, $label2, $obligatoire) {
329
	$formtemplate->addElement('password', 'mot_de_passe', $label1, array('size' => $limite1)) ;
330
    $formtemplate->addElement('password', 'mot_de_passe_repete', $label2, array('size' => $limite1)) ;
331
    $formtemplate->addRule('mot_de_passe', $erreur1, 'required', '', 'client') ;
332
    $formtemplate->addRule('mot_de_passe_repete', $erreur1, 'required', '', 'client') ;
333
    $formtemplate->addRule(array ('mot_de_passe', 'mot_de_passe_repete'), $erreur1, 'compare', '', 'client') ;
334
}
335
 
336
 
1108 florian 337
/** textelong() - Ajoute un élément de type textearea au formulaire
338
*
339
* @param    mixed   L'objet QuickForm du formulaire
340
* @param    string  nom de la table dans la base de donnée
341
* @param    string  label à afficher dans le formulaire
342
* @param    string  taille des colonnes de l'élément
343
* @param    string  taille des lignes de l'élément
344
* @param    string  valeur par défaut du formulaire
345
* @param    string  table source pour les valeurs du texte (inutile)
346
* @param    string  ce champs est il obligatoire? (required)
347
* @return   void
348
*/
349
function textelong(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
1462 alexandre_ 350
	$formtexte= new HTML_QuickForm_textarea($nom_bdd, $label, array('style'=>'white-space: normal;', 'id' => $nom_bdd));
1108 florian 351
	$formtexte->setCols($limite1);
352
	$formtexte->setRows($limite2);
353
	$formtemplate->addElement($formtexte) ;
354
	//gestion des valeurs par défaut
355
	$defauts=array($nom_bdd=>$defaut);
356
	$formtemplate->setDefaults($defauts);
357
	$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
358
	//gestion du champs obligatoire
359
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
360
		$formtemplate->addRule($nom_bdd,  $label.' obligatoire', 'required', '', 'client') ;
361
	}
362
}
363
 
364
/** url() - Ajoute un élément de type url internet au formulaire
365
*
366
* @param    mixed   L'objet QuickForm du formulaire
367
* @param    string  numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
368
* @param    string  label à afficher dans le formulaire
369
* @param    string  taille des colonnes de l'élément
370
* @param    string  taille des lignes de l'élément
371
* @param    string  valeur par défaut du formulaire
372
* @param    string  table source pour les valeurs du texte (inutile)
373
* @param    string  ce champs est il obligatoire? (required)
374
* @return   void
375
*/
376
function url(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
377
	//recherche des URLs deja entrees dans la base
378
	$html_url= '';
379
	if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
380
		$requete = 'SELECT bu_id_url, bu_url, bu_descriptif_url FROM bazar_url WHERE bu_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
381
		$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
382
		if (DB::isError ($resultat)) {
383
			die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
384
		}
385
		if ($resultat->numRows()>0) {
386
			$html_url= '<tr>'."\n".'<td colspan="2">'."\n".'<strong>'.BAZ_LISTE_URL.'</strong>'."\n";
387
			$tableAttr = array("class" => "bazar_table") ;
388
			$table = new HTML_Table($tableAttr) ;
389
			$entete = array (BAZ_LIEN , BAZ_SUPPRIMER) ;
390
			$table->addRow($entete) ;
391
			$table->setRowType(0, "th") ;
1462 alexandre_ 392
 
1108 florian 393
			$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
394
			$lien_supprimer->addQueryString('action', $_GET['action']);
395
			$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
396
			$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
1462 alexandre_ 397
 
1108 florian 398
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
399
				$lien_supprimer->addQueryString('id_url', $ligne->bu_id_url);
400
				$table->addRow (array(
401
				'<a href="'.$ligne->bu_url.'" target="_blank"> '.$ligne->bu_descriptif_url.'</a>', // col 1 : le lien
402
				'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_LIEN.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
403
				$lien_supprimer->removeQueryString('id_url');
404
			}
1462 alexandre_ 405
 
406
			// Nettoyage de l'url
407
			$lien_supprimer->removeQueryString('action');
408
			$lien_supprimer->removeQueryString('id_fiche');
409
			$lien_supprimer->removeQueryString('typeannonce');
410
 
1108 florian 411
			$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
412
			$table->updateColAttributes(1, array("align" => "center"));
413
			$html_url.= $table->toHTML()."\n".'</td>'."\n".'</tr>'."\n" ;
414
		}
1462 alexandre_ 415
	}
1108 florian 416
	$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
417
	$formtemplate->addElement('html', $html) ;
418
	if ($html_url!='') $formtemplate->addElement('html', $html_url) ;
419
	$formtemplate->addElement('text', 'url_lien'.$nom_bdd, BAZ_URL_LIEN) ;
420
	$formtemplate->addElement('text', 'url_texte'.$nom_bdd, BAZ_URL_TEXTE) ;
421
	//gestion du champs obligatoire
422
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
423
		$formtemplate->addRule('url_lien'.$nom_bdd, BAZ_URL_LIEN_REQUIS, 'required', '', 'client') ;
424
		$formtemplate->addRule('url_texte'.$nom_bdd, BAZ_URL_TEXTE_REQUIS, 'required', '', 'client') ;
425
	}
1462 alexandre_ 426
}
1108 florian 427
 
428
/** fichier() - Ajoute un élément de type fichier au formulaire
429
*
430
* @param    mixed   L'objet QuickForm du formulaire
431
* @param    string  numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
432
* @param    string  label à afficher dans le formulaire
433
* @param    string  taille des colonnes de l'élément
434
* @param    string  taille des lignes de l'élément
435
* @param    string  valeur par défaut du formulaire
436
* @param    string  table source pour les valeurs du texte (inutile)
437
* @param    string  ce champs est il obligatoire? (required)
438
* @return   void
439
*/
440
function fichier(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
441
	//AJOUTER DES FICHIERS JOINTS
442
	$html_fichier= '';
443
	if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
444
		$requete = 'SELECT * FROM bazar_fichier_joint WHERE bfj_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
445
		$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
446
		if (DB::isError ($resultat)) {
447
			die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
448
		}
1462 alexandre_ 449
 
1108 florian 450
		if ($resultat->numRows()>0) {
451
			$html_fichier = '<tr>'."\n".'<td colspan="2">'."\n".'<strong>'.BAZ_LISTE_FICHIERS_JOINTS.'</strong>'."\n";
452
			$tableAttr = array("class" => "bazar_table") ;
453
			$table = new HTML_Table($tableAttr) ;
454
			$entete = array (BAZ_FICHIER , BAZ_SUPPRIMER) ;
455
			$table->addRow($entete) ;
456
			$table->setRowType(0, "th") ;
1462 alexandre_ 457
 
1108 florian 458
			$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
459
			$lien_supprimer->addQueryString('action', $_GET['action']);
460
			$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
461
			$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
462
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
463
				$lien_supprimer->addQueryString('id_fichier', $ligne->bfj_id_fichier);
464
				$table->addRow(array('<a href="client/bazar/upload/'.$ligne->bfj_fichier.'"> '.$ligne->bfj_description.'</a>', // col 1 : le fichier et sa description
465
									 '<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_FICHIER.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
466
				$lien_supprimer->removeQueryString('id_fichier');
467
			}
468
			$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
469
			$table->updateColAttributes(1, array("align" => "center"));
470
			$html_fichier .= $table->toHTML()."\n".'</td>'."\n".'</tr>'."\n" ;
471
		}
472
	}
473
	$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
474
	$formtemplate->addElement('html', $html) ;
475
	if ($html_fichier!='') $formtemplate->addElement('html', $html_fichier) ;
476
	$formtemplate->addElement('text', 'texte_fichier'.$nom_bdd, BAZ_FICHIER_DESCRIPTION) ;
477
	$formtemplate->addElement('file', 'fichier'.$nom_bdd, BAZ_FICHIER_JOINT) ;
478
	$formtemplate->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
479
	$formtemplate->setMaxFileSize($limite1);
480
	//gestion du champs obligatoire
481
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
482
		$formtemplate->addRule('texte_fichier'.$nom_bdd, BAZ_FICHIER_LABEL_REQUIS, 'required', '', 'client') ;
483
		$formtemplate->addRule('fichier'.$nom_bdd, BAZ_FICHIER_JOINT_REQUIS, 'required', '', 'client') ;
484
	}
1462 alexandre_ 485
}
1108 florian 486
 
487
/** image() - Ajoute un élément de type image au formulaire
488
*
489
* @param    mixed   L'objet QuickForm du formulaire
490
* @param    string  numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
491
* @param    string  label à afficher dans le formulaire
492
* @param    string  taille maximum du fichier colonnes de l'élément
493
* @param    string  taille des lignes de l'élément
494
* @param    string  valeur par défaut du formulaire
495
* @param    string  table source pour les valeurs du texte (inutile)
496
* @param    string  ce champs est il obligatoire? (required)
497
* @return   void
498
*/
499
function image(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
500
	//AJOUTER UNE IMAGE
501
	$html_image= '';
502
	if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
503
		$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
504
		$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
505
		if (DB::isError ($resultat)) {
506
			die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
507
		}
1462 alexandre_ 508
 
1108 florian 509
		if ($resultat->numRows()>0) {
510
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
511
				$image=$ligne->bf_url_image;
512
			}
513
			if ($image!=NULL) {
514
				$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
515
				$lien_supprimer->addQueryString('action', $_GET['action']);
516
				$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
517
				$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
518
				$lien_supprimer->addQueryString('image', 1);
519
				$html_image = '<tr>'."\n".
520
							  '<td>'."\n".'<img src="client/bazar/upload/'.$image.'" alt="'.BAZ_TEXTE_IMG_ALTERNATIF.'" width="130" height="130" />'."\n".'</td>'."\n".
521
							  '<td>'."\n".'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_IMAGE.'\');" >'.BAZ_SUPPRIMER.'</a><br /><br />'."\n".
522
							  '<strong>'.BAZ_POUR_CHANGER_IMAGE.'</strong><br />'."\n".'</td>'."\n".'</tr>'."\n";
523
			}
1462 alexandre_ 524
		}
525
	}
1108 florian 526
	$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
527
	$formtemplate->addElement('html', $html) ;
528
	if ($html_image!='') $formtemplate->addElement('html', $html_image) ;
529
	$formtemplate->addElement('file', 'image', BAZ_IMAGE) ;
530
	//TODO: controler si c'est une image
531
	$formtemplate->setMaxFileSize($limite1);
532
	//gestion du champs obligatoire
533
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
534
		$formtemplate->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, 'required', '', 'client') ;
535
	}
1462 alexandre_ 536
}
1108 florian 537
 
1462 alexandre_ 538
/** image_unique() - Ajoute un élément de type image au formulaire, l information est stockee dans un champs
539
*
540
* @param    mixed   L'objet QuickForm du formulaire
541
* @param    string  numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
542
* @param    string  label à afficher dans le formulaire
543
* @param    string  taille maximum du fichier colonnes de l'élément
544
* @param    string  taille des lignes de l'élément
545
* @param    string  valeur par défaut du formulaire
546
* @param    string  table source pour les valeurs du texte (inutile)
547
* @param    string  ce champs est il obligatoire? (required)
548
* @return   void
549
*/
550
function image_unique(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
551
	$formtemplate->addElement ('file', $nom_bdd, $label);
552
	$formtemplate->setMaxFileSize($limite1);
553
}
1108 florian 554
/** wikini() - Ajoute un wikini au formulaire
555
*
556
* @param    mixed   L'objet QuickForm du formulaire
557
* @param    string  numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
558
* @param    string  label à afficher dans le formulaire
559
* @param    string  taille maximum du fichier colonnes de l'élément
560
* @param    string  taille des lignes de l'élément
561
* @param    string  valeur par défaut du formulaire
562
* @param    string  table source pour les valeurs du texte (inutile)
563
* @param    string  ce champs est il obligatoire? (required)
564
* @return   void
565
*/
566
function wikini(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
567
	return;
568
}
569
 
570
/** labelhtml() - Ajoute un élément de type textearea au formulaire
571
*
572
* @param    mixed   L'objet QuickForm du formulaire
573
* @param    string  nom de la table dans la base de donnée (pas utilisé)
574
* @param    string  label à afficher dans le formulaire
575
* @param    string  taille des colonnes de l'élément (pas utilisé)
576
* @param    string  taille des lignes de l'élément (pas utilisé)
577
* @param    string  valeur par défaut du formulaire (pas utilisé)
578
* @param    string  table source pour les valeurs du texte (pas utilisé)
579
* @param    string  ce champs est il obligatoire? (required) (pas utilisé)
580
* @return   void
581
*/
582
function labelhtml(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
583
	require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/html.php';
1462 alexandre_ 584
	$formhtml= new HTML_QuickForm_html('<tr>'."\n".'<td colspan="2" style="text-align:left;">'."\n".$label."\n".'</td>'."\n".'</tr>'."\n");
1108 florian 585
	$formtemplate->addElement($formhtml) ;
586
}
587
 
1462 alexandre_ 588
/** carte_google() - Ajoute un élément de carte google au formulaire
589
*
590
* @param    mixed   L'objet QuickForm du formulaire
591
* @param    string  l url vers la script google
592
* @param    string  label à afficher dans le formulaire
593
* @param    string  première restriction de la taille des champs du formulaire
594
* @param    string  deuxième restriction de la taille des champs du formulaire
595
* @param    string  valeur par défaut du formulaire
596
* @param    string  table source pour les valeurs de la liste
597
* @param    string  ce champs est il obligatoire? (required)
598
* @param    boolean sommes nous dans le moteur de recherche?
599
* @return   void
600
*/
601
function carte_google(&$formtemplate, $url_google_script , $label, $champs_latitude, $champs_longitude, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
602
 
603
	if (is_array ($defaut)) {
604
    	$formtemplate->setDefaults(array('latitude' => $defaut['latitude'], 'longitude' => $defaut['longitude']));
605
    }
606
 
607
	GEN_stockerFichierScript('googleMapScript', $url_google_script);
1511 alexandre_ 608
    $html_bouton = '<tr>
609
<td style="text-align:left;padding:5px;" colspan="2">
610
<input onclick="showAddress();" name="chercher_sur_carte" value="'.BAZ_VERIFIER_MON_ADRESSE.'" type="button" /><span class="symbole_obligatoire">&nbsp;*</span></td>
611
</tr>';
612
	$formtemplate->addElement('html', $html_bouton);
613
 
1462 alexandre_ 614
    $formtemplate->addElement('html', '<tr><td colspan="2"><div id="map" style="width: 600px; height: 450px"></div></td></tr>');
1511 alexandre_ 615
     $formtemplate->addElement('text', 'latitude', BAZ_LATITUDE, array('id' => 'latitude', 'size' => 6, 'readonly' => 'readonly'));
616
    $formtemplate->addElement('text', 'longitude', BAZ_LONGITUDE, array('id' => 'longitude', 'size' => 6, 'readonly' => 'readonly'));
617
    $formtemplate->addRule ('latitude', BAZ_LATITUDE . ' obligatoire', 'required', '', 'client');
618
    $formtemplate->addRule ('longitude', BAZ_LONGITUDE . ' obligatoire', 'required', '', 'client');
619
 
1462 alexandre_ 620
    /*
621
    include_once GEN_CHEMIN_API.'formulaire/formulaire.fonct.google.php';
622
    GEN_stockerCodeScript($script);*/
623
}
1108 florian 624
 
1462 alexandre_ 625
/* +--Fin du code ----------------------------------------------------------------------------------------+
626
*
627
* $Log$
1522 neiluj 628
* Revision 1.5  2007-07-04 14:20:20  neiluj
629
* - ajout de l'include de baz_config pour les constantes BAZ_*
630
*
1513 neiluj 631
* Revision 1.4  2007-07-04 13:53:18  neiluj
632
* - debug de la variable pour le query causant un Fatal Error a l'inscription
633
*
1512 neiluj 634
* Revision 1.3  2007-07-04 11:53:37  alexandre_tb
635
* ajout du type champs_cache
636
*
1511 alexandre_ 637
* Revision 1.2  2007-06-25 09:54:33  alexandre_tb
638
* ajou des entetes (cecill),
639
* modif fonctin liste, ajout de carte_google et champs_mail
640
*
1462 alexandre_ 641
*
642
* +-- Fin du code ----------------------------------------------------------------------------------------+
643
*/
1108 florian 644
?>