Subversion Repositories eFlore/Applications.cel

Rev

Rev 1816 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1816 Rev 1835
Line 8... Line 8...
8
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
8
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
9
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
9
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
10
*/
10
*/
11
define('SEPARATEUR_IMAGES', " / ");
11
define('SEPARATEUR_IMAGES', " / ");
12
define('PREFIX_CHAMPS_ETENDUS', "ext:");
12
define('PREFIX_CHAMPS_ETENDUS', "ext:");
-
 
13
// utilisé par formaterUrlUser() [ nécessaire pour le widget d'export)
-
 
14
define('USER_BASEURL', 'http://www.tela-botanica.org/profil:%d');
Line 13... Line 15...
13
 
15
 
Line 14... Line 16...
14
Class FormateurGroupeColonne {
16
Class FormateurGroupeColonne {
15
 
17
 
Line 22... Line 24...
22
	// les groupes de champs utilisables
24
	// les groupes de champs utilisables
23
	static $fieldGroups = array(
25
	static $fieldGroups = array(
24
		'standard',
26
		'standard',
25
		'avance',
27
		'avance',
26
		'etendu',
28
		'etendu',
27
		'baseflor'
29
		'baseflor',
-
 
30
		'auteur'
28
	);
31
	);
Line 29... Line 32...
29
 
32
 
30
	// les données baseflor à récupérer: colonnes présentes dans cel_references
33
	// les données baseflor à récupérer: colonnes présentes dans cel_references
31
	// et intitulés associés
34
	// et intitulés associés
Line 275... Line 278...
275
															  'importable' => FALSE,
278
															  'importable' => FALSE,
276
															  'preload' => array(__CLASS__, 'champsEtendus_preload'),
279
															  'preload' => array(__CLASS__, 'champsEtendus_preload'),
277
															  'dyna' => array(__CLASS__, 'champsEtendus_ligne'))),
280
															  'dyna' => array(__CLASS__, 'champsEtendus_ligne'))),
278
			);
281
			);
279
		}
282
		}
-
 
283
 
-
 
284
		if(isset($groupe_de_champs['auteur'])) {
-
 
285
			$colonnes += array(
-
 
286
				'observateur'	=> self::GenColInfo(Array('abbrev' => 'observateur',
-
 
287
														  'nom' => 'Observateur',
-
 
288
														  'extra' => 1,
-
 
289
														  'fonction_data' => 'formaterUrlUser',
-
 
290
														  'importable' => FALSE)),
-
 
291
			);
-
 
292
		}
-
 
293
 
280
		return $colonnes;
294
		return $colonnes;
281
	}
295
	}
Line 282... Line 296...
282
 
296
 
283
	static function preload($colonnes, $cel, $ids) {
297
	static function preload($colonnes, $cel, $ids) {
Line 297... Line 311...
297
	public static function retournerNomItem(&$item) {
311
	public static function retournerNomItem(&$item) {
298
		return $item['nom'];
312
		return $item['nom'];
299
	}
313
	}
Line 300... Line 314...
300
 
314
 
301
	public static function getLigneObservation(&$obs, &$colonnes, $cel = false) {
-
 
302
 
315
	public static function getLigneObservation(&$obs, &$colonnes, $cel = false) {
303
		$ligne_formatee = array();
316
		$ligne_formatee = array();
304
		foreach($colonnes as $abbrev => $colonne) {
317
		foreach($colonnes as $abbrev => $colonne) {
305
			$valeur = null;
318
			$valeur = null;
Line 306... Line 319...
306
			if($colonne['extra'] == 2 || ! is_null($colonne['dyna'])) continue;
319
			if($colonne['extra'] == 2 || ! is_null($colonne['dyna'])) continue;
307
	
320
	
Line 308... Line 321...
308
			// valeur direct depuis cel_obs ?
321
			// valeur directe depuis cel_obs ?
309
			if(isset($obs[$abbrev])) $valeur = $obs[$abbrev];
322
			if(isset($obs[$abbrev])) $valeur = $obs[$abbrev];
310
	
323
	
311
			// pré-processeur de la champs
324
			// pré-processeur des champs
312
			if(function_exists($colonne['fonction'])) {
325
			if(function_exists($colonne['fonction'])) {
313
				$valeur = $colonne['fonction']($valeur);
326
				$valeur = $colonne['fonction']($valeur);
Line 343... Line 356...
343
				
356
				
344
			// // fin de section "cas particuliers"
357
			// // fin de section "cas particuliers"
345
			$ligne_formatee[] = $valeur;
358
			$ligne_formatee[] = $valeur;
Line 346... Line 359...
346
		}
359
		}
347
 
360
 
348
		// uniquement les champŝ dynamiques
361
		// uniquement les champs dynamiques
349
		foreach($colonnes as $abbrev => $colonne) {
362
		foreach($colonnes as $abbrev => $colonne) {
350
			$valeur = null;
363
			$valeur = null;
351
			if(is_null($colonne['dyna'])) continue;
364
			if(is_null($colonne['dyna'])) continue;
Line 425... Line 438...
425
		$date_formatee = strftime('%Y/%m/%d', $timestamp);
438
		$date_formatee = strftime('%Y/%m/%d', $timestamp);
426
		if(!$date_formatee) return "00/00/0000";
439
		if(!$date_formatee) return "00/00/0000";
427
		return $date_formatee;
440
		return $date_formatee;
428
	}
441
	}
Line -... Line 442...
-
 
442
 
-
 
443
	static function formaterUrlUser($obs) {
-
 
444
		$is_id = is_numeric($obs['ce_utilisateur']);
-
 
445
		return sprintf("%s %s <%s>%s",
-
 
446
					   $obs['prenom_utilisateur'],
-
 
447
					   $obs['nom_utilisateur'],
-
 
448
					   preg_replace(';@.*;', '@...', $obs['courriel_utilisateur']),
-
 
449
					   $is_id ? sprintf(' (' . USER_BASEURL . ')', $obs['ce_utilisateur']) : '');
-
 
450
	}
429
 
451
 
430
	static function getImages_preload($cel, $obsids) {
452
	static function getImages_preload($cel, $obsids) {
431
		if(!$obsids) return;
453
		if(!$obsids) return;
432
		$rec = Cel::db()->requeter(
454
		$rec = Cel::db()->requeter(
433
			sprintf("SELECT o.id_observation, GROUP_CONCAT(nom_original ORDER BY nom_original ASC SEPARATOR '%s') AS i " .
455
			sprintf("SELECT o.id_observation, GROUP_CONCAT(nom_original ORDER BY nom_original ASC SEPARATOR '%s') AS i " .