Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 1055 → Rev 1056

/trunk/modules/fiche/formateurs/Ethnobotanique.php
79,63 → 79,57
$donnees_choro = array();
$colonnes = array();
foreach ($infos_choro as $param => $valeur) {
if(substr($param, 0, 8) == 'presence') {
$lieu = $this->obtenirLieuPourCodePresence($param);
if($lieu != '') {
if(strncmp($param, 'presence', 8) == 0) {
$lieu = self::obtenirLieuPourCodePresence($this->referentiel, $param);
if($lieu) {
$donnees_choro['Présence'][$lieu] = $valeur;
if(!in_array($lieu, $colonnes)) {
$colonnes[] = $lieu;
}
$colonnes[] = $lieu;
}
} else {
$donnees_choro = $this->traiterChampsStatuts($donnees_choro, $param, $valeur);
$donnees_choro = self::traiterChampsStatuts($this->referentiel, $donnees_choro, $param, $valeur);
}
}
 
ksort($donnees_choro);
$donnees = array('colonnes' => $colonnes, 'donnees' => $donnees_choro);
ksort($donnees_choro);
$donnees = array('colonnes' => array_unique($colonnes), 'donnees' => $donnees_choro);
return $donnees;
}
private function traiterChampsStatuts($tableau_donnees, $code, $valeur) {
static function traiterChampsStatuts($ref, $tableau_donnees, $code, $valeur) {
if ($code == 'statut_origine.libelle') {
$tableau_donnees['Statut d\'origine']['France'] = $valeur;
$tableau_donnees['Statut d\'origine'][$ref == 'bdtfx' ? 'France' : 'Antilles'] = $valeur;
} elseif ($code == 'statut_introduction.libelle') {
$tableau_donnees['Statut d\'introduction']['France'] = $valeur;
$tableau_donnees['Statut d\'introduction'][$ref == 'bdtfx' ? 'France' : 'Antilles'] = $valeur;
} elseif ($code == 'statut_culture.libelle') {
$tableau_donnees['Statut de culture']['France'] = $valeur;
$tableau_donnees['Statut de culture'][$ref == 'bdtfx' ? 'France' : 'Antilles'] = $valeur;
}
return $tableau_donnees;
}
private function obtenirLieuPourCodePresence($code) {
$tableau_presence = explode('_', $code, 2);
$prefixe = (count($tableau_presence) == 2) ? $tableau_presence[0] : '';
$lieu = (count($tableau_presence) == 2) ? $tableau_presence[1] : '';
if($code == 'presence.libelle') {
$lieu = 'France';
} elseif (($lieu != '') && strpos($lieu , '.') === false) {
$lieu = 'France ('.$this->getCorrespondanceLieu($lieu).')';
} else {
$lieu = '';
 
/* eg:
* - presence.libelle
* - presence_Guadeloupe.code */
static function obtenirLieuPourCodePresence($ref, $str) {
// ignore les paramètres JSON de présence qui ne contiennent pas le libellé
// (= présence en toutes lettres)
if(substr($str, -7) != 'libelle') return NULL;
list($prefixe, $lieu) = explode('_', $str, 2);
 
if($str == 'presence.libelle') {
return $ref == 'bdtfx' ? 'France' : 'Antilles';
}
return $lieu;
}
private function getCorrespondanceLieu($lieu) {
switch(strtolower($lieu)) {
case 'ga':
$lieu = 'Hors Corse';
break;
case 'co':
$lieu = 'Corse';
break;
 
list($lieu, $param) = explode('.', $lieu, 2);
if (strtolower($lieu) == 'ga') {
return 'France (Hors Corse)';
} elseif (strtolower($lieu) == 'co') {
return 'France (Corse)';
} elseif($lieu) {
return $lieu;
}
return $lieu;
return NULL;
}
private function getWikini() {