Subversion Repositories eFlore/Applications.cel

Rev

Rev 970 | Rev 1338 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 970 Rev 1330
Line 29... Line 29...
29
	private $squelette = null;
29
	private $squelette = null;
30
	private $squelette_dossier = null;
30
	private $squelette_dossier = null;
31
	private $auteurs = array();
31
	private $auteurs = array();
32
	private $flux = array();
32
	private $flux = array();
33
	private $criteres = array(
33
	private $criteres = array(
34
		'utilisateur' => 'ce_utilisateur', 
34
		'utilisateur' => 'courriel_utilisateur', 
35
		'commune' => 'zone_geo', 
35
		'commune' => 'zone_geo', 
36
		'dept' => 'id_zone_geo',
36
		'dept' => 'ce_zone_geo',
37
		'taxon' => 'nom_ret',
37
		'taxon' => 'nom_ret',
38
		'commentaire' => 'commentaire',
38
		'commentaire' => 'commentaire',
39
		'date' => 'date_observation',
39
		'date' => 'date_observation',
40
		'projet' => 'mots-cles');
40
		'projet' => 'mots-cles');
Line 204... Line 204...
204
	}
204
	}
Line 205... Line 205...
205
	
205
	
206
	private function getServiceParDefaut() {
206
	private function getServiceParDefaut() {
207
		// Construction de la requête
207
		// Construction de la requête
208
		$requete = 	(isset($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '.
208
		$requete = 	(isset($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '.
209
			'FROM cel_inventory WHERE identifiant like "%@%" '.
209
			'FROM cel_obs '.
210
			(($this->etreFluxAdmin()) ? '' : 'AND transmission = 1 ').
210
			(($this->etreFluxAdmin()) ? '' : 'WHERE transmission = 1 ').
211
			'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 'date_modification DESC').' '.
211
			'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 'date_modification DESC').' '.
Line 212... Line 212...
212
			"LIMIT $this->start,$this->limit ";
212
			"LIMIT $this->start,$this->limit ";
Line 218... Line 218...
218
		return $contenu;
218
		return $contenu;
219
	}
219
	}
Line 220... Line 220...
220
	
220
	
221
	private function getServiceParMotsCles() {
221
	private function getServiceParMotsCles() {
222
		$infos=array();
222
		$infos=array();
223
		$infos[0]['num_nom_sel'] = '';
223
		$infos[0]['nom_sel_nn'] = '';
224
		$infos[0]['date_modification'] = '2011-06-28';
224
		$infos[0]['date_modification'] = '2011-06-28';
225
		$donnees = $this->construireDonneesCommunesAuFlux($infos);
225
		$donnees = $this->construireDonneesCommunesAuFlux($infos);
226
		$donnees['items'][0]['guid'] = 0;
226
		$donnees['items'][0]['guid'] = 0;
227
		$donnees['items'][0]['description'] =  'Ce flux est devenu obsolète. Veuillez utiliser le flux '.
227
		$donnees['items'][0]['description'] =  'Ce flux est devenu obsolète. Veuillez utiliser le flux '.
Line 236... Line 236...
236
		return $contenu;
236
		return $contenu;
237
	}
237
	}
Line 238... Line 238...
238
	
238
	
239
	private function getServiceParCommune() {
239
	private function getServiceParCommune() {
240
		$infos=array();
240
		$infos=array();
241
		$infos[0]['num_nom_sel'] = '';
241
		$infos[0]['nom_sel_nn'] = '';
242
		$infos[0]['date_modification'] = '2011-06-28';
242
		$infos[0]['date_modification'] = '2011-06-28';
243
		$donnees = $this->construireDonneesCommunesAuFlux($infos);
243
		$donnees = $this->construireDonneesCommunesAuFlux($infos);
244
		$donnees['items'][0]['guid'] = 0;
244
		$donnees['items'][0]['guid'] = 0;
245
		$donnees['items'][0]['description'] = 'Ce flux est devenu obsolète. Veuillez utiliser le flux '.
245
		$donnees['items'][0]['description'] = 'Ce flux est devenu obsolète. Veuillez utiliser le flux '.
Line 259... Line 259...
259
		if (isset($_GET['debut'])) $this->start = $_GET['debut'];		
259
		if (isset($_GET['debut'])) $this->start = $_GET['debut'];		
260
		if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
260
		if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
Line 261... Line 261...
261
		
261
		
262
		// Construction de la requête
262
		// Construction de la requête
263
		$requete = (isset($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '.
263
		$requete = (isset($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '.
264
				'FROM cel_inventory '.
264
				'FROM cel_obs '.
Line 265... Line 265...
265
				'WHERE identifiant like "%@%" AND '.(($this->etreFluxAdmin()) ? '' : ' transmission = 1 AND ');
265
				'WHERE 1 AND '.(($this->etreFluxAdmin()) ? '' : ' transmission = 1 AND ');
266
		
266
		
267
		if ($this->estUneRechercheGenerale()) {
267
		if ($this->estUneRechercheGenerale()) {
268
			$chaine_requete = $_GET['recherche'];
268
			$chaine_requete = $_GET['recherche'];
Line 273... Line 273...
273
				$requete .= $this->creerSousRequeteRechercheParCriteres($criteres);
273
				$requete .= $this->creerSousRequeteRechercheParCriteres($criteres);
274
			}	
274
			}	
275
		}
275
		}
276
		$requete = rtrim($requete, 'AND ');
276
		$requete = rtrim($requete, 'AND ');
277
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 
277
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 
278
			'date_modification DESC, location ASC').' '.
278
			'date_modification DESC, zone_geo ASC').' '.
279
				"LIMIT $this->start,$this->limit ";
279
				"LIMIT $this->start,$this->limit ";
280
		
280
 
281
		$elements = $this->executerRequete($requete);//echo $requete;
281
		$elements = $this->executerRequete($requete);
Line 282... Line 282...
282
 
282
 
283
		// Création du contenu
283
		// Création du contenu
284
		if ($elements != false && count($elements) > 0) {
284
		if ($elements != false && count($elements) > 0) {
285
			$contenu = $this->executerService($elements);
285
			$contenu = $this->executerService($elements);
Line 307... Line 307...
307
						$nom_valeur[1] = str_replace('/', '-', $nom_valeur[1]);
307
						$nom_valeur[1] = str_replace('/', '-', $nom_valeur[1]);
308
						if (preg_match('/(^[0-9]{2})-([0-9]{2})-([0-9]{4}$)/', $nom_valeur[1], $matches)) {
308
						if (preg_match('/(^[0-9]{2})-([0-9]{2})-([0-9]{4}$)/', $nom_valeur[1], $matches)) {
309
							$nom_valeur[1] = $matches[3].'-'.$matches[2].'-'.$matches[1];
309
							$nom_valeur[1] = $matches[3].'-'.$matches[2].'-'.$matches[1];
310
						}
310
						}
311
						$requete .= $nom_valeur[0].'='.$this->bdd->quote($nom_valeur[1]).' AND '; break;
311
						$requete .= $nom_valeur[0].'='.$this->bdd->quote($nom_valeur[1]).' AND '; break;
-
 
312
					case "ce_zone_geo" :
-
 
313
						$requete .= ' ('.$nom_valeur[0].' LIKE "INSEE-C:'.$nom_valeur[1].'%") AND '; break;
312
					case "nom_ret" : 
314
					case "nom_ret" : 
313
						if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';						
315
						if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';						
314
						$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR nom_sel LIKE "%'.
316
						$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR nom_sel LIKE "%'.
315
							$nom_valeur[1].'%") AND '; break;
317
							$nom_valeur[1].'%") AND '; break;
316
					case "mots-cles" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]); break; 		
318
					case "mots-cles" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]).' AND '; break; 		
317
					default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
319
					default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
318
				}
320
				}
319
			}
321
			}
320
		}
322
		}
321
		$requete = rtrim($requete,' AND ');
323
		$requete = rtrim($requete,' AND ');
322
		return $requete;
324
		return $requete;
323
	}
325
	}
Line 324... Line 326...
324
	
326
	
325
	private function creerSousRequeteMotsCles($mot_cle) {
327
	private function creerSousRequeteMotsCles($mot_cle) {
326
		$requete = 'mots_cles like "inexistant" OR';
328
		$requete = '';
327
		if (preg_match('/.*OU.*/', $mot_cle)) {
-
 
328
			$requete = $this->creerSousRequeteMotsClesOu($mot_cle);
329
		if (preg_match('/.*OU.*/', $mot_cle)) {
329
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
-
 
330
			$requete = $this->creerSousRequeteMotsClesEt($mot_cle);
-
 
331
		} else {		
-
 
332
			// Construction de la requête
-
 
333
			$prerequete = 	'SELECT * '.
-
 
334
				'FROM cel_mots_cles_obs '.
-
 
335
				'WHERE cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot_cle)); 
-
 
336
			$elements = $this->executerRequete($prerequete);
-
 
337
			if ($elements != false && count($elements) > 0) {
-
 
338
				$requete = '';
330
			$mots_cles_tab = explode('OU',$mot_cle);
339
				foreach ($elements as $occurence) {
331
			foreach($mots_cles_tab as $mot_cle_item) {
340
					$requete .= '(mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND identifiant = '.
-
 
341
						$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';	
-
 
342
				}
332
				$requete .= '(mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') OR ';
343
			}
-
 
344
		}
333
			}
345
		$requete = rtrim($requete,' OR ').' AND ';
-
 
346
		return $requete;
-
 
347
	}
-
 
348
	
334
			$requete = '('.rtrim($requete,'OR ').') ';
349
	private function creerSousRequeteMotsClesOu($mot_cle) {	
-
 
350
		$requete = 'mots_cles like "inexistant" OR';	
335
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
351
		$tab_mots_cles = explode('OU', $mot_cle);
-
 
352
		$where = '';
336
			$mots_cles_tab = explode('ET',$mot_cle);
353
		foreach ($tab_mots_cles as $mot) {
-
 
354
			$where .= 'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle(trim($mot))).' OR ';
-
 
355
		}
-
 
356
		$where = rtrim($where,' OR ');
-
 
357
		
-
 
358
		// Construction de la requête
-
 
359
		$prerequete = 	"SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_obs WHERE $where "; 
-
 
360
		$elements = $this->executerRequete($prerequete);//print_r($elements);
-
 
361
		if ($elements != false && count($elements) > 0) {
-
 
362
			$requete = '';
-
 
363
			foreach ($elements as $occurence) {
337
			foreach($mots_cles_tab as $mot_cle_item) {
364
				$requete .= '(mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND identifiant = '.
-
 
365
					$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
338
				$requete .= '(mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
-
 
339
			}
-
 
340
			$requete = '('.rtrim($requete, 'AND ').') ';
-
 
341
		} else {
366
			}
342
			$requete = "(mots_cles_texte LIKE ".$this->proteger('%'.$mot_cle.'%').') ';
367
		}
343
		}
368
		return $requete;
344
		return $requete;
Line 369... Line -...
369
	}
-
 
370
	
-
 
371
	private function creerSousRequeteMotsClesEt($mot_cle) {
-
 
372
		
-
 
373
		$requete = 'mots_cles like "inexistant" OR';
-
 
374
		$where = '';
-
 
375
		$champs = 'a.cmc_id_proprietaire , ';
-
 
376
		$table = '';
-
 
377
		$i = "a"; $j = "a";
-
 
378
		
-
 
379
		$tab_mots_cles = explode("ET", $mot_cle); 
-
 
380
		foreach ($tab_mots_cles as $mot) {
-
 
381
			$champs .= "$i.cmc_id_mot_cle_utilisateur as $i , ";
-
 
382
			$table .= "cel_mots_cles_obs $i , ";
-
 
383
			$where .= "$i.cmc_id_mot_cle_general = ".$this->bdd->quote($this->encoderMotCle(trim($mot))).' AND ';
-
 
384
			if ($i !== "a") {
-
 
385
				$where .= " $i.cmc_id_proprietaire = ".$j.".cmc_id_proprietaire AND ";
-
 
386
				$j++;
-
 
387
			}
-
 
388
			$i++;
-
 
389
		}
-
 
390
		$where = rtrim($where,' AND '); $champs = rtrim($champs,' , '); $table = rtrim($table,' , ');
-
 
391
		
-
 
392
		// Construction de la requête
-
 
393
		$prerequete = 	"SELECT $champs FROM $table WHERE $where "; 
-
 
394
		$elements = $this->executerRequete($prerequete);//print_r($elements);
-
 
395
		if ($elements != false && count($elements) > 0) {
-
 
396
			$requete = '';
-
 
397
			foreach ($elements as $occurence) {
-
 
398
				$requete = ' (';
-
 
399
				for ($j = 'a'; $j < $i; $j++) {
-
 
400
					$requete .= 'mots_cles like "%'.$occurence[$j].'%" AND ';
-
 
401
				}
-
 
402
				$requete .= ' identifiant = '.$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
-
 
403
			}
-
 
404
		}
-
 
405
		return $requete;
-
 
406
	}		
345
	}
407
	
346
	
Line 408... Line 347...
408
	private function traiterCriteresMultiples($tableau_criteres) {
347
	private function traiterCriteresMultiples($tableau_criteres) {
409
		$tableau_criteres_pour_bdd = array();
348
		$tableau_criteres_pour_bdd = array();
Line 424... Line 363...
424
			$requete = ' ('.
363
			$requete = ' ('.
425
				'nom_ret LIKE "'.$chaine_requete.'%"'.
364
				'nom_ret LIKE "'.$chaine_requete.'%"'.
426
				' OR '.
365
				' OR '.
427
				'nom_sel LIKE "'.$chaine_requete.'%"'.
366
				'nom_sel LIKE "'.$chaine_requete.'%"'.
428
				' OR '.
367
				' OR '.
429
				'location LIKE "'.$chaine_requete.'%" '.
368
				'zone_geo LIKE "'.$chaine_requete.'%" '.
-
 
369
				' OR '.
-
 
370
				'ce_zone_geo LIKE "'.$chaine_requete.'%" '.
-
 
371
				' OR '.
-
 
372
				'ce_zone_geo LIKE "INSEE-C:'.$chaine_requete.'%" '.
430
				' OR '.
373
				' OR '.
431
				'id_location LIKE "'.$chaine_requete.'%" '.
374
				'courriel_utilisateur LIKE "'.$chaine_requete.'%" '.
432
				' OR '.
375
				' OR '.
433
				'identifiant LIKE "'.$chaine_requete.'%" '.
376
				'mots_cles_texte LIKE "'.$chaine_requete.'%" '.
434
				') ';
377
				') ';
435
		}
378
		}
436
		return $requete;
379
		return $requete;
437
	}
380
	}
Line 444... Line 387...
444
		$contenu = '';
387
		$contenu = '';
445
		if (is_array($elements)) {
388
		if (is_array($elements)) {
446
			// Prétraitement des données
389
			// Prétraitement des données
447
			$donnees = $this->construireDonneesCommunesAuFlux($elements);
390
			$donnees = $this->construireDonneesCommunesAuFlux($elements);
448
			foreach ($elements as $element) {
391
			foreach ($elements as $element) {
449
				$identifiants[$element['identifiant']] = $element['identifiant'];
392
				$identifiants[$element['ce_utilisateur']] = $element['ce_utilisateur'];
450
			}
393
			}
451
			$this->auteurs = $this->creerAuteurs($identifiants);
394
			$this->auteurs = $this->creerAuteurs($identifiants);
452
			foreach ($elements as $element) {
395
			foreach ($elements as $element) {
453
				$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
396
				$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
454
			}
397
			}
Line 491... Line 434...
491
		$item['guid'] = $this->creerGuidItem($observation);
434
		$item['guid'] = $this->creerGuidItem($observation);
492
		$item['lien'] = $this->creerLienItem($observation);
435
		$item['lien'] = $this->creerLienItem($observation);
493
		$item['categorie'] = $this->creerCategorie($item);
436
		$item['categorie'] = $this->creerCategorie($item);
494
		$item['description'] = $this->creerDescription($this->protegerCaracteresHtmlDansChamps($observation), $item);
437
		$item['description'] = $this->creerDescription($this->protegerCaracteresHtmlDansChamps($observation), $item);
495
		$item['description_encodee'] = htmlspecialchars($this->creerDescription($observation, $item));
438
		$item['description_encodee'] = htmlspecialchars($this->creerDescription($observation, $item));
496
		$item['modifier_par'] = $this->auteurs[$observation['identifiant']];
439
		$item['modifier_par'] = $observation['id_observation'];
497
		return $item;
440
		return $item;
498
	}
441
	}
Line 499... Line 442...
499
	
442
	
500
	private function creerTitre($obs) {
443
	private function creerTitre($obs) {
501
		$nom_plante = $obs['nom_sel'].' [nn'.$obs['num_nom_sel'].']';
444
		$nom_plante = $obs['nom_sel'].' [nn'.$obs['nom_sel_nn'].']';
502
		$lieu = $obs['location'].' ('.$obs['id_location'].')';
445
		$lieu = $obs['zone_geo'].' ('.$obs['ce_zone_geo'].')';
503
		$utilisateur = $this->auteurs[$obs['identifiant']];
446
		$utilisateur = $obs['prenom_utilisateur'].' '.$obs['nom_utilisateur'];
504
		$titre = "$nom_plante à $lieu par $utilisateur";
447
		$titre = "$nom_plante à $lieu par $utilisateur";
505
		$titre = $this->nettoyerTexte($titre);
448
		$titre = $this->nettoyerTexte($titre);
506
		return $titre;
449
		return $titre;
Line 507... Line 450...
507
	}
450
	}
508
	
451
	
509
	private function creerGuidItem($element) {
452
	private function creerGuidItem($element) {
510
		$guid = sprintf($this->config['settings']['guidObsTpl'], $element['id']);
453
		$guid = sprintf($this->config['settings']['guidObsTpl'], $element['id_observation']);
Line 511... Line 454...
511
		return $guid;
454
		return $guid;
512
	}
455
	}
513
	
456
	
514
	private function creerLienItem($element) {
457
	private function creerLienItem($element) {
515
		$lien = null;
458
		$lien = null;
516
		if ($element['num_nom_sel'] != 0) {
459
		if ($element['nom_sel_nn'] != 0) {
517
			$lien = sprintf($this->config['settings']['efloreUrlTpl'], urlencode($element['num_nom_sel']), 'cel');
460
			$lien = sprintf($this->config['settings']['efloreUrlTpl'], urlencode($element['nom_sel_nn']), 'cel');
Line 518... Line 461...
518
		}
461
		}
519
		return $lien;
462
		return $lien;
520
	}
463
	}
521
	
464
	
522
	private function creerDescription($obs, $item) {
465
	private function creerDescription($obs, $item) {
523
		$id_obs = $obs['id'];
466
		$id_obs = $obs['id_observation'];
524
		$famille = $obs['famille'];
467
		$famille = $obs['famille'];
525
		$nom_saisi = $obs['nom_sel'];
468
		$nom_saisi = $obs['nom_sel'];
526
		$nom_retenu = $obs['nom_ret'];
469
		$nom_retenu = $obs['nom_ret'];
527
		$auteur = $this->auteurs[$obs['identifiant']];
470
		$auteur = $obs['prenom_utilisateur'].' '.$obs['nom_utilisateur'];
528
		$auteur_mail = $obs['identifiant'];
471
		$auteur_mail = $obs['courriel_utilisateur'];
529
		$mots_cles_obs = $this->decoderMotsClesObs($obs['identifiant'], $obs['mots_cles']);
472
		$mots_cles_obs = $obs['mots_cles_texte'];
530
		$lien_correction = sprintf($this->config['settings']['phpEditUrlTpl'], $obs['id']);
473
		$lien_correction = sprintf($this->config['settings']['phpEditUrlTpl'], $obs['id_observation']);
531
		$lieu = $obs['location'].' ('.$obs['id_location'].') > '.$obs['lieudit'].' > '.$obs['station'];
474
		$lieu = $obs['zone_geo'].' ('.$this->convertirCodeZoneGeoVersCodeInsee($obs['ce_zone_geo']).') > '.$obs['lieudit'].' > '.$obs['station'];
532
		$milieu = $obs['milieu'];
475
		$milieu = $obs['milieu'];
533
		$coordonnees = ($this->etreNull($obs['coord_x']) && $this->etreNull($obs['coord_y'])) ? '' : $obs['coord_x'].'/'.$obs['coord_y'];
476
		$coordonnees = ($this->etreNull($obs['latitude']) && $this->etreNull($obs['longitude'])) ? '' : $obs['latitude'].'/'.$obs['longitude'];
534
		$commentaire = $obs['commentaire'];
477
		$commentaire = $obs['commentaire'];
Line 546... Line 489...
546
			'<li>'.'Observée le : '.$date_observation.'</li>'.
489
			'<li>'.'Observée le : '.$date_observation.'</li>'.
547
			'<li>'.'Lieu : '.$lieu.'</li>'.
490
			'<li>'.'Lieu : '.$lieu.'</li>'.
548
			'<li>'.'Milieu : '.$milieu.'</li>'.
491
			'<li>'.'Milieu : '.$milieu.'</li>'.
549
			(($this->etreFluxAdmin()) ? '<li>Coordonnées (Lat/Long) : '.$coordonnees.'</li>' : '').
492
			(($this->etreFluxAdmin()) ? '<li>Coordonnées (Lat/Long) : '.$coordonnees.'</li>' : '').
550
			'<li>'.'Commentaire : '.$commentaire.'</li>'.
493
			'<li>'.'Commentaire : '.$commentaire.'</li>'.
551
			'<li>'.'Mots-clés : '.implode(', ', $mots_cles_obs).'</li>'.
494
			'<li>'.'Mots-clés : '.$mots_cles_obs.'</li>'.
552
			(($this->etreFluxAdmin()) ? '<li>Transmis (= public) : '.$transmission.'</li>' : '').
495
			(($this->etreFluxAdmin()) ? '<li>Transmis (= public) : '.$transmission.'</li>' : '').
553
			'<li>Modifiée le : '.$date_modification.'</li>'.
496
			'<li>Modifiée le : '.$date_modification.'</li>'.
554
			'<li>Créée le : '.$date_creation.'</li>'.
497
			'<li>Créée le : '.$date_creation.'</li>'.
555
			'<li>'.'Par : '.
498
			'<li>'.'Par : '.
556
				(($this->etreFluxAdmin()) ? '<a href="mailto:'.$auteur_mail.'">'.$auteur.'</a>' : $auteur).
499
				(($this->etreFluxAdmin()) ? '<a href="mailto:'.$auteur_mail.'">'.$auteur.'</a>' : $auteur).