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() { |