Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2400 Rev 2403
Line 423... Line 423...
423
			}
423
			}
424
			$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
424
			$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
425
			$champs_etendus = $gestion_champs_etendus->consulterParLots($ids_observations);
425
			$champs_etendus = $gestion_champs_etendus->consulterParLots($ids_observations);
426
			if(!empty($champs_etendus)) {
426
			if(!empty($champs_etendus)) {
427
				$this->catalogue_cles_labels_champs_etendus = $gestion_champs_etendus->consulterCatalogueChampsEtendusPredefinis(true);
427
				$this->catalogue_cles_labels_champs_etendus = $gestion_champs_etendus->consulterCatalogueChampsEtendusPredefinis(true);
-
 
428
				// afin de simplifier les erreurs de majuscules et minuscules
-
 
429
				$this->catalogue_cles_labels_champs_etendus = array_change_key_case($this->catalogue_cles_labels_champs_etendus);
428
			}
430
			}
429
			$this->auteurs = $this->creerAuteurs($identifiants);
431
			$this->auteurs = $this->creerAuteurs($identifiants);
430
			foreach ($elements as $element) {
432
			foreach ($elements as $element) {
431
				$element['obs_etendue'] = isset($champs_etendus[$element['id_observation']]) ? $champs_etendus[$element['id_observation']] : array();
433
				$element['obs_etendue'] = isset($champs_etendus[$element['id_observation']]) ? $champs_etendus[$element['id_observation']] : array();
432
				$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
434
				$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
Line 543... Line 545...
543
	}
545
	}
Line 544... Line 546...
544
 
546
 
545
	private function creerDescriptionChampsEtendus($obs, $item) {
547
	private function creerDescriptionChampsEtendus($obs, $item) {
546
		$champs_etendus = '';
548
		$champs_etendus = '';
-
 
549
		foreach($obs['obs_etendue'] as $cle => &$champ) {
547
		foreach($obs['obs_etendue'] as $cle => &$champ) {
550
			if($this->doitAfficherChampEtendu($champ->cle, $this->catalogue_cles_labels_champs_etendus)) {
548
			if(isset($this->catalogue_cles_labels_champs_etendus[$champ->cle])) {
551
				if(isset($this->catalogue_cles_labels_champs_etendus[$champ->cle])) {
549
				$label = $this->catalogue_cles_labels_champs_etendus[$champ->cle]['label'];
552
					$label = $this->catalogue_cles_labels_champs_etendus[$champ->cle]['label'];
550
			} else {
553
				} else {
551
				$label = preg_replace("/(?<=\\w)(?=[A-Z])/"," $1", $champ->cle);
554
					$label = preg_replace("/(?<=\\w)(?=[A-Z])/"," $1", $champ->cle);
552
				$label = trim($label);
555
					$label = trim($label);
-
 
556
					$label = $label;
-
 
557
				}
553
				$label = $label;
558
				$champs_etendus .= '<li>'.$this->nePasInterpreterXml($label.' : '.$champ->valeur).' </li>';
554
			}
-
 
555
			$champs_etendus .= '<li>'.$this->nePasInterpreterXml($label.' : '.$champ->valeur).' </li>';
559
			}
Line 556... Line 560...
556
		}
560
		}
557
 
561
 
558
		if($champs_etendus != '') {
562
		if($champs_etendus != '') {
-
 
563
			$champs_etendus = '<li> Champs supplémentaires : <ul>'.$champs_etendus.'</ul></li>';
559
			$champs_etendus = '<li> Champs supplémentaires : <ul>'.$champs_etendus.'</ul></li>';
564
		}
560
		}
565
 
-
 
566
		return $champs_etendus;
-
 
567
	}
-
 
568
	
-
 
569
	private function doitAfficherChampEtendu($cle, $catalogue) {
-
 
570
		// Suppression des nombres à la fin de la chaines dans le cas des clés
-
 
571
		// "multiples" et mise en minuscule
-
 
572
		$cle_simplifiee = preg_replace("/\d+$/","",$cle);
-
 
573
		$cle_simplifiee = strtolower(rtrim($cle_simplifiee, ":"));
-
 
574
		
-
 
575
		// Un champ est affichable s'il n'est pas au catalogue ou bien
-
 
576
		// s'il n'est pas marqué privé dans celui-ci
-
 
577
		$affichable = !isset($catalogue[$cle_simplifiee]) ||
-
 
578
						$catalogue[$cle_simplifiee]['options']['prive'] != 1;
-
 
579
		
Line 561... Line 580...
561
		return $champs_etendus;
580
		return $affichable;	
562
	}
581
	}
563
 
582
 
564
	private function creerCategorie($element) {
583
	private function creerCategorie($element) {