Subversion Repositories eFlore/Applications.eflore-consultation

Rev

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

Rev 1054 Rev 1056
Line 77... Line 77...
77
	
77
	
78
	private function traiterTableauChorologie($infos_choro) {
78
	private function traiterTableauChorologie($infos_choro) {
79
		$donnees_choro = array();
79
		$donnees_choro = array();
80
		$colonnes = array();
80
		$colonnes = array();
81
		foreach ($infos_choro as $param => $valeur) {
81
		foreach ($infos_choro as $param => $valeur) {
82
			if(substr($param, 0, 8) == 'presence') {	
82
			if(strncmp($param, 'presence', 8) == 0) {
83
				$lieu = $this->obtenirLieuPourCodePresence($param);
83
				$lieu = self::obtenirLieuPourCodePresence($this->referentiel, $param);
84
				if($lieu != '') {
84
				if($lieu) {
85
					$donnees_choro['Présence'][$lieu] = $valeur;
-
 
86
					if(!in_array($lieu, $colonnes)) {
85
					$donnees_choro['Présence'][$lieu] = $valeur;
87
						$colonnes[] = $lieu;
-
 
88
					}
86
					$colonnes[] = $lieu;
89
				}
87
				}
90
			} else {
88
			} else {
91
				$donnees_choro = $this->traiterChampsStatuts($donnees_choro, $param, $valeur);
89
				$donnees_choro = self::traiterChampsStatuts($this->referentiel, $donnees_choro, $param, $valeur);
92
			}
90
			}
Line 93... Line 91...
93
		}
91
		}
94
 
92
 
Line 95... Line 93...
95
		ksort($donnees_choro);	
93
		ksort($donnees_choro);
96
		$donnees = array('colonnes' => $colonnes, 'donnees' => $donnees_choro);
94
		$donnees = array('colonnes' => array_unique($colonnes), 'donnees' => $donnees_choro);
Line 97... Line 95...
97
		
95
		
98
		return $donnees;
96
		return $donnees;
99
	}
97
	}
100
	
98
	
101
	private function traiterChampsStatuts($tableau_donnees, $code, $valeur) {
99
	static function traiterChampsStatuts($ref, $tableau_donnees, $code, $valeur) {
102
		if ($code == 'statut_origine.libelle') {
100
		if ($code == 'statut_origine.libelle') {
103
			$tableau_donnees['Statut d\'origine']['France'] = $valeur;
101
			$tableau_donnees['Statut d\'origine'][$ref == 'bdtfx' ? 'France' : 'Antilles'] = $valeur;
104
		} elseif ($code == 'statut_introduction.libelle') {
102
		} elseif ($code == 'statut_introduction.libelle') {
Line 105... Line 103...
105
			$tableau_donnees['Statut d\'introduction']['France'] = $valeur;
103
			$tableau_donnees['Statut d\'introduction'][$ref == 'bdtfx' ? 'France' : 'Antilles'] = $valeur;
106
		} elseif ($code == 'statut_culture.libelle') {
104
		} elseif ($code == 'statut_culture.libelle') {
107
			$tableau_donnees['Statut de culture']['France'] = $valeur;
105
			$tableau_donnees['Statut de culture'][$ref == 'bdtfx' ? 'France' : 'Antilles'] = $valeur;
-
 
106
		}
-
 
107
		
-
 
108
		return $tableau_donnees;
108
		}
109
	}
-
 
110
 
109
		
111
	/* eg:
110
		return $tableau_donnees;
112
	 * - presence.libelle
111
	}
113
	 * - presence_Guadeloupe.code */
112
	
114
	static function obtenirLieuPourCodePresence($ref, $str) {
113
	private function obtenirLieuPourCodePresence($code) {
115
		// ignore les paramètres JSON de présence qui ne contiennent pas le libellé
114
		$tableau_presence = explode('_', $code, 2);
-
 
115
		$prefixe = (count($tableau_presence) == 2) ? $tableau_presence[0] : '';
116
		// (= présence en toutes lettres)
116
		$lieu = (count($tableau_presence) == 2) ? $tableau_presence[1] : '';
-
 
117
			
-
 
118
		if($code == 'presence.libelle') {
-
 
119
			$lieu = 'France';
117
		if(substr($str, -7) != 'libelle') return NULL;
120
		} elseif (($lieu != '') && strpos($lieu , '.') === false) {
-
 
121
			$lieu = 'France ('.$this->getCorrespondanceLieu($lieu).')';
-
 
122
		} else {
118
		list($prefixe, $lieu) = explode('_', $str, 2);
123
			$lieu = '';
119
 
124
		}
120
		if($str == 'presence.libelle') {
125
		return $lieu;
-
 
126
	}
121
			return $ref == 'bdtfx' ? 'France' : 'Antilles';
127
	
122
		}
128
	private function getCorrespondanceLieu($lieu) {
123
 
129
		switch(strtolower($lieu)) {
124
		list($lieu, $param) = explode('.', $lieu, 2);
130
			case 'ga':
125
		if (strtolower($lieu) == 'ga') {
131
				$lieu = 'Hors Corse';
126
			return 'France (Hors Corse)';
132
				break;
-
 
133
			case 'co':
127
		} elseif (strtolower($lieu) == 'co') {
134
				$lieu = 'Corse';
128
			return 'France (Corse)';
Line 135... Line 129...
135
				break;
129
		} elseif($lieu) {
136
		}
130
			return $lieu;
137
	
131
		}