Subversion Repositories Applications.papyrus

Rev

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

Rev Author Line No. Line
1450 alexandre_ 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
// +------------------------------------------------------------------------------------------------------+
1467 alexandre_ 22
// CVS : $Id: inscription.fonct.formulaire.php,v 1.2 2007-06-25 09:59:03 alexandre_tb Exp $
1450 alexandre_ 23
/**
24
* Formulaire
25
*
26
* Les fonctions de mise en page des formulaire
27
*
28
*@package bottin
29
//Auteur original :
30
*@author        Florian SCHMITT <florian@ecole-et-nature.org>
31
*@author        Aleandre GRANIER <alexandre@tela-botanica.org>
32
*@copyright     Tela-Botanica 2000-2007
1467 alexandre_ 33
*@version       $Revision: 1.2 $ $Date: 2007-06-25 09:59:03 $
1450 alexandre_ 34
// +------------------------------------------------------------------------------------------------------+
35
*/
36
 
37
//-------------------FONCTIONS DE MISE EN PAGE DES FORMULAIRES
38
 
39
/** liste() - Ajoute un élément de type liste au formulaire
40
*
41
* @param    mixed   L'objet QuickForm du formulaire
42
* @param    int     identifiant de la liste sur bazar_liste
43
* @param    string  label à afficher dans le formulaire
44
* @param    string  première restriction de la taille des champs du formulaire
45
* @param    string  deuxième restriction de la taille des champs du formulaire
46
* @param    string  valeur par défaut du formulaire
47
* @param    string  table source pour les valeurs de la liste
48
* @param    string  ce champs est il obligatoire? (required)
49
* @param    boolean sommes nous dans le moteur de recherche?
50
* @return   void
51
*/
52
function liste(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
53
	$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'"';
54
	$resultat = & $GLOBALS['ins_db'] -> query($requete) ;
55
	if (DB::isError ($resultat)) {
56
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
57
	}
58
	if ($dans_moteur_de_recherche==0) {
59
		$select[0]=BAZ_CHOISIR;
60
	}
61
	else {
62
		$select[0]=BAZ_INDIFFERENT;
63
	}
64
	while ($ligne = $resultat->fetchRow()) {
65
		$select[$ligne[1]] = $ligne[2] ;
66
	}
67
	$option=array('style'=>'width: '.$limite1.'px;', 'id' => 'liste'.$id_liste);
68
	require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/select.php';
69
	$select= new HTML_QuickForm_select('liste'.$id_liste, $label, $select, $option);
70
	$select->setSize($limite2);
71
	$select->setMultiple(0);
72
	$select->setSelected($defaut);
73
	$formtemplate->addElement($select) ;
74
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
75
		$formtemplate->addRule('liste'.$id_liste, BAZ_CHOISIR_OBLIGATOIRE.' '.$label , 'nonzero', '', 'client') ;
76
		$formtemplate->addRule('liste'.$id_liste, $label.' obligatoire', 'required', '', 'client') ;}
77
}
78
 
79
 
80
/** checkbox() - Ajoute un élément de type checkbox au formulaire
81
*
82
* @param    mixed   L'objet QuickForm du formulaire
83
* @param    int     identifiant de la liste sur bazar_liste
84
* @param    string  label à afficher dans le formulaire
85
* @param    string  première restriction de la taille des champs du formulaire
86
* @param    string  deuxième restriction de la taille des champs du formulaire
87
* @param    string  valeur par défaut du formulaire
88
* @param    string  table source pour les valeurs de la liste
89
* @param    string  ce champs est il obligatoire? (required)
90
* @return   void
91
*/
92
function checkbox(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
93
	$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="'.$GLOBALS['_BAZAR_']['langue'].'" ORDER BY blv_label';
94
	$resultat = & $GLOBALS['ins_db'] -> query($requete) ;
95
	if (DB::isError ($resultat)) {
96
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
97
	}
98
	require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/checkbox.php' ;
99
	$i=0;
100
	if (isset($defaut)) $tab=split(', ', $defaut);
101
	while ($ligne = $resultat->fetchRow()) {
102
		if ($i==0) $labelchkbox=$label ; else $labelchkbox='&nbsp;';
103
		$checkbox[$i]= & HTML_Quickform::createElement('checkbox', $ligne[1], $labelchkbox, $ligne[2],
104
						array ('style'=>'display:inline;margin:2px;')) ;
105
		foreach ($tab as $val) {
106
            if ($ligne[1]==$val) $checkbox[$i]->setChecked(1);
107
        }
108
		$i++;
109
	}
110
	$squelette_checkbox =& $formtemplate->defaultRenderer();
111
	$squelette_checkbox->setElementTemplate( '<tr><td colspan="2" style="text-align:left;">'."\n".'<fieldset class="bazar_fieldset">'."\n".'<legend>{label}'.
112
                                             '<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".
113
											 '</legend>'."\n".'{element}'."\n".'</fieldset> '."\n".'</td></tr>'."\n", 'checkbox'.$id_liste);
114
  	$squelette_checkbox->setGroupElementTemplate( "\n".'<div class="bazar_checkbox">'."\n".'{element}'."\n".'</div>'."\n", 'checkbox'.$id_liste);
115
 
116
	$formtemplate->addGroup($checkbox, 'checkbox'.$id_liste, $label, "\n");
117
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
118
		$formtemplate->addGroupRule('checkbox'.$id_liste, $label.' obligatoire', 'required', null, 1, 'client');
119
	}
120
}
121
 
122
 
123
/** listedatedeb() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de début
124
*
125
* @param    mixed   L'objet QuickForm du formulaire
126
* @param    string  nom de la table dans la base de donnée
127
* @param    string  label à afficher dans le formulaire
128
* @param    string  première restriction de la taille des champs du formulaire
129
* @param    string  deuxième restriction de la taille des champs du formulaire
130
* @param    string  valeur par défaut du formulaire
131
* @param    string  table source pour les valeurs de la date
132
* @param    string  ce champs est il obligatoire? (required)
133
* @return   void
134
*/
135
function listedatedeb(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
136
	$optiondate = array('language' => BAZ_LANGUE_PAR_DEFAUT,
137
						'minYear' => date('Y')-4,
138
						'maxYear'=> (date('Y')+10),
139
						'format' => 'd m Y',
140
						'addEmptyOption' => BAZ_DATE_VIDE,
141
						);
142
	$formtemplate->addElement('date', $nom_bdd, $label, $optiondate) ;
143
	//gestion des valeurs par défaut (date du jour)
144
	if (isset($defaut) && $defaut!='') {
145
		$tableau_date = explode ('-', $defaut);
146
		$formtemplate->setDefaults(array($nom_bdd => array ('d'=> $tableau_date[2], 'm'=> $tableau_date[1], 'Y'=> $tableau_date[0])));
147
	}
148
 
149
	else {
150
		$defauts=array($nom_bdd => array ('d'=>date('d'), 'm'=>date('m'), 'Y'=>date('Y')));
151
		$formtemplate->setDefaults($defauts);
152
	}
153
	//gestion du champs obligatoire
154
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
155
		$formtemplate->addRule($nom_bdd, $label.' obligatoire', 'required', '', 'client') ;
156
	}
157
}
158
 
159
/** listedatefin() - Ajoute un élément de type date sous forme de liste au formulaire pour designer une date de fin
160
*
161
* @param    mixed   L'objet QuickForm du formulaire
162
* @param    string  nom de la table dans la base de donnée
163
* @param    string  label à afficher dans le formulaire
164
* @param    string  première restriction de la taille des champs du formulaire
165
* @param    string  deuxième restriction de la taille des champs du formulaire
166
* @param    string  valeur par défaut du formulaire
167
* @param    string  table source pour les valeurs de la date
168
* @param    string  ce champs est il obligatoire? (required)
169
* @return   void
170
*/
171
function listedatefin(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
172
	listedatedeb($formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche);
173
}
174
 
175
 
176
/** texte() - Ajoute un élément de type texte au formulaire
177
*
178
* @param    mixed   L'objet QuickForm du formulaire
179
* @param    string  nom de la table dans la base de donnée
180
* @param    string  label à afficher dans le formulaire
181
* @param    string  première restriction de la taille des champs du formulaire
182
* @param    string  deuxième restriction de la taille des champs du formulaire
183
* @param    string  valeur par défaut du formulaire
184
* @param    string  table source pour les valeurs du texte (inutile)
185
* @param    string  ce champs est il obligatoire? (required)
186
* @return   void
187
*/
188
function texte(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
189
	$option=array('size'=>$limite1,'maxlength'=>$limite2, 'id' => $nom_bdd);
190
	$formtemplate->addElement('text', $nom_bdd, $label, $option) ;
191
	//gestion des valeurs par défaut
192
	$defauts=array($nom_bdd=>$defaut);
193
	$formtemplate->setDefaults($defauts);
194
	$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
195
	//gestion du champs obligatoire
196
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
197
		$formtemplate->addRule($nom_bdd,  $label.' obligatoire', 'required', '', 'client') ;
198
	}
199
}
200
 
201
 
202
/** textelong() - Ajoute un élément de type textearea au formulaire
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  taille des colonnes de l'élément
208
* @param    string  taille des lignes de l'élément
209
* @param    string  valeur par défaut du formulaire
210
* @param    string  table source pour les valeurs du texte (inutile)
211
* @param    string  ce champs est il obligatoire? (required)
212
* @return   void
213
*/
214
function textelong(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
215
	$formtexte= new HTML_QuickForm_textarea($nom_bdd, $label, array('style'=>'white-space: normal;', 'id' => $nom_bdd));
216
	$formtexte->setCols($limite1);
217
	$formtexte->setRows($limite2);
218
	$formtemplate->addElement($formtexte) ;
219
	//gestion des valeurs par défaut
220
	$defauts=array($nom_bdd=>$defaut);
221
	$formtemplate->setDefaults($defauts);
222
	$formtemplate->applyFilter($nom_bdd, 'addslashes') ;
223
	//gestion du champs obligatoire
224
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
225
		$formtemplate->addRule($nom_bdd,  $label.' obligatoire', 'required', '', 'client') ;
226
	}
227
}
228
 
229
/** url() - Ajoute un élément de type url internet au formulaire
230
*
231
* @param    mixed   L'objet QuickForm du formulaire
232
* @param    string  numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
233
* @param    string  label à afficher dans le formulaire
234
* @param    string  taille des colonnes de l'élément
235
* @param    string  taille des lignes de l'élément
236
* @param    string  valeur par défaut du formulaire
237
* @param    string  table source pour les valeurs du texte (inutile)
238
* @param    string  ce champs est il obligatoire? (required)
239
* @return   void
240
*/
241
function url(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
242
	//recherche des URLs deja entrees dans la base
243
	$html_url= '';
244
	if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
245
		$requete = 'SELECT bu_id_url, bu_url, bu_descriptif_url FROM bazar_url WHERE bu_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
246
		$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
247
		if (DB::isError ($resultat)) {
248
			die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
249
		}
250
		if ($resultat->numRows()>0) {
251
			$html_url= '<tr>'."\n".'<td colspan="2">'."\n".'<strong>'.BAZ_LISTE_URL.'</strong>'."\n";
252
			$tableAttr = array("class" => "bazar_table") ;
253
			$table = new HTML_Table($tableAttr) ;
254
			$entete = array (BAZ_LIEN , BAZ_SUPPRIMER) ;
255
			$table->addRow($entete) ;
256
			$table->setRowType(0, "th") ;
257
 
258
			$lien_supprimer=$GLOBALS['ins_db'];
259
			$lien_supprimer->addQueryString('action', $_GET['action']);
260
			$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
261
			$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
262
 
263
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
264
				$lien_supprimer->addQueryString('id_url', $ligne->bu_id_url);
265
				$table->addRow (array(
266
				'<a href="'.$ligne->bu_url.'" target="_blank"> '.$ligne->bu_descriptif_url.'</a>', // col 1 : le lien
267
				'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_LIEN.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
268
				$lien_supprimer->removeQueryString('id_url');
269
			}
270
 
271
			// Nettoyage de l'url
272
			$lien_supprimer->removeQueryString('action');
273
			$lien_supprimer->removeQueryString('id_fiche');
274
			$lien_supprimer->removeQueryString('typeannonce');
275
 
276
			$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
277
			$table->updateColAttributes(1, array("align" => "center"));
278
			$html_url.= $table->toHTML()."\n".'</td>'."\n".'</tr>'."\n" ;
279
		}
280
	}
281
	$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
282
	$formtemplate->addElement('html', $html) ;
283
	if ($html_url!='') $formtemplate->addElement('html', $html_url) ;
284
	$formtemplate->addElement('text', 'url_lien'.$nom_bdd, BAZ_URL_LIEN) ;
285
	$formtemplate->addElement('text', 'url_texte'.$nom_bdd, BAZ_URL_TEXTE) ;
286
	//gestion du champs obligatoire
287
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
288
		$formtemplate->addRule('url_lien'.$nom_bdd, BAZ_URL_LIEN_REQUIS, 'required', '', 'client') ;
289
		$formtemplate->addRule('url_texte'.$nom_bdd, BAZ_URL_TEXTE_REQUIS, 'required', '', 'client') ;
290
	}
291
}
292
 
293
/** fichier() - Ajoute un élément de type fichier au formulaire
294
*
295
* @param    mixed   L'objet QuickForm du formulaire
296
* @param    string  numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
297
* @param    string  label à afficher dans le formulaire
298
* @param    string  taille des colonnes de l'élément
299
* @param    string  taille des lignes de l'élément
300
* @param    string  valeur par défaut du formulaire
301
* @param    string  table source pour les valeurs du texte (inutile)
302
* @param    string  ce champs est il obligatoire? (required)
303
* @return   void
304
*/
305
function fichier(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
306
	//AJOUTER DES FICHIERS JOINTS
307
	$html_fichier= '';
308
	if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
309
		$requete = 'SELECT * FROM bazar_fichier_joint WHERE bfj_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
310
		$resultat = & $GLOBALS['ins_db'] -> query($requete) ;
311
		if (DB::isError ($resultat)) {
312
			die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
313
		}
314
 
315
		if ($resultat->numRows()>0) {
316
			$html_fichier = '<tr>'."\n".'<td colspan="2">'."\n".'<strong>'.BAZ_LISTE_FICHIERS_JOINTS.'</strong>'."\n";
317
			$tableAttr = array("class" => "bazar_table") ;
318
			$table = new HTML_Table($tableAttr) ;
319
			$entete = array (BAZ_FICHIER , BAZ_SUPPRIMER) ;
320
			$table->addRow($entete) ;
321
			$table->setRowType(0, "th") ;
322
 
323
			$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
324
			$lien_supprimer->addQueryString('action', $_GET['action']);
325
			$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
326
			$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
327
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
328
				$lien_supprimer->addQueryString('id_fichier', $ligne->bfj_id_fichier);
329
				$table->addRow(array('<a href="client/bazar/upload/'.$ligne->bfj_fichier.'"> '.$ligne->bfj_description.'</a>', // col 1 : le fichier et sa description
330
									 '<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_FICHIER.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
331
				$lien_supprimer->removeQueryString('id_fichier');
332
			}
333
			$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
334
			$table->updateColAttributes(1, array("align" => "center"));
335
			$html_fichier .= $table->toHTML()."\n".'</td>'."\n".'</tr>'."\n" ;
336
		}
337
	}
338
	$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
339
	$formtemplate->addElement('html', $html) ;
340
	if ($html_fichier!='') $formtemplate->addElement('html', $html_fichier) ;
341
	$formtemplate->addElement('text', 'texte_fichier'.$nom_bdd, BAZ_FICHIER_DESCRIPTION) ;
342
	$formtemplate->addElement('file', 'fichier'.$nom_bdd, BAZ_FICHIER_JOINT) ;
343
	$formtemplate->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
344
	$formtemplate->setMaxFileSize($limite1);
345
	//gestion du champs obligatoire
346
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
347
		$formtemplate->addRule('texte_fichier'.$nom_bdd, BAZ_FICHIER_LABEL_REQUIS, 'required', '', 'client') ;
348
		$formtemplate->addRule('fichier'.$nom_bdd, BAZ_FICHIER_JOINT_REQUIS, 'required', '', 'client') ;
349
	}
350
}
351
 
352
/** image() - Ajoute un élément de type image au formulaire
353
*
354
* @param    mixed   L'objet QuickForm du formulaire
355
* @param    string  numero du champs input du formulaire (pour le différencier d'autres champs du meme type dans ce formulaire)
356
* @param    string  label à afficher dans le formulaire
357
* @param    string  taille maximum du fichier colonnes de l'élément
358
* @param    string  taille des lignes de l'élément
359
* @param    string  valeur par défaut du formulaire
360
* @param    string  table source pour les valeurs du texte (inutile)
361
* @param    string  ce champs est il obligatoire? (required)
362
* @return   void
363
*/
364
function image(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
365
	//AJOUTER UNE IMAGE
366
	$html_image= '';
367
	if (isset($GLOBALS['_BAZAR_']["id_fiche"])) {
368
		$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
369
		$resultat = & $GLOBALS['ins_db'] -> query($requete) ;
370
		if (DB::isError ($resultat)) {
371
			die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
372
		}
373
 
374
		if ($resultat->numRows()>0) {
375
			while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
376
				$image=$ligne->bf_url_image;
377
			}
378
			if ($image!=NULL) {
379
				$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
380
				$lien_supprimer->addQueryString('action', $_GET['action']);
381
				$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
382
				$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
383
				$lien_supprimer->addQueryString('image', 1);
384
				$html_image = '<tr>'."\n".
385
							  '<td>'."\n".'<img src="client/bazar/upload/'.$image.'" alt="'.BAZ_TEXTE_IMG_ALTERNATIF.'" width="130" height="130" />'."\n".'</td>'."\n".
386
							  '<td>'."\n".'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION_IMAGE.'\');" >'.BAZ_SUPPRIMER.'</a><br /><br />'."\n".
387
							  '<strong>'.BAZ_POUR_CHANGER_IMAGE.'</strong><br />'."\n".'</td>'."\n".'</tr>'."\n";
388
			}
389
		}
390
	}
391
	$html ='<tr>'."\n".'<td colspan="2">'."\n".'<h4>'.$label.'</h4>'."\n".'</td>'."\n".'</tr>'."\n";
392
	$formtemplate->addElement('html', $html) ;
393
	if ($html_image!='') $formtemplate->addElement('html', $html_image) ;
394
	$formtemplate->addElement('file', 'image', BAZ_IMAGE) ;
395
	//TODO: controler si c'est une image
396
	$formtemplate->setMaxFileSize($limite1);
397
	//gestion du champs obligatoire
398
	if (($dans_moteur_de_recherche==0) && isset($obligatoire) && ($obligatoire==1)) {
399
		$formtemplate->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, 'required', '', 'client') ;
400
	}
401
}
402
 
403
 
404
 
405
/** labelhtml() - Ajoute un élément de type textearea au formulaire
406
*
407
* @param    mixed   L'objet QuickForm du formulaire
408
* @param    string  nom de la table dans la base de donnée (pas utilisé)
409
* @param    string  label à afficher dans le formulaire
410
* @param    string  taille des colonnes de l'élément (pas utilisé)
411
* @param    string  taille des lignes de l'élément (pas utilisé)
412
* @param    string  valeur par défaut du formulaire (pas utilisé)
413
* @param    string  table source pour les valeurs du texte (pas utilisé)
414
* @param    string  ce champs est il obligatoire? (required) (pas utilisé)
415
* @return   void
416
*/
417
function labelhtml(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
418
	require_once PAP_CHEMIN_API_PEAR.'HTML/QuickForm/html.php';
419
	$formhtml= new HTML_QuickForm_html('<tr>'."\n".'<td colspan="2" style="text-align:left;">'."\n".$label."\n".'</td>'."\n".'</tr>'."\n");
420
	$formtemplate->addElement($formhtml) ;
421
}
422
 
423
/** carte_google() - Ajoute un élément de carte google au formulaire
424
*
425
* @param    mixed   L'objet QuickForm du formulaire
426
* @param    string  l url vers la script google
427
* @param    string  label à afficher dans le formulaire
428
* @param    string  première restriction de la taille des champs du formulaire
429
* @param    string  deuxième restriction de la taille des champs du formulaire
430
* @param    string  valeur par défaut du formulaire
431
* @param    string  table source pour les valeurs de la liste
432
* @param    string  ce champs est il obligatoire? (required)
433
* @param    boolean sommes nous dans le moteur de recherche?
434
* @return   void
435
*/
436
function carte_google(&$formtemplate, $url_google_script , $label, $limite1, $limite2, $defaut, $source, $obligatoire, $dans_moteur_de_recherche=0) {
437
 
438
	if (is_array ($defaut)) {
439
    	$formtemplate->setDefaults(array('latitude' => $defaut['latitude'], 'longitude' => $defaut['longitude']));
440
    }
441
 
442
	GEN_stockerFichierScript('googleMapScript', $url_google_script);
443
 
444
	$formtemplate->addElement('button', 'chercher_sur_carte', 'Vérifier mon adresse avec la carte', array("onclick" => "showAddress();"));
445
    $formtemplate->addElement('text', 'latitude', 'Latitude', array('id' => 'latitude', 'size' => 6, 'readonly' => 'readonly'));
446
    $formtemplate->addElement('text', 'longitude', 'longitude', array('id' => 'longitude', 'size' => 6, 'readonly' => 'readonly'));
447
    $formtemplate->addElement('html', '<tr><td colspan="2"	><div id="map" style="width: 600px; height: 450px"></div></td></tr>');
448
 
449
    include_once BAZ_CHEMIN_APPLI.'bibliotheque/bazar.fonct.google.php';
450
    GEN_stockerCodeScript($script);
451
}
452
 
1467 alexandre_ 453
 
454
/** valeur_template() - Renvoi des valeurs inscrite dans le fichier de template
455
*
456
* @param   string valeur du template de bazar_nature
457
*
458
* @return   mixed  tableau contenant les champs du fichier template
459
*/
460
function ins_valeurs_template($valeur_template) {
461
	//Parcours du fichier de templates, pour mettre les champs specifiques
462
	$tableau= array();
463
	$nblignes=0;
464
	$chaine = explode ("\n", $valeur_template);
465
	array_pop($chaine);
466
	foreach ($chaine as $ligne)  {
467
		$souschaine = explode ("***", $ligne) ;
468
		$tableau[$nblignes]['type'] = trim($souschaine[0]) ;
469
		if (isset($souschaine[1])) {$tableau[$nblignes]['nom_bdd'] = trim($souschaine[1]);}
470
		else {$tableau[$nblignes]['nom_bdd'] ='';}
471
		if (isset($souschaine[2])) $tableau[$nblignes]['label'] = trim($souschaine[2]);
472
		else {$tableau[$nblignes]['label'] ='';}
473
		if (isset($souschaine[3])) $tableau[$nblignes]['limite1'] = trim($souschaine[3]);
474
		else {$tableau[$nblignes]['limite1'] ='';}
475
		if (isset($souschaine[4])) $tableau[$nblignes]['limite2'] = trim($souschaine[4]);
476
		else {$tableau[$nblignes]['limite2'] ='';}
477
		if (isset($souschaine[5])) $tableau[$nblignes]['defaut'] = trim($souschaine[5]);
478
		else {$tableau[$nblignes]['defaut'] ='';}
479
		if (isset($souschaine[6])) $tableau[$nblignes]['table_source'] = trim($souschaine[6]);
480
		else {$tableau[$nblignes]['table_source'] ='';}
481
		if (isset($souschaine[7])) $tableau[$nblignes]['id_source'] = trim($souschaine[7]);
482
		else {$tableau[$nblignes]['id_source'] ='';}
483
		if (isset($souschaine[8])) $tableau[$nblignes]['obligatoire'] = trim($souschaine[8]);
484
		else {$tableau[$nblignes]['obligatoire'] ='';}
485
		if (isset($souschaine[9])) $tableau[$nblignes]['recherche'] = trim($souschaine[9]);
486
		else {$tableau[$nblignes]['recherche'] ='';}
487
 
488
 
489
		// traitement des cases a cocher, dans ce cas la, on a une table de jointure entre la table
490
		// de liste et la table bazar_fiche (elle porte un nom du genre bazar_ont_***)
491
		// dans le template, a la place d'un nom de champs dans 'nom_bdd', on a un nom de table
492
		// et 2 noms de champs separes par un virgule ex : bazar_ont_theme,bot_id_theme,bot_id_fiche
493
 
494
		if (isset($tableau[$nblignes]['nom_bdd']) && preg_match('/,/', $tableau[$nblignes]['nom_bdd'])) {
495
			$tableau_info_jointe = explode (',', $tableau[$nblignes]['nom_bdd']) ;
496
			$tableau[$nblignes]['table_jointe'] = $tableau_info_jointe[0] ;
497
			$tableau[$nblignes]['champs_id_fiche'] = $tableau_info_jointe[1] ;
498
			$tableau[$nblignes]['champs_id_table_jointe'] = $tableau_info_jointe[2] ;
499
		}
500
		$nblignes++;
501
	}
502
	return $tableau;
503
}
1450 alexandre_ 504
/* +--Fin du code ----------------------------------------------------------------------------------------+
505
*
506
* $Log: not supported by cvs2svn $
1467 alexandre_ 507
* Revision 1.1  2007-06-06 10:12:40  alexandre_tb
508
* en cours: objectif mettre en place un système de template comme bazar
1450 alexandre_ 509
*
1467 alexandre_ 510
*
1450 alexandre_ 511
* +-- Fin du code ----------------------------------------------------------------------------------------+
512
*/
513
?>