Subversion Repositories Applications.papyrus

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
266 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
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: bazar.fonct.php,v 1.1.1.1 2005-02-17 18:05:11 florian Exp $
23
/**
24
*
25
* Fonctions du module bazar
26
*
27
*@package bazar
28
//Auteur original :
29
*@author        Alexandre Granier <alexandre@tela-botanica.org>
30
*@author        Florian Schmitt <florian@ecole-et-nature.org>
31
//Autres auteurs :
32
*@copyright     Tela-Botanica 2000-2004
33
*@version       $Revision: 1.1.1.1 $ $Date: 2005-02-17 18:05:11 $
34
// +------------------------------------------------------------------------------------------------------+
35
*/
36
 
37
// +------------------------------------------------------------------------------------------------------+
38
// |                                            ENTETE du PROGRAMME                                       |
39
// +------------------------------------------------------------------------------------------------------+
40
 
41
require_once 'HTML/QuickForm.php' ;
42
require_once 'HTML/QuickForm/checkbox.php' ;
43
require_once 'HTML/QuickForm/textarea.php' ;
44
require_once 'HTML/Table.php' ;
45
require_once 'bazar.fonct.formulaire.php';
46
require_once 'bazar.fonct.rss.php';
47
 
48
// +------------------------------------------------------------------------------------------------------+
49
// |                                           LISTE de FONCTIONS                                         |
50
// +------------------------------------------------------------------------------------------------------+
51
 
52
/** niveau_droit() - Retourne le niveau de droit de l'utilisateur
53
*
54
* @param   integer Id de la nature d'offre pour connaitre les droits sur une rubrique
55
* @param   integer Id de la personne (par défaut la personne logguée)
56
*
57
* @return   string Retourne 'redacteur', 'administrateur', 'superadministrateur', ou 'aucun'
58
*/
59
function niveau_droit($id_nature_offre='0', $personne) {
60
	$requete = "select bd_niveau_droit FROM bazar_droits WHERE bd_id_utilisateur=".$personne.
61
	           " AND (bd_id_nature_offre=$id_nature_offre OR bd_id_nature_offre=0)";
62
	$resultat = $GLOBALS['_BAZAR_']['db']->query ($requete) ;
63
	if (DB::isError($resultat)) {
64
		die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
65
	}
66
	if ($resultat->numRows() != 0) {
67
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
68
			if ($ligne['bd_niveau_droit']==0) return 'superadministrateur';
69
			if ($ligne['bd_niveau_droit']==1) return 'redacteur';
70
			if ($ligne['bd_niveau_droit']==2) return 'administrateur';
71
		}
72
	}
73
	else return 'aucun';
74
}
75
 
76
 
77
/** accueil () - Renvoie la premiere page contenant les annonces déposees par l'utilisateur
78
*
79
* @return   string  HTML
80
*/
81
function accueil() {
82
	$res='<h2>'.BAZ_BIENVENUE.'</h2>'."\n" ;
83
	$res.=BAZ_PRESENTATION.'<br />'."\n";
84
 
85
	return $res ;
86
}
87
 
88
 
89
/** fiches_a_valider () - Renvoie les annonces restant à valider par un administrateur
90
*
91
* @return   string  HTML
92
*/
93
function fiches_a_valider() {
94
	// Pour les administrateurs d'une rubrique, on affiche les fiches a valider de cette rubrique
95
	// On effectue une requete sur le bazar pour voir les fiches a administrer
96
	$res= '<h2>'.BAZ_ANNONCES_A_ADMINISTRER.'</h2>';
97
	$requete = 'SELECT * FROM bazar_fiche, bazar_nature WHERE bf_statut_fiche=0 AND bn_id_nature=bf_ce_nature ORDER BY bf_date_maj_fiche DESC' ;
98
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
99
	if (DB::isError($resultat)) {
100
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
101
	}
102
	if ($resultat->numRows() != 0) {
103
		$tableAttr = array("id" => "table_bazar") ;
104
		$table = new HTML_Table($tableAttr) ;
105
		$entete = array (BAZ_TITREANNONCE ,BAZ_ANNONCEUR, BAZ_TYPEANNONCE, BAZ_PUBLIER, BAZ_SUPPRIMER) ;
106
		$table->addRow($entete) ;
107
		$table->setRowType (0, "th") ;
108
 
109
		// On affiche une ligne par proposition
110
		while ($ligne = $resultat->fetchRow (DB_FETCHMODE_ASSOC)) {
111
			//Requete pour trouver le nom et prénom de l'annonceur
112
			$requetenomprenom = "select ga_prenom, ga_nom from ".BAZ_ANNUAIRE." where ga_id_utilisateur=".$ligne["bf_ce_utilisateur"] ;
113
			$resultatnomprenom = $GLOBALS['_BAZAR_']['db']->query ($requetenomprenom) ;
114
			if (DB::isError($resultatnomprenom)) {
115
				die ("Echec de la requete<br />".$resultatnomprenom->getMessage()."<br />".$resultatnomprenom->getDebugInfo()) ;
116
			}
117
			while ($lignenomprenom = $resultatnomprenom->fetchRow (DB_FETCHMODE_ASSOC)) {
118
				$annonceur=$lignenomprenom['ga_prenom']." ".$lignenomprenom['ga_nom'];
119
			}
120
			$lien_voir=$GLOBALS['_BAZAR_']['url'];
121
			$lien_voir->addQueryString('action', BAZ_VOIR_FICHE);
122
			$lien_voir->addQueryString('id_fiche', $ligne['bf_id_fiche']);
123
			$lien_voir->addQueryString('typeannonce', $ligne['bn_label_nature']);
124
 
125
			$lien_publie_oui=$GLOBALS['_BAZAR_']['url'];
126
			$lien_publie_oui->addQueryString('action', BAZ_ACTION_PUBLIER);
127
			$lien_publie_oui->addQueryString('id_fiche', $ligne['bf_id_fiche']);
128
			$lien_publie_oui->addQueryString('typeannonce', $ligne['bn_label_nature']);
129
 
130
			$lien_publie_non=$GLOBALS['_BAZAR_']['url'];
131
			$lien_publie_non->addQueryString('action', BAZ_ACTION_PAS_PUBLIER);
132
			$lien_publie_non->addQueryString('id_fiche', $ligne['bf_id_fiche']);
133
			$lien_publie_non->addQueryString('typeannonce', $ligne['bn_label_nature']);
134
 
135
			$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
136
			$lien_supprimer->addQueryString('action', BAZ_ACTION_SUPPRESSION);
137
			$lien_supprimer->addQueryString('id_fiche', $ligne['bf_id_fiche']);
138
			$lien_supprimer->addQueryString('typeannonce', $ligne['bn_label_nature']);
139
 
140
			$table->addRow (array(
141
			                '<a href="'.$lien_voir->getURL().'">'.$ligne['bf_titre'].'</a>'."\n", // col 1 : le nom
142
					$annonceur."\n", // col 2 : annonceur
143
					$ligne['bn_label_nature']."\n", // col 3 : type annonce
144
					"<a href=\"".$lien_publie_oui->getURL()."\">".BAZ_OUI."</a> / \n".
145
					"<a href=\"".$lien_publie_non->getURL()."\">".BAZ_NON."</a>", // col 4 : publier ou pas
146
					"<a href=\"".$lien_supprimer->getURL()."\"".
147
					" onclick=\"javascript:return confirm('".BAZ_CONFIRMATION_SUPPRESSION."');\">".BAZ_SUPPRIMER."</a>\n")) ; // col 5 : supprimer
148
					$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
149
					$table->updateColAttributes(1, array("align" => "center"));
150
					$table->updateColAttributes(2, array("align" => "center"));
151
					$table->updateColAttributes(3, array("align" => "center"));
152
					$table->updateColAttributes(4, array("align" => "center"));
153
					$res .= $table->toHTML() ;
154
		}
155
	}
156
	else {
157
		$res .= BAZ_PAS_DE_FICHE_A_VALIDER ;
158
	}
159
 
160
	return $res;
161
}
162
 
163
 
164
/** mes_fiches () - Renvoie les fiches bazar d'un utilisateur
165
*
166
* @return   string  HTML
167
*/
168
function mes_fiches() {
169
	$res= '<h2>'.BAZ_VOS_ANNONCES.'</h2>'."\n";
170
	// requête pour voir si l'utilisateur a des fiches à son nom, classées par date de MAJ et nature d'annonce
171
	$requete = 'SELECT * FROM bazar_fiche, bazar_nature WHERE bf_ce_utilisateur='. $GLOBALS['id_user'].
172
	           ' AND bn_id_nature=bf_ce_nature ORDER BY bf_date_maj_fiche DESC,bf_ce_nature ASC';
173
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
174
	if (DB::isError($resultat)) {
175
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
176
	}
177
	if ($resultat->numRows() != 0) {
178
		$tableAttr = array('id' => 'table_bazar') ;
179
		$table = new HTML_Table($tableAttr) ;
180
		$entete = array (BAZ_TITREANNONCE , BAZ_TYPEANNONCE, BAZ_ETATPUBLICATION, BAZ_MODIFIER, BAZ_SUPPRIMER) ;
181
		$table->addRow($entete) ;
182
		$table->setRowType (0, "th") ;
183
 
184
		// On affiche une ligne par proposition
185
		while ($ligne = $resultat->fetchRow (DB_FETCHMODE_ASSOC)) {
186
			if ($ligne['bf_statut_fiche']==1) $publiee=BAZ_PUBLIEE;
187
			elseif ($ligne['bf_statut_fiche']==0) $publiee=BAZ_ENCOURSDEVALIDATION;
188
			else $publiee=BAZ_REJETEE;
189
 
190
			$lien_voir=$GLOBALS['_BAZAR_']['url'];
191
			$lien_voir->addQueryString('action', BAZ_VOIR_FICHE);
192
			$lien_voir->addQueryString('id_fiche', $ligne['bf_id_fiche']);
193
			$lien_voir->addQueryString('typeannonce', $ligne['bn_label_nature']);
194
 
195
			$lien_modifier=$GLOBALS['_BAZAR_']['url'];
196
			$lien_modifier->addQueryString('action', BAZ_ACTION_MODIFIER);
197
			$lien_modifier->addQueryString('id_fiche', $ligne['bf_id_fiche']);
198
			$lien_modifier->addQueryString('typeannonce', $ligne['bn_label_nature']);
199
 
200
			$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
201
			$lien_supprimer->addQueryString('action', BAZ_ACTION_SUPPRESSION);
202
			$lien_supprimer->addQueryString('id_fiche', $ligne['bf_id_fiche']);
203
			$lien_supprimer->addQueryString('typeannonce', $ligne['bn_label_nature']);
204
 
205
			$table->addRow (array(
206
			                '<a href="'.$lien_voir->getURL().'">'.$ligne['bf_titre'].'</a>'."\n", // col 1 : le nom
207
					$ligne['bn_label_nature']."\n", // col 2: type annonce
208
					$publiee."\n", // col 3 : publiee ou non
209
					'<a href="'.$lien_modifier->getURL().'">'.BAZ_MODIFIER.'</a>'."\n", // col 4 : modifier
210
					'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return
211
					 confirm('.BAZ_CONFIRMATION_SUPPRESSION.');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 5 : supprimer
212
		}
213
		$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
214
		$table->updateColAttributes(1, array("align" => "center"));
215
		$table->updateColAttributes(2, array("align" => "center"));
216
		$table->updateColAttributes(3, array("align" => "center"));
217
		$table->updateColAttributes(4, array("align" => "center"));
218
		$res .= $table->toHTML() ;
219
	}
220
	else {
221
		$res .= BAZ_PAS_DE_FICHE ;
222
	}
223
	return $res;
224
}
225
 
226
 
227
/** baz_administrer_annonces() interface de modification de type d'annonces
228
*
229
*   return  string le code HTML
230
*/
231
function baz_administrer_annonces() {
232
	$res= '<h2>'.BAZ_ADMIN_ANNONCES.'</h2>'."\n";
233
	return $res;
234
}
235
 
236
 
237
/** baz_afficher_formulaire_annonce() - Genère le formulaire de saisie d'une annonce
238
*
239
* @param   string type de formulaire: insertion ou modification
240
* @param   mixed objet quickform du formulaire
241
*
242
* @return   string  code HTML avec formulaire
243
*/
244
function baz_afficher_formulaire_annonce($mode='insertion',$formtemplate) {
245
	//initialisation de la variable globale id_fiche
246
	if ($mode=='insertion') $GLOBALS['_BAZAR_']['id_fiche'] = baz_nextId('bazar_fiche', 'bf_id_fiche', $GLOBALS['_BAZAR_']['db']) ;
247
	else $GLOBALS['_BAZAR_']['id_fiche'] = $_GET['id_fiche'];
248
 
249
	//vérification de la modification des fichiers, des url ou des images
250
	if (isset($_GET['url'])) {
251
		if ($_GET['url']==1) baz_insertion_url($_POST['url_lien'],$_POST['url_texte'],$GLOBALS['_BAZAR_']['id_fiche']);
252
		if ($_GET['url']==2) baz_suppression_url($_GET['id_url']);
253
	}
254
	if (isset($_GET['fichier'])) {
255
		if ($_GET['fichier']==1) baz_insertion_fichier($_POST['fichier_label'], $_POST['fichier_description'], $GLOBALS['_BAZAR_']["id_fiche"]);
256
		if ($_GET['fichier']==2) baz_suppression_fichier($_GET['id_fichier']);
257
	}
258
	if (isset($_GET['image'])) {
259
		if ($_GET['image']==1) baz_insertion_image($GLOBALS['_BAZAR_']['id_fiche']);
260
		if ($_GET['image']==2) baz_suppression_image($GLOBALS['_BAZAR_']['id_fiche']);
261
	}
262
 
263
 
264
	$res= '<h2>'.BAZ_TITRE_SAISIE_ANNONCE.$GLOBALS['_BAZAR_']['typeannonce'].'</h2>';
265
	$html='<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_AJOUTER_CHAMPS_DE_BASE.'</h3>'."\n";
266
	$formtemplate->addElement('html', $html) ;
267
 
268
	//pour saisir le titre de l'annonce
269
	$option=array('size'=>47,'maxlength'=>80);
270
	$formtemplate->addElement('text', 'titre', BAZ_TITRE, $option) ;
271
	$formtemplate->addRule('titre', BAZ_TITRE_REQUIS, 'required', '', 'client') ;
272
 
273
	//pour saisir le descriptif de l'annonce
274
	$descriptif= new HTML_QuickForm_textarea('description', BAZ_DESCRIPTION);
275
	$descriptif->setCols(40);
276
	$descriptif->setRows(10);
277
	$formtemplate->addElement($descriptif) ;
278
 
279
	//pour saisir les dates
280
	$optiondate=array('language' => BAZ_LANGUE_PAR_DEFAUT,'minYear' => date('Y'),'maxYear'=> (date('Y')+10), 'format' => 'd m Y');
281
	$formtemplate->addElement('date', 'datedebvalid', BAZ_DATEDEBVALID, $optiondate) ;//Date de début de parution de l'annonce
282
	$formtemplate->addElement('date', 'datefinvalid', BAZ_DATEFINVALID, $optiondate) ;//Date de fin de parution de l'annonce
283
	//gestion des valeurs par défaut (date du jour)
284
	$defauts=array('datedebvalid' => array ('d'=>date('d'), 'm'=>date('m'), 'Y'=>date('Y')),
285
	               'datefinvalid' => array ('d'=>date('d'), 'm'=>date('m'), 'Y'=>date('Y')));
286
	$formtemplate->setDefaults($defauts);
287
 
288
	//Parcours du fichier de templates, pour mettre les champs spécifiques
289
	$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
290
	for ($i=0; $i<count($tableau); $i++) {
291
		$tableau[$i]['type']($formtemplate, $tableau[$i]['nom_bdd'], $tableau[$i]['label'], $tableau[$i]['limite1'],
292
		                     $tableau[$i]['limite2'], $tableau[$i]['defaut'], $tableau[$i]['table_source'], $tableau[$i]['obligatoire']) ;
293
	}
294
 
295
	$bouton[] = &HTML_QuickForm::createElement('submit', 'valider', BAZ_VALIDER);
296
 
297
	//AJOUTER UNE IMAGE
298
	$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
299
	$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER);
300
	$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
301
	$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
302
	$lien_formulaire->addQueryString('image', '1');
303
 
304
	$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
305
	$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
306
	if (DB::isError ($resultat)) {
307
		die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
308
	}
309
 
310
	if ($resultat->numRows()>0) {
311
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
312
			$image=$ligne->bf_url_image;
313
		}
314
		if ($image!=NULL) {
315
			$html='<tr><td colspan="2" width="600px"><hr /><img src="images/'.$image.'" border=0 alt="'.BAZ_TEXTE_IMG_ALTERNATIF.'" />'."\n";
316
			$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
317
			$lien_supprimer->addQueryString('action', $_GET['action']);
318
			$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
319
			$lien_supprimer->addQueryString('typeannonce', $_GET['typeannonce']);
320
			$lien_supprimer->addQueryString('image', '2');
321
			$html.= '<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a></td></tr>'."\n";
322
			$formimage = new HTML_QuickForm('formulaire', 'post', $lien_formulaire->getURL()) ;
323
			$formimage->addElement('html', $html) ;
324
		}
325
		else  {
326
			$formimage = new HTML_QuickForm('formulaire', 'post', $lien_formulaire->getURL()) ;
327
			$formimage->addElement('html', '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_AJOUTER_IMAGE.'</h3></td></tr>') ;
328
			$formimage->addElement('file', 'image', BAZ_IMAGE) ;
329
			$formimage->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
330
			$formimage->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
331
			$formimage->addGroup($bouton, null, null, '');
332
		}
333
	}
334
	else {
335
		$formimage = new HTML_QuickForm('formulaire', 'post', $lien_formulaire->getURL()) ;
336
		$formimage->addElement('html', '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_AJOUTER_IMAGE.'</h3></td></tr>') ;
337
		$formimage->addElement('file', 'image', BAZ_IMAGE) ;
338
		$formimage->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
339
		$formimage->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
340
		$formimage->addGroup($bouton, null, null, '');
341
	}
342
 
343
	//AJOUTER DES URL
344
	//recherche des URLs déjà entrées dans la base
345
	$requete = 'SELECT bu_id_url, bu_url, bu_descriptif_url FROM bazar_url WHERE bu_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
346
	$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
347
	if (DB::isError ($resultat)) {
348
		die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
349
	}
350
	if ($resultat->numRows()>0) {
351
		$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_LISTE_URL.'</h3>'."\n";
352
		$tableAttr = array("id" => "table_bazar") ;
353
		$table = new HTML_Table($tableAttr) ;
354
		$entete = array (BAZ_LIEN , BAZ_SUPPRIMER) ;
355
		$table->addRow($entete) ;
356
		$table->setRowType(0, "th") ;
357
 
358
		$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
359
		$lien_supprimer->addQueryString('action', $_GET['action']);
360
		$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
361
		$lien_supprimer->addQueryString('typeannonce', $_GET['typeannonce']);
362
		$lien_supprimer->addQueryString('url', '2');
363
 
364
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
365
			$lien_supprimer->addQueryString('id_url', $ligne->bu_id_url);
366
			$table->addRow (array(
367
				        '<a href="'.$ligne->bu_url.'" target="_blank"> '.$ligne->bu_descriptif_url.'</a>', // col 1 : le lien
368
					'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
369
			$lien_supprimer->removeQueryString('id_url');
370
		}
371
		$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
372
		$table->updateColAttributes(1, array("align" => "center"));
373
		$html.= $table->toHTML().'</td></tr>' ;
374
	}
375
	else {
376
		$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_PAS_URL.'</h3></td></tr>'."\n";
377
	}
378
	$html.='<tr><td colspan="2" width="600px"><h4>'.BAZ_AJOUTER_URL.'</h4>'."\n";
379
	$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
380
	$lien_formulaire->addQueryString('action', $_GET['action']);
381
	$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
382
	$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
383
	$lien_formulaire->addQueryString('url', '1');
384
	$formurl = new HTML_QuickForm('formulaire', 'post', $lien_formulaire->getURL()) ;
385
	$formurl->addElement('html', $html) ;
386
	$formurl->addElement('text', 'url_lien', BAZ_URL_LIEN) ;
387
	$formurl->addElement('text', 'url_texte', BAZ_URL_TEXTE) ;
388
	$formurl->addRule('url_lien', BAZ_URL_LIEN_REQUIS, 'required', '', 'client') ;
389
	$formurl->addRule('url_texte', BAZ_URL_TEXTE_REQUIS, 'required', '', 'client') ;
390
 
391
	//AJOUTER DES FICHIERS JOINTS
392
	$requete = 'SELECT * FROM bazar_fichier_joint WHERE bfj_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
393
	$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
394
	if (DB::isError ($resultat)) {
395
		die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
396
	}
397
	if ($resultat->numRows()>0) {
398
		$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_LISTE_FICHIERS_JOINTS.'</h3>'."\n";
399
		$tableAttr = array("id" => "table_bazar") ;
400
		$table = new HTML_Table($tableAttr) ;
401
		$entete = array (BAZ_FICHIER , BAZ_SUPPRIMER) ;
402
		$table->addRow($entete) ;
403
		$table->setRowType(0, "th") ;
404
 
405
		$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
406
		$lien_supprimer->addQueryString('action', $_GET['action']);
407
		$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
408
		$lien_supprimer->addQueryString('typeannonce', $_GET['typeannonce']);
409
		$lien_supprimer->addQueryString('fichier', '2');
410
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
411
			$lien_supprimer->addQueryString('id_fichier', $ligne->bfj_id_fichier);
412
			$table->addRow (array(
413
				        '<a href="upload/'.$ligne->bfj_fichier.'"> '.$ligne->bfj_label_lien.'</a> :<br />'.$ligne->bfj_description, // col 1 : le fichier et sa description
414
					'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
415
			$lien_supprimer->removeQueryString('id_fichier');
416
		}
417
		$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
418
		$table->updateColAttributes(1, array("align" => "center"));
419
		$html.= $table->toHTML().'</td></tr>' ;
420
	}
421
	else {
422
		$html= '<tr><td colspan="2"><hr /><h3>'.BAZ_PAS_DE_FICHIERS_JOINTS.'</h3></td></tr>'."\n";
423
	}
424
	$html.='<tr><td colspan="2" width="600px"><h4>'.BAZ_AJOUTER_FICHIER_JOINT.'</h4>'.'</td></tr>'."\n";
425
	$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
426
	$lien_formulaire->addQueryString('action', $_GET['action']);
427
	$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
428
	$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
429
	$lien_formulaire->addQueryString('fichier', '1');
430
	$formfichiers = new HTML_QuickForm('formulaire', 'post', $lien_formulaire->getURL()) ;
431
	$formfichiers->addElement('html', $html) ;
432
	$formfichiers->addElement('file', 'fichier_joint', BAZ_FICHIER_JOINT) ;
433
	$formfichiers->addElement('text', 'fichier_label', BAZ_FICHIER_LABEL) ;
434
	$formfichiers->addElement('text', 'fichier_description', BAZ_FICHIER_DESCRIPTION) ;
435
	$formfichiers->addRule('fichier_joint', BAZ_FICHIER_JOINT_REQUIS, 'required', '', 'client') ;
436
	$formfichiers->addRule('fichier_label', BAZ_FICHIER_TEXTE_REQUIS, 'required', '', 'client') ;
437
	$formfichiers->addRule('fichier_description', BAZ_FICHIER_LABEL_REQUIS, 'required', '', 'client') ;
438
	$formfichiers->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
439
 
440
 
441
	//Bouton de validation du formulaire
442
	$formtemplate->addGroup($bouton, null, null, '');
443
	$formurl->addGroup($bouton, null, null, '');
444
	$formfichiers->addGroup($bouton, null, null, '');
445
 
446
	//Ajout des valeurs par défauts, dans le cas d'une modification d'une fiche
447
	if ($mode=='modification') {$formtemplate->setDefaults(baz_valeurs_fiche($GLOBALS['_BAZAR_']['id_fiche'])) ;}
448
 
449
	//Ajout de 'http://' comme valeur par default d'une url
450
	$formurl->setDefaults(array('url_lien'=>'http://'));
451
 
452
	//Affichage à l'écran
453
	$res.= $formtemplate->toHTML()."\n".$formimage->toHTML()."\n".$formurl->toHTML()."\n".$formfichiers->toHTML()."\n";
454
 
455
	return $res;
456
}
457
 
458
 
459
/** baz_formulaire() - Renvoie le menu pour les saisies et modification des annonces
460
*
461
* @param   string choix du formulaire à afficher (soit formulaire personnalisé de l'annonce, soit choix du type d'annonce)
462
*
463
* @return   string  HTML
464
*/
465
function baz_formulaire($mode = 'inscription') {
466
	//Récuperer les éventuelles variables passées en GET ou en POST
467
	if (isset($_GET['id_fiche'])) $GLOBALS['_BAZAR_']['id_fiche']=$_GET['id_fiche'];
468
	if (isset($_GET['typeannonce'])) $GLOBALS['_BAZAR_']['typeannonce']=$_GET['typeannonce'];
469
	if (isset($_POST['typeannonce'])) {$GLOBALS['_BAZAR_']['typeannonce']=$_POST["typeannonce"]; }
470
	//requete pour obtenir l'id du type d'annonce
471
        if (isset($GLOBALS['_BAZAR_']['typeannonce'])) {
472
		$requete = 'SELECT bn_id_nature FROM bazar_nature WHERE bn_label_nature="'.$GLOBALS['_BAZAR_']['typeannonce'].'"' ;
473
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
474
		if (DB::isError($resultat)) {
475
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
476
		}
477
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
478
			$GLOBALS['_BAZAR_']['id_typeannonce']=$ligne['bn_id_nature'];
479
		}
480
	}
481
 
482
	$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
483
	//Définir le lien du formulaire en fonction du mode de formulaire choisi
484
	if ($mode == 'inscription') $lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU_V);
485
	if ($mode == BAZ_DEPOSER_ANNONCE) $lien_formulaire->addQueryString('action', BAZ_DEPOSER_ANNONCE);
486
	if ($mode == BAZ_ACTION_NOUVEAU) $lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU_V);
487
	if ($mode == BAZ_ACTION_MODIFIER) {
488
		$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER_V);
489
		$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
490
	}
491
	if ($mode == BAZ_ACTION_MODIFIER_V) {
492
		$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER_V);
493
		$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
494
	}
495
	if (!isset($GLOBALS['_BAZAR_']['typeannonce'])) $lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU);
496
	else $lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
497
	if ($mode == BAZ_GERER_DROITS) $lien_formulaire->addQueryString('action', BAZ_GERER_DROITS);
498
 
499
	$formtemplate = new HTML_QuickForm('formulaire', 'post', $lien_formulaire->getURL()) ;
500
 
501
	//------------------------------------------------------------------------------------------------
502
	//AFFICHAGE DU FORMULAIRE GENERAL DE CHOIX DU TYPE D'ANNONCE
503
	//------------------------------------------------------------------------------------------------
504
	if ($mode == BAZ_DEPOSER_ANNONCE) {
505
		$res = '';
506
 
507
		//requete pour obtenir le nom et la description des types d'annonce
508
		$requete = "SELECT bn_id_nature, bn_label_nature, bn_description, bn_condition FROM bazar_nature ORDER BY bn_label_nature ASC";
509
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
510
		if (DB::isError($resultat)) {
511
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
512
		}
513
		$res.="<h2>".BAZ_DEPOSE_UNE_NOUVELLE_ANNONCE.'</h2>'."\n";
514
		$res.=BAZ_CHOIX_TYPEANNONCE.'<br />';
515
		while ($ligne = $resultat->fetchRow (DB_FETCHMODE_ASSOC)) {
516
			$droitspers=niveau_droit($ligne["bn_id_nature"],$GLOBALS["id_user"]);
517
			if (($droitspers=='redacteur') or ($droitspers=='administrateur') or ($droitspers=='superadministrateur')) {
518
				$radio[] = &HTML_QuickForm::createElement('radio', 'typeannonce', '', '<b>'.$ligne['bn_label_nature'].
519
				           ':</b><br />'.$ligne['bn_description'].'<br />', $ligne['bn_label_nature'], array("id" => "select"));
520
			}
521
 
522
		}
523
		$formtemplate->addGroup($radio, null, null, '');
524
 
525
		//Mettre les annonces en choix par défaut
526
		$formtemplate->setdefaults(array('typeannonce'=>'Annonces'));
527
 
528
		//Bouton de validation du formulaire
529
		$bouton[] = &HTML_QuickForm::createElement('submit', 'valider', BAZ_VALIDER);
530
		$formtemplate->addGroup($bouton, null, null, '');
531
 
532
		//Affichage à l'écran
533
		$res.= $formtemplate->toHTML() ;
534
	}
535
 
536
	//------------------------------------------------------------------------------------------------
537
	//AFFICHAGE DU FORMULAIRE CORRESPONDANT AU TYPE DE L'ANNONCE CHOISI PAR L'UTILISATEUR
538
	//------------------------------------------------------------------------------------------------
539
	if ($mode == BAZ_ACTION_NOUVEAU) {
540
		$res=baz_afficher_formulaire_annonce('insertion',$formtemplate);
541
	}
542
 
543
	//------------------------------------------------------------------------------------------------
544
	//CAS DE LA MODIFICATION D'UNE ANNONCE (FORMULAIRE DE MODIFICATION)
545
	//------------------------------------------------------------------------------------------------
546
	if ($mode == BAZ_ACTION_MODIFIER) {
547
		$res=baz_afficher_formulaire_annonce('modification',$formtemplate);
548
	}
549
 
550
	//------------------------------------------------------------------------------------------------
551
	//CAS DE L'INSCRIPTION D'UNE ANNONCE
552
	//------------------------------------------------------------------------------------------------
553
	if ($mode == 'inscription') {
554
		if ($formtemplate->validate()) {
555
			$formtemplate->process('baz_insertion', false) ;
556
			return;
557
		}
558
	}
559
 
560
	//------------------------------------------------------------------------------------------------
561
	//CAS DE LA MODIFICATION D'UNE ANNONCE (VALIDATION ET MAJ)
562
	//------------------------------------------------------------------------------------------------
563
	if ($mode == BAZ_ACTION_MODIFIER_V) {
564
		if ($formtemplate->validate()) {
565
			$formtemplate->process('baz_mise_a_jour', false) ;
566
			return ;
567
		}
568
	}
569
 
570
	//------------------------------------------------------------------------------------------------
571
	//CAS OU LE FORMULAIRE DE GESTION DES DROITS EST APPELE
572
	//------------------------------------------------------------------------------------------------
573
	if ($mode == BAZ_GERER_DROITS) {
574
		//Initialisation de la variable personne
575
		if ( isset($_POST['personnes']) ) {
576
			$personne=$_POST['personnes'];
577
		}
578
		else $personne=0;
579
 
580
 
581
		//Cas ou les droits ont étés changés
582
		if (isset($_GET['pers'])) {
583
			$personne=$_GET['pers'];
584
			//CAS DES DROITS POUR UN TYPE D'ANNONCE: On efface tous les droits de la personne pour ce type d'annonce
585
			if (isset($_GET['idtypeannonce'])) {
586
				$requete = 'DELETE FROM bazar_droits WHERE bd_id_utilisateur='.$_GET['pers'].
587
					   ' AND bd_id_nature_offre='.$_GET['idtypeannonce'];
588
				$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
589
				if (DB::isError($resultat)) {
590
					die ($resultat->getMessage().$resultat->getDebugInfo()) ;
591
				}
592
			}
593
			//CAS DU SUPER ADMIN: On efface tous les droits de la personne en général
594
			else {
595
				$requete = 'DELETE FROM bazar_droits WHERE bd_id_utilisateur='.$_GET['pers'];
596
				$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
597
				if (DB::isError($resultat)) {
598
					die ($resultat->getMessage().$resultat->getDebugInfo()) ;
599
				}
600
			}
601
			if ($_GET['droits']=='superadmin') {
602
				$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].',0,0)';
603
				$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
604
				if (DB::isError($resultat)) {
605
					die ($resultat->getMessage().$resultat->getDebugInfo()) ;
606
				}
607
			}
608
			elseif ($_GET['droits']=='redacteur') {
609
				$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].','.$_GET['idtypeannonce'].',1)';
610
				$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
611
				if (DB::isError($resultat)) {
612
					die ($resultat->getMessage().$resultat->getDebugInfo()) ;
613
				}
614
			}
615
			elseif ($_GET['droits']=='admin') {
616
				$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].','.$_GET['idtypeannonce'].',2)';
617
				$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
618
				if (DB::isError($resultat)) {
619
					die ($resultat->getMessage().$resultat->getDebugInfo()) ;
620
				}
621
			}
622
		}
623
 
624
		//requete pour obtenir l'id, le nom et prénom des personnes inscrites à l'annuaire sauf soi même
625
		$requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' FROM '.BAZ_ANNUAIRE.
626
			   ' WHERE '.BAZ_CHAMPS_ID."!=".$GLOBALS['id_user'].' ORDER BY '.BAZ_CHAMPS_NOM.' ASC';
627
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
628
		if (DB::isError($resultat)) {
629
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
630
		}
631
		$res='<h2>'.BAZ_GESTION_DES_DROITS.'</h2>'."\n";
632
		$res.=BAZ_DESCRIPTION_GESTION_DES_DROITS.'<br /><br />';
633
		$personnes_select[0]=BAZ_SELECTION;
634
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
635
			$personnes_select[$ligne[BAZ_CHAMPS_ID]] = $ligne[BAZ_CHAMPS_NOM]." ".$ligne[BAZ_CHAMPS_PRENOM] ;
636
		}
637
		$java=array ('onchange'=>'this.form.submit();');
638
		$formtemplate->addElement ('select', 'personnes', BAZ_LABEL_CHOIX_PERSONNE, $personnes_select, $java) ;
639
		$defauts=array ('personnes'=>$personne);
640
		$formtemplate->setDefaults($defauts);
641
		$res.= $formtemplate->toHTML() ;
642
 
643
 
644
 
645
		if ($personne!=0) {
646
			//cas du super utilisateur
647
			if (niveau_droit(0,$personne)=='superadministrateur') {
648
				$res.= '<br />'.BAZ_EST_SUPERADMINISTRATEUR.'<br /><br />'."\n";
649
				$lien_enlever_superadmin=$GLOBALS['_BAZAR_']['url'];
650
				$lien_enlever_superadmin->addQueryString('action', BAZ_GERER_DROITS);
651
				$lien_enlever_superadmin->addQueryString('pers', $personne);
652
				$lien_enlever_superadmin->addQueryString('droits', 'aucun');
653
				$res.= '<a href='.$lien_enlever_superadmin->getURL().'>'.BAZ_CHANGER_SUPERADMINISTRATEUR.'</a><br />'."\n";
654
			}
655
			else {
656
				$lien_passer_superadmin=$GLOBALS['_BAZAR_']['url'];
657
				$lien_passer_superadmin->addQueryString('action', BAZ_GERER_DROITS);
658
				$lien_passer_superadmin->addQueryString('pers', $personne);
659
				$lien_passer_superadmin->addQueryString('droits', 'superadmin');
660
				$res.= '<a href='.$lien_passer_superadmin->getURL().'>'.BAZ_PASSER_SUPERADMINISTRATEUR.'</a><br />'."\n";
661
 
662
				//on cherche les différentes rubriques d'annonces
663
				$requete = 'SELECT bn_id_nature, bn_label_nature FROM bazar_nature';
664
				$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
665
				if (DB::isError($resultat)) {
666
					die ($resultat->getMessage().$resultat->getDebugInfo()) ;
667
				}
668
				$res.='<br /><b>'.BAZ_DROITS_PAR_TYPE.'</b><br /><br />';
669
 
670
				$table = new HTML_Table(array ('width' => '100%', 'class' => 'table_bazar')) ;
671
				$table->addRow(array ('<b>'.BAZ_TYPE_ANNONCES.'</b>',
672
				                      '<b>'.BAZ_DROITS_ACTUELS.'</b>',
673
						      '<b>'.BAZ_PASSER_EN.'</b>',
674
						      '<b>'.BAZ_OU_PASSER_EN.'</b>')) ;
675
				$table->setRowType (0, 'th') ;
676
 
677
				while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
678
					$droits=niveau_droit($ligne['bn_id_nature'],$personne);
679
 
680
					$lien_aucun_droit=$GLOBALS['_BAZAR_']['url'];
681
					$lien_aucun_droit->addQueryString('action', BAZ_GERER_DROITS);
682
					$lien_aucun_droit->addQueryString('pers', $personne);
683
					$lien_aucun_droit->addQueryString('droits', 'aucun');
684
					$lien_aucun_droit->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
685
 
686
					$lien_passer_redacteur=$GLOBALS['_BAZAR_']['url'];
687
					$lien_passer_redacteur->addQueryString('action', BAZ_GERER_DROITS);
688
					$lien_passer_redacteur->addQueryString('pers', $personne);
689
					$lien_passer_redacteur->addQueryString('droits', 'redacteur');
690
					$lien_passer_redacteur->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
691
 
692
					$lien_passer_admin=$GLOBALS['_BAZAR_']['url'];
693
					$lien_passer_admin->addQueryString('action', BAZ_GERER_DROITS);
694
					$lien_passer_admin->addQueryString('pers', $personne);
695
					$lien_passer_admin->addQueryString('droits', 'admin');
696
					$lien_passer_admin->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
697
 
698
					if ($droits=='aucun') {
699
						$table->addRow(array('<b>'.$ligne['bn_label_nature'].'</b>',
700
						                     BAZ_AUCUN_DROIT,
701
						                     '<a href='.$lien_passer_redacteur->getURL().'>'.BAZ_DROIT_REDACTEUR.'</a>',
702
								     '<a href='.$lien_passer_admin->getURL().'>'.BAZ_DROIT_ADMIN.'</a>'));
703
					}
704
					elseif ($droits=='redacteur') {
705
						$table->addRow(array('<b>'.$ligne['bn_label_nature'].'</b>',
706
						                     BAZ_DROIT_REDACTEUR,
707
						                     '<a href='.$lien_aucun_droit->getURL().'>'.BAZ_AUCUN_DROIT.'</a>',
708
								     '<a href='.$lien_passer_admin->getURL().'>'.BAZ_DROIT_ADMIN.'</a>'));
709
					}
710
					else {
711
						$table->addRow(array('<b>'.$ligne['bn_label_nature'].'</b>',
712
								     BAZ_DROIT_ADMIN,
713
								     '<a href='.$lien_aucun_droit->getURL().'>'.BAZ_AUCUN_DROIT.'</a>',
714
								     '<a href='.$lien_passer_redacteur->getURL().'>'.BAZ_DROIT_REDACTEUR.'</a>'));
715
					}
716
				}
717
				$table->altRowAttributes(1, array('class' => 'ligne_impaire'), array('class' => 'ligne_paire'));
718
				$table->updateColAttributes(0, array('align' => 'left'));
719
				$table->updateColAttributes(1, array('align' => 'left'));
720
				$table->updateColAttributes(2, array('align' => 'left'));
721
				$table->updateColAttributes(3, array('align' => 'left'));
722
				$res.=$table->toHTML() ;
723
			}
724
		}
725
	}
726
	return $res;
727
}
728
 
729
 
730
/** requete_bazar_fiche() - preparer la requete d'insertion ou de MAJ de la table bazar_fiche à partir du fichier de template
731
*
732
* @global   mixed L'objet contenant les valeurs issues de la saisie du formulaire
733
* @return   void
734
*/
735
function requete_bazar_fiche($valeur) {
736
	$requete=NULL;
737
	if (isset($valeur['titre'])) {
738
		$requete.='bf_titre="'.$valeur['titre'].'",';
739
	}
740
	if (isset($valeur['description'])) {
741
		$requete.='bf_description="'.$valeur['description'].'",';
742
	}
743
	if (isset($valeur['datedebvalid'])) {
744
		$requete.='bf_date_debut_validite_fiche="'.$valeur['datedebvalid']['Y'].'-'.
745
		$valeur['datedebvalid']['m'].'-'.$valeur['datedebvalid']['d'].'",';
746
	}
747
	if (isset($valeur['datefinvalid'])) {
748
		$requete.='bf_date_fin_validite_fiche="'.$valeur['datefinvalid']['Y'].'-'.
749
		$valeur['datefinvalid']['m'].'-'.$valeur['datefinvalid']['d'].'",';
750
	}
751
	if ((niveau_droit($GLOBALS['_BAZAR_']['id_typeannonce'],$GLOBALS['id_user'])=='administrateur') or
752
	    (niveau_droit($GLOBALS['_BAZAR_']['id_typeannonce'],$GLOBALS['id_user'])=='superadministrateur')) {
753
		$requete.='bf_statut_fiche=1,';
754
	}
755
	else {
756
		$requete.='bf_statut_fiche="'.BAZ_ETAT_VALIDATION.'",';
757
	}
758
 
759
	$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
760
	for ($i=0; $i<count($tableau); $i++) {
761
		if ($tableau[$i]['type']=='listedate') {
762
			$val=$valeur[$tableau[$i]['nom_bdd']]['Y'].'-'.$valeur[$tableau[$i]['nom_bdd']]['m'].'-'.$valeur[$tableau[$i]['nom_bdd']]['d'];
763
		}
764
		else {
765
			$val=$valeur[$tableau[$i]['nom_bdd']];
766
		}
767
		$requete.=$tableau[$i]['nom_bdd'].'="'.$val.'", ';
768
	}
769
 
770
	$requete.=' bf_date_maj_fiche=NOW()';
771
 
772
	return $requete;
773
}
774
 
775
 
776
/** baz_insertion() - inserer une nouvelle fiche
777
*
778
* @global   L'identifiant de la fiche a inserer
779
* @return   void
780
*/
781
function baz_insertion($valeur,$idfiche) {
782
        // ===========  Insertion d'une nouvelle fiche ===================
783
 
784
        //requete d'insertion dans bazar_fiche
785
        $requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$idfiche.','.
786
		   'bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_ce_nature='.$id_typeannonce.','.
787
		   'bf_date_creation_fiche=NOW(),'.requete_bazar_fiche(&$valeur, $id_typeannonce) ;
788
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
789
        if (DB::isError($resultat)) {
790
            die ($resultat->getMessage().$resultat->getDebugInfo()) ;
791
        }
792
	return;
793
}
794
 
795
 
796
/** baz_insertion_url() - insérer un lien URL à une fiche
797
*
798
* @global   string L'url du lien
799
* @global   string Le texte du lien
800
* @global   integer L'identifiant de la fiche
801
* @return   void
802
*/
803
function baz_insertion_url($url_lien, $url_texte, $idfiche) {
804
	//requete d'insertion dans bazar_url
805
	$id_url = baz_nextId('bazar_url', 'bu_id_url', $GLOBALS['_BAZAR_']['db']) ;
806
	$requete = 'INSERT INTO bazar_url SET bu_id_url='.$id_url.', bu_ce_fiche='.$idfiche.', '.
807
		   'bu_url="'.$url_lien.'", bu_descriptif_url="'.$url_texte.'"';
808
 
809
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
810
        if (DB::isError($resultat)) {
811
            die ($resultat->getMessage().$resultat->getDebugInfo()) ;
812
        }
813
	return;
814
}
815
 
816
 
817
/** baz_insertion_fichier() - insérer un fichier à une fiche
818
*
819
* @global   string Le label du fichier
820
* @global   string La description du fichier
821
* @global   integer L'identifiant de la fiche
822
* @return   void
823
*/
824
function baz_insertion_fichier($fichier_label, $fichier_description, $idfiche) {
825
	//vérification de la présence de ce fichier
826
	$requete = 'SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_fichier="'.$_FILES['fichier_joint']['name'].'"';
827
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
828
        if (DB::isError($resultat)) {
829
            die ($resultat->getMessage().$resultat->getDebugInfo()) ;
830
        }
831
	if ($resultat->numRows()==0) {
832
		$chemin_destination=BAZ_CHEMIN_APPLI.'upload/'.$_FILES['fichier_joint']['name'];
833
		move_uploaded_file($_FILES['fichier_joint']['tmp_name'], $chemin_destination);
834
	}
835
	else echo BAZ_FICHIER_EXISTANT;
836
	$id_fichier_joint = baz_nextId('bazar_fichier_joint', 'bfj_id_fichier', $GLOBALS['_BAZAR_']['db']) ;
837
	$requete = 'INSERT INTO bazar_fichier_joint SET bfj_id_fichier='.$id_fichier_joint.', bfj_ce_fiche='.$idfiche.','.
838
		   'bfj_label_lien="'.$fichier_label.'", bfj_description="'.$fichier_description.'", bfj_fichier="'.$_FILES['fichier_joint']['name'].'"';
839
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
840
        if (DB::isError($resultat)) {
841
            die ($resultat->getMessage().$resultat->getDebugInfo()) ;
842
        }
843
	return;
844
}
845
 
846
 
847
/** baz_insertion_image() - insérer une image à une fiche
848
*
849
* @global   integer L'identifiant de la fiche
850
* @return   void
851
*/
852
function baz_insertion_image($idfiche) {
853
	//vérification de la présence de ce fichier
854
	$requete = 'SELECT bf_id_fiche FROM bazar_fiche WHERE bf_url_image="'.$_FILES['image']['name'].'"';
855
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
856
        if (DB::isError($resultat)) {
857
            die ($resultat->getMessage().$resultat->getDebugInfo()) ;
858
        }
859
	if ($resultat->numRows()==0) {
860
		$chemin_destination=BAZ_CHEMIN_APPLI.'images/'.$_FILES['image']['name'];
861
		move_uploaded_file($_FILES['image']['tmp_name'], $chemin_destination);
862
	}
863
	else echo BAZ_FICHIER_EXISTANT;
864
	//vérification de l'existence de la fiche
865
	$requete = 'SELECT bf_id_fiche FROM bazar_fiche WHERE bf_id_fiche='.$idfiche;
866
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
867
        if (DB::isError($resultat)) {
868
            die ($resultat->getMessage().$resultat->getDebugInfo()) ;
869
        }
870
	if ($resultat->numRows()==0) {
871
		//création d'une fiche temporaire avec l'image
872
	$requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$idfiche.', bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].', bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_date_creation_fiche=NOW(), bf_url_image="'.$_FILES['image']['name'].'", '.
873
		   'bf_titre="annonce temporaire"';
874
	}
875
	else {
876
		$requete='UPDATE bazar_fiche SET bf_url_image="'.$_FILES['image']['name'].'" WHERE bf_id_fiche='.$idfiche;
877
	}
878
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
879
        if (DB::isError($resultat)) {
880
            die ($resultat->getMessage().$resultat->getDebugInfo()) ;
881
        }
882
	return;
883
}
884
 
885
 
886
/** baz_mise_a_jour() - Mettre a jour une fiche
887
*
888
* @global   Le contenu du formulaire de saisie de l'annonce
889
* @return   void
890
*/
891
function baz_mise_a_jour($valeur) {
892
 
893
	//MAJ de bazar_fiche
894
	$requete = 'UPDATE bazar_fiche SET '.requete_bazar_fiche(&$valeur,$GLOBALS['_BAZAR_']['id_typeannonce']);
895
	$requete.= ' WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
896
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
897
	if (DB::isError($resultat)) {
898
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
899
	}
900
	return;
901
}
902
 
903
 
904
/** baz_suppression() - Supprime une fiche
905
*
906
* @global   L'identifiant de la fiche à supprimer
907
* @return   void
908
*/
909
function baz_suppression() {
910
	//suppression dans bazar_fiche
911
	$requete = "DELETE FROM bazar_fiche WHERE bf_id_fiche = ".$_GET['id_fiche'];
912
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
913
	if (DB::isError($resultat)) {
914
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
915
	}
916
	//suppression des urls associés
917
	$requete = "SELECT bu_id_url FROM bazar_url WHERE bu_ce_fiche = ".$_GET['id_fiche'];
918
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
919
	if (DB::isError($resultat)) {
920
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
921
	}
922
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
923
		baz_suppression_url($ligne['bu_id_url']);
924
	}
925
 
926
	//suppression des fichiers associés
927
	$requete = "SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_ce_fiche = ".$_GET['id_fiche'];
928
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
929
	if (DB::isError($resultat)) {
930
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
931
	}
932
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
933
		baz_suppression_fichier($ligne['bfj_id_fichier']);
934
	}
935
 
936
	//suppression de l'image associée
937
	baz_suppression_image($_GET['id_fiche']);
938
 
939
	//======================CREATION DU FLUX RSS================================
940
	if (isset($_GET['typeannonce'])) $typeannonce=$_GET['typeannonce'];
941
	if (BAZ_CREER_FICHIERS_XML) gen_RSS($typeannonce, 10, '');
942
	return ;
943
}
944
 
945
 
946
/** baz_suppression_url() - Supprimer un lien d'une fiche
947
*
948
* @global   integer L'identifiant du lien
949
* @return   void
950
*/
951
function baz_suppression_url($id_url) {
952
	//suppression dans bazar_url
953
	$requete = 'DELETE FROM bazar_url WHERE bu_id_url = '.$id_url;
954
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
955
	if (DB::isError($resultat)) {
956
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
957
	}
958
	return;
959
}
960
 
961
 
962
/** baz_suppression_fichier() - Supprimer un fichier d'une fiche
963
*
964
* @global   integer L'identifiant du fichier
965
* @return   void
966
*/
967
function baz_suppression_fichier($id_fichier) {
968
	//vérification de l'utilisation du fichier joint pour une autre annonce
969
	$requete = 'SELECT bfj_fichier FROM bazar_fichier_joint WHERE bfj_id_fichier='.$id_fichier;
970
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
971
	$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
972
	$requete = 'SELECT bfj_fichier FROM bazar_fichier_joint WHERE bfj_fichier="'.$ligne['bfj_fichier'].'"';
973
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
974
	//si le fichier n'est que utilisé dans cette fiche, on le supprime, on le laisse sinon
975
	if ($resultat->numRows()==1) {
976
		$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
977
		unlink(BAZ_CHEMIN_APPLI.'upload/'.$ligne['bfj_fichier']);
978
	}
979
 
980
	//suppression dans la table bazar_fichier
981
	$requete = 'DELETE FROM bazar_fichier_joint WHERE bfj_id_fichier = '.$id_fichier;
982
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
983
	if (DB::isError($resultat)) {
984
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
985
	}
986
	return;
987
}
988
 
989
 
990
/** baz_suppression_image() - Supprimer une image d'une fiche
991
*
992
* @global   integer L'identifiant de la fiche
993
* @return   void
994
*/
995
function baz_suppression_image($id_fiche) {
996
	//vérification de l'utilisation de l'image pour une autre annonce
997
	$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_id_fiche='.$id_fiche;
998
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
999
	$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
1000
	$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_url_image="'.$ligne['bf_url_image'].'"';
1001
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1002
	//si le fichier n'est que utilisé dans cette fiche, on le supprime, on le laisse sinon
1003
	if ($resultat->numRows()==1) {
1004
		$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
1005
		unlink(BAZ_CHEMIN_APPLI.'images/'.$ligne['bf_url_image']);
1006
	}
1007
 
1008
	//suppression dans la table bazar_fiche
1009
	$requete = 'UPDATE bazar_fiche SET bf_url_image=NULL WHERE bf_id_fiche = '.$id_fiche;
1010
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1011
	if (DB::isError($resultat)) {
1012
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
1013
	}
1014
	return;
1015
}
1016
 
1017
 
1018
/** publier_fiche () - Publie ou non dans les fichiers XML la fiche bazar d'un utilisateur
1019
*
1020
* @global boolean Valide: oui ou non
1021
* @return   void
1022
*/
1023
function publier_fiche($valid) {
1024
	if (isset($_GET['id_fiche'])) $GLOBALS['_BAZAR_']['id_fiche']=$_GET['id_fiche'];
1025
	if (isset($_GET['typeannonce'])) $typeannonce=$_GET['typeannonce'];
1026
	if ($valid==0) {
1027
		$requete = 'UPDATE bazar_fiche SET  bf_statut_fiche=2 WHERE bf_id_fiche="'.$GLOBALS['_BAZAR_']['id_fiche'].'"' ;
1028
	}
1029
	else {
1030
		$requete = 'UPDATE bazar_fiche SET  bf_statut_fiche=1 WHERE bf_id_fiche="'.$GLOBALS['_BAZAR_']['id_fiche'].'"' ;
1031
	}
1032
 
1033
	// ====================Mise à jour de la table bazar_fiche====================
1034
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1035
	if (DB::isError($resultat)) {
1036
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
1037
	}
1038
	unset ($resultat) ;
1039
 
1040
	//======================CREATION DU FLUX RSS================================
1041
	if (BAZ_CREER_FICHIERS_XML) gen_RSS($typeannonce, 10, '');
1042
	return;
1043
}
1044
 
1045
 
1046
/** baz_s_inscrire() affiche le formulaire qui permet de s'inscrire pour recevoir des annonces d'un type
1047
*
1048
*   @return  string    le code HTML
1049
*/
1050
function baz_s_inscrire() {
1051
	if (isset($_GET['inscrip'])) {
1052
		//cas d'une déinscription
1053
		if ($_GET['inscrip']==0) {
1054
			$requete='DELETE FROM bazar_abonnement WHERE ba_id_utilisateur='.$GLOBALS['id_user'].' AND ba_id_rubrique='.$_GET['idtypeannonce'];
1055
		}
1056
		//cas d'une inscription
1057
		else {
1058
			$requete='INSERT INTO bazar_abonnement VALUES ('.$GLOBALS['id_user'].', '.$_GET['idtypeannonce'].')';
1059
		}
1060
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1061
		if (DB::isError($resultat)) {
1062
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
1063
		}
1064
	}
1065
	$res= '<h2>'.BAZ_S_INSCRIRE_AUX_ANNONCES.'</h2>'."\n";
1066
 
1067
 
1068
	//requete pour obtenir l'id et le label des types d'annonces
1069
	$requete = 'SELECT bn_id_nature, bn_label_nature '.
1070
	           'FROM bazar_nature ';
1071
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1072
	if (DB::isError($resultat)) {
1073
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
1074
	}
1075
 
1076
	$table = new HTML_Table(array ('width' => '100%', 'class' => 'table_bazar')) ;
1077
	$table->addRow(array ('<b>'.BAZ_TYPE_ANNONCES.'</b>',
1078
	                      '<b>'.BAZ_STATUT.'</b>',
1079
			      '<b>'.BAZ_PASSER_EN.'</b>',
1080
			      '<b>'.BAZ_RSS.'</b>',)) ;
1081
	$table->setRowType (0, 'th') ;
1082
 
1083
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
1084
		$lien_s_abonner=$GLOBALS['_BAZAR_']['url'];
1085
		$lien_s_abonner->addQueryString('action', BAZ_S_INSCRIRE);
1086
		$lien_s_abonner->addQueryString('idtypeannonce', $ligne['bn_id_nature']);
1087
		$lien_s_abonner->addQueryString('inscrip', 1);
1088
 
1089
		$lien_se_desabonner=$GLOBALS['_BAZAR_']['url'];
1090
		$lien_se_desabonner->addQueryString('action', BAZ_S_INSCRIRE);
1091
		$lien_se_desabonner->addQueryString('idtypeannonce', $ligne['bn_id_nature']);
1092
		$lien_se_desabonner->addQueryString('inscrip', 0);
1093
 
1094
		$lien_RSS='http://'.$_SERVER['HTTP_HOST'].'/bazar/bazarRSS.php?annonce='.$ligne['bn_label_nature'];
1095
 
1096
		//requete pour savoir si la personne est inscrite à ce type d'annonce
1097
		$requete = 'SELECT ba_id_utilisateur '.
1098
		           'FROM bazar_abonnement '.
1099
			   'WHERE ba_id_utilisateur='.$GLOBALS['id_user'].' AND ba_id_rubrique='.$ligne['bn_id_nature'];
1100
	        $resultat2 = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1101
		if (DB::isError($resultat2)) {
1102
			die ($resultat2->getMessage().$resultat2->getDebugInfo()) ;
1103
		}
1104
		if ($resultat2->numRows()>0) {
1105
			$table->addRow(array('<b>'.$ligne['bn_label_nature'].'</b>',
1106
					     BAZ_ABONNE,
1107
					     '<a href='.$lien_se_desabonner->getURL().'>'.BAZ_SE_DESABONNER.'</a>',
1108
					     '<a href='.$lien_RSS.'><img src="images/BAZ_rss.png" alt="'.BAZ_RSS.'"></a>'));
1109
		}
1110
		else {
1111
			$table->addRow(array('<b>'.$ligne['bn_label_nature'].'</b>',
1112
			                     BAZ_PAS_ABONNE,
1113
			                     '<a href='.$lien_s_abonner->getURL().'>'.BAZ_S_ABONNER.'</a>',
1114
					     '<a href='.$lien_RSS.'><img src="images/BAZ_rss.png" alt="'.BAZ_RSS.'"></a>'));
1115
		}
1116
	}
1117
	$table->altRowAttributes(1, array('class' => 'ligne_impaire'), array('class' => 'ligne_paire'));
1118
	$table->updateColAttributes(0, array('align' => 'left'));
1119
	$table->updateColAttributes(1, array('align' => 'center'));
1120
	$table->updateColAttributes(2, array('align' => 'center'));
1121
	$table->updateColAttributes(3, array('align' => 'center'));
1122
	$res.=$table->toHTML() ;
1123
 
1124
	return $res;
1125
}
1126
 
1127
 
1128
/** baz_valeurs_fiche() - Renvoie un tableau avec les valeurs par défaut du formulaire d'inscription
1129
*
1130
* @param    integer Identifiant de la fiche
1131
*
1132
* @return   array   Valeurs enregistrées pour cette fiche
1133
*/
1134
/*function baz_valeurs_fiche($idfiche) {
1135
	$requete = 'SELECT * FROM bazar_fiche WHERE bf_id_fiche='.$idfiche;
1136
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1137
	if (DB::isError($resultat)) {
1138
		die ($resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
1139
	}
1140
	$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
1141
	$valeurs_fiche = array() ;
1142
	$valeurs_fiche['titre'] = $ligne['bf_titre'] ;
1143
	$valeurs_fiche['description'] = $ligne['bf_description'] ;
1144
	$valeurs_fiche['datedebvalid'] = $ligne['bf_date_debut_validite_fiche'] ;
1145
	$valeurs_fiche['datefinvalid'] = $ligne['bf_date_fin_validite_fiche'] ;
1146
	$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
1147
	for ($i=0; $i<count($tableau); $i++) {
1148
		$valeurs_fiche[$tableau[$i]['nom_bdd']] = $ligne[$tableau[$i]['nom_bdd']];
1149
	}
1150
	return $valeurs_fiche;
1151
}*/
1152
 
1153
 
1154
function baz_envoie_mail() {
1155
	$headers['From']    = $SERVER_ADMIN ;
1156
	$headers['To']      = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
1157
	$headers['Subject'] = INS_MAIL_ADMIN_APRES_INSCRIPTION_SUJET;
1158
 
1159
	$q = "select * from ".INS_ANNUAIRE." where ".INS_CHAMPS_MAIL."=\"".$HTTP_POST_VARS['mail']."\"" ;
1160
 
1161
	$r = $GLOBALS['_BAZAR_']['db']->query($q) ;
1162
	if (DB::isError ($r)) {
1163
		die ("echec de la requete") ;
1164
	}
1165
	$row  = $r->fetchRow(DB_FETCHMODE_ASSOC) ;
1166
 
1167
	$body_entete = "Un nouvel inscrit à tela : \n" ;
1168
	$body = "mail : ".$row[INS_CHAMPS_MAIL]."\n" ;
1169
	$body .= "------------------------------------------\n";
1170
	$body .= "nom: ".unhtmlentities($row[INS_CHAMPS_NOM])." \n" ;
1171
	$body .= "prénom : ".unhtmlentities($row[INS_CHAMPS_PRENOM])." \n" ;
1172
	$body .= "-------------------------------------------\n" ;
1173
 
1174
	// création du mail
1175
	$mail_object =& Mail::factory('mail');
1176
	if (!mail ($headers['To'], $headers['Subject'], $body)) {
1177
		return "<tr><td>Une erreur s'est produite:<br></td></tr>\n" ;
1178
	}
1179
	$body .= INS_MAIL_INSCRIPTION_2;
1180
 
1181
	$headers['To']      = $HTTP_POST_VARS['mail'] ;
1182
 
1183
	// création du mail
1184
	if (mail($headers['To'], $headers['Subject'], INS_MAIL_INSCRIPTION_1.$body)) {
1185
		return "<tr><td>Une erreur s'est produite<br></td></tr>\n" ;
1186
	}
1187
	return;
1188
}
1189
 
1190
 
1191
function baz_unhtmlentities($string) {
1192
	$trans_tbl = get_html_translation_table(HTML_ENTITIES);
1193
	$trans_tbl = array_flip($trans_tbl);
1194
	return strtr($string, $trans_tbl);
1195
}
1196
 
1197
 
1198
/** function baz_nextId () Renvoie le prochain identifiant numérique libre d'une table
1199
*
1200
*   @param  string  Nom de la table
1201
*   @param  string  Nom du champs identifiant
1202
*   @param  mixed   Objet DB de PEAR pour la connexion à la base de donnée
1203
*
1204
*   return  integer Le prochain numéro d'identifiant disponible
1205
*/
1206
function baz_nextId($table, $colonne_identifiant, $bdd) {
1207
	$requete = 'SELECT MAX('.$colonne_identifiant.') AS maxi FROM '.$table;
1208
	$resultat = $bdd->query($requete) ;
1209
	if (DB::isError($resultat)) {
1210
		die (__FILE__ . __LINE__ . $resultat->getMessage() . $requete);
1211
		return $bdd->raiseError($resultat) ;
1212
	}
1213
 
1214
	if ($resultat->numRows() > 1) {
1215
		return $bdd->raiseError('<br />La table '.$table.' a un identifiant non unique<br />') ;
1216
	}
1217
	$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ;
1218
	return $ligne->maxi + 1 ;
1219
}
1220
 
1221
 
1222
/* +--Fin du code ----------------------------------------------------------------------------------------+
1223
*
1224
* $Log: not supported by cvs2svn $
1225
* Revision 1.1.1.1  2005/02/17 11:09:50  florian
1226
* Import initial
1227
*
1228
* Revision 1.1.1.1  2005/02/16 18:06:35  florian
1229
* import de la nouvelle version
1230
*
1231
* Revision 1.10  2004/07/08 17:25:25  florian
1232
* ajout commentaires + petits debuggages
1233
*
1234
* Revision 1.8  2004/07/07 14:30:19  florian
1235
* débuggage RSS
1236
*
1237
* Revision 1.7  2004/07/06 16:22:01  florian
1238
* débuggage modification + MAJ flux RSS
1239
*
1240
* Revision 1.6  2004/07/06 09:28:26  florian
1241
* changement interface de modification
1242
*
1243
* Revision 1.5  2004/07/05 15:10:23  florian
1244
* changement interface de saisie
1245
*
1246
* Revision 1.4  2004/07/02 14:51:14  florian
1247
* ajouts divers pour faire fonctionner l'insertion de fiches
1248
*
1249
* Revision 1.3  2004/07/01 16:37:42  florian
1250
* ajout de fonctions pour les templates
1251
*
1252
* Revision 1.2  2004/07/01 13:00:13  florian
1253
* modif Florian
1254
*
1255
* Revision 1.1  2004/06/23 09:58:32  alex
1256
* version initiale
1257
*
1258
* Revision 1.1  2004/06/18 09:00:37  alex
1259
* version initiale
1260
*
1261
*
1262
* +-- Fin du code ----------------------------------------------------------------------------------------+
1263
*/
1264
 
1265
?>