150,11 → 150,11 |
$tableau = json_decode($json, true); |
$tableau = $this->traiterParametres($estProjetDefini, $tableau[0]); |
$tableau['especes'] = $this->rechercherInfosEspeces($tableau); |
if ($tableau['milieux'] != '') { |
$tableau['milieux'] = explode(';', $tableau['milieux']); |
} else { |
$tableau['milieux'] = array(); |
if (isset($tableau['type_especes']) && 'fixe' === $tableau['type_especes']) { |
// si on trouve ":" dans referentiel, referentiel = première partie |
$tableau['referentiel'] = (strstr($tableau['referentiel'],':',true)) ?: $tableau['referentiel']; |
} |
$tableau['milieux'] = ($tableau['milieux'] != '') ? explode(';', $tableau['milieux']) : []; |
if (isset($tableau['motscles'])) { |
$tableau['tag-obs'] = $tableau['tag-img'] = $tableau['motscles']; |
} |
193,20 → 193,6 |
return $retour; |
} |
|
private function clean_string( $string ) { |
// les fonctions de base de php ne parviennent pas à une conversion satisfaisante des codes ascii |
// qui ont été générés automatiquement lors de la transmission des chaines en json |
// dans le widget cel manager vers la base |
// Pour les mêmes raisons, @apos@ et @quot@ est une autre astuces utilisée dans ce même widget |
// pour permettre la transmission des apostrophes et guillements sans erreur |
$patterns = array( '/\@apos\@/', '/\@quot\@/', '/u00c0/', '/u00c1/', '/u00c2/', '/u00c3/', '/u00c4/', '/u00c5/', '/u00c6/', '/u00c7/', '/u00c8/', '/u00c9/', '/u00ca/', '/u00cb/', '/u00cc/', '/u00cd/', '/u00ce/', '/u00cf/', '/u00d1/', '/u00d2/', '/u00d3/', '/u00d4/', '/u00d5/', '/u00d6/', '/u00d8/', '/u00d9/', '/u00da/', '/u00db/', '/u00dc/', '/u00dd/', '/u00df/', '/u00e0/', '/u00e1/', '/u00e2/', '/u00e3/', '/u00e4/', '/u00e5/', '/u00e6/', '/u00e7/', '/u00e8/', '/u00e9/', '/u00ea/', '/u00eb/', '/u00ec/', '/u00ed/', '/u00ee/', '/u00ef/', '/u00f0/', '/u00f1/', '/u00f2/', '/u00f3/', '/u00f4/', '/u00f5/', '/u00f6/', '/u00f8/', '/u00f9/', '/u00fa/', '/u00fb/', '/u00fc/', '/u00fd/', '/u00ff/' ); |
$replacements = array( ''', '"', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý','ÿ' ); |
|
$clean_string = preg_replace( $patterns, $replacements, $string ); |
|
return $clean_string; |
} |
|
// remplace certains parametres définis en bd par les parametres définis dans l'url |
private function traiterParametres($estProjetDefini, $tableau) { |
$criteres = array('tag-obs', 'tag-img', 'projet', 'titre', 'logo'); |
233,19 → 219,19 |
|
switch ( $infos_projets['type_especes'] ) { |
case 'fixe' : |
$retour = $this->chargerInfosTaxon( $infos_projets['referentiel'], $infos_projets['especes'] ); |
$info_taxon = explode(':', $referentiel); |
if (!empty($info_taxon) && count((array) $info_taxon) === 2) { |
$retour = $this->chargerInfosTaxon( $info_taxon[0], $info_taxon[1] ); |
} |
break; |
case 'referentiel' : break; |
case 'liste' : |
$referentiel = $infos_projets['referentiel']; |
////////////////////// temporaire test transmission liste taxons |
$retour['taxons'] = $this->recupererListeNomsSci(); |
break; |
} |
} else if ( isset( $infos_projets['referentiel'] ) ) { |
$referentiel = $infos_projets['referentiel']; |
} else if ( isset( $referentiel ) ) { |
if ( isset($infos_projets['num_nom'] ) ) { |
$retour = $this->chargerInfosTaxon( $infos_projets['referentiel'], $infos_projets['num_nom'] ); |
$retour = $this->chargerInfosTaxon( $referentiel, $infos_projets['num_nom'] ); |
} |
} |
return $retour; |
295,7 → 281,7 |
} |
|
/** |
* Trie par nom français les taxons lus dans le fichier csv |
* Trie par nom français les taxons lus dans le fichier csv/tsv |
*/ |
protected function recupererListeNomsSci() { |
$taxons = $this->recupererListeTaxon(); |
351,24 → 337,26 |
} |
|
/** |
* Lit une liste de taxons depuis un fichier csv fourni |
* Lit une liste de taxons depuis un fichier csv ou tsv fourni |
*/ |
protected function recupererListeTaxon() { |
$taxons = array(); |
$langue_projet_url = ( isset ( $this->parametres['langue'] ) && $this->parametres['langue'] !== 'fr' ) ? '_' . $this->parametres['langue'] : ''; |
$chemin_images = dirname(__FILE__) . self::DS . '..' . self::DS . 'manager' . self::DS . 'squelettes' . self::DS . 'img' . self::DS . 'images_projets' . self::DS; |
$fichier_csv = $chemin_images . $this->parametres['projet'] . $langue_projet_url . self::DS . 'especes.csv'; |
$chemin_taxon = $chemin_images . $this->parametres['projet'] . $langue_projet_url . self::DS . 'especes.'; |
|
if ( file_exists( $fichier_csv ) && is_readable( $fichier_csv ) ) { |
$taxons = $this->decomposerFichierCsv( $fichier_csv ); |
if ( file_exists( $chemin_taxon . 'csv' ) && is_readable( $chemin_taxon . 'csv' ) ) { |
$taxons = $this->decomposerFichierCsv( $chemin_taxon . 'csv' ); |
} else if ( file_exists( $chemin_taxon . 'tsv' ) && is_readable( $chemin_taxon . 'tsv' ) ) { |
$taxons = $this->decomposerFichierCsv( $chemin_taxon . 'tsv' ); |
} else { |
$this->debug[] = "Impossible d'ouvrir le fichier '$fichier_csv'."; |
$this->debug[] = "Impossible d'ouvrir le fichier '$fichier_taxon'."; |
} |
return $taxons; |
} |
|
/** |
* Découpe un fihcier csv |
* Découpe un fihcier csv/tsv |
*/ |
protected function decomposerFichierCsv($fichier, $delimiter = "\t"){ |
$header = null; |
422,111 → 410,5 |
} |
return $tableauJs; |
} |
|
private function remove_accents($string) { |
if ( !preg_match('/[\x80-\xff]/', $string) ) |
return $string; |
|
$chars = array( |
// Decompositions for Latin-1 Supplement |
chr(195).chr(128) => 'A', chr(195).chr(129) => 'A', |
chr(195).chr(130) => 'A', chr(195).chr(131) => 'A', |
chr(195).chr(132) => 'A', chr(195).chr(133) => 'A', |
chr(195).chr(135) => 'C', chr(195).chr(136) => 'E', |
chr(195).chr(137) => 'E', chr(195).chr(138) => 'E', |
chr(195).chr(139) => 'E', chr(195).chr(140) => 'I', |
chr(195).chr(141) => 'I', chr(195).chr(142) => 'I', |
chr(195).chr(143) => 'I', chr(195).chr(145) => 'N', |
chr(195).chr(146) => 'O', chr(195).chr(147) => 'O', |
chr(195).chr(148) => 'O', chr(195).chr(149) => 'O', |
chr(195).chr(150) => 'O', chr(195).chr(153) => 'U', |
chr(195).chr(154) => 'U', chr(195).chr(155) => 'U', |
chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y', |
chr(195).chr(159) => 's', chr(195).chr(160) => 'a', |
chr(195).chr(161) => 'a', chr(195).chr(162) => 'a', |
chr(195).chr(163) => 'a', chr(195).chr(164) => 'a', |
chr(195).chr(165) => 'a', chr(195).chr(167) => 'c', |
chr(195).chr(168) => 'e', chr(195).chr(169) => 'e', |
chr(195).chr(170) => 'e', chr(195).chr(171) => 'e', |
chr(195).chr(172) => 'i', chr(195).chr(173) => 'i', |
chr(195).chr(174) => 'i', chr(195).chr(175) => 'i', |
chr(195).chr(177) => 'n', chr(195).chr(178) => 'o', |
chr(195).chr(179) => 'o', chr(195).chr(180) => 'o', |
chr(195).chr(181) => 'o', chr(195).chr(182) => 'o', |
chr(195).chr(182) => 'o', chr(195).chr(185) => 'u', |
chr(195).chr(186) => 'u', chr(195).chr(187) => 'u', |
chr(195).chr(188) => 'u', chr(195).chr(189) => 'y', |
chr(195).chr(191) => 'y', |
// Decompositions for Latin Extended-A |
chr(196).chr(128) => 'A', chr(196).chr(129) => 'a', |
chr(196).chr(130) => 'A', chr(196).chr(131) => 'a', |
chr(196).chr(132) => 'A', chr(196).chr(133) => 'a', |
chr(196).chr(134) => 'C', chr(196).chr(135) => 'c', |
chr(196).chr(136) => 'C', chr(196).chr(137) => 'c', |
chr(196).chr(138) => 'C', chr(196).chr(139) => 'c', |
chr(196).chr(140) => 'C', chr(196).chr(141) => 'c', |
chr(196).chr(142) => 'D', chr(196).chr(143) => 'd', |
chr(196).chr(144) => 'D', chr(196).chr(145) => 'd', |
chr(196).chr(146) => 'E', chr(196).chr(147) => 'e', |
chr(196).chr(148) => 'E', chr(196).chr(149) => 'e', |
chr(196).chr(150) => 'E', chr(196).chr(151) => 'e', |
chr(196).chr(152) => 'E', chr(196).chr(153) => 'e', |
chr(196).chr(154) => 'E', chr(196).chr(155) => 'e', |
chr(196).chr(156) => 'G', chr(196).chr(157) => 'g', |
chr(196).chr(158) => 'G', chr(196).chr(159) => 'g', |
chr(196).chr(160) => 'G', chr(196).chr(161) => 'g', |
chr(196).chr(162) => 'G', chr(196).chr(163) => 'g', |
chr(196).chr(164) => 'H', chr(196).chr(165) => 'h', |
chr(196).chr(166) => 'H', chr(196).chr(167) => 'h', |
chr(196).chr(168) => 'I', chr(196).chr(169) => 'i', |
chr(196).chr(170) => 'I', chr(196).chr(171) => 'i', |
chr(196).chr(172) => 'I', chr(196).chr(173) => 'i', |
chr(196).chr(174) => 'I', chr(196).chr(175) => 'i', |
chr(196).chr(176) => 'I', chr(196).chr(177) => 'i', |
chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij', |
chr(196).chr(180) => 'J', chr(196).chr(181) => 'j', |
chr(196).chr(182) => 'K', chr(196).chr(183) => 'k', |
chr(196).chr(184) => 'k', chr(196).chr(185) => 'L', |
chr(196).chr(186) => 'l', chr(196).chr(187) => 'L', |
chr(196).chr(188) => 'l', chr(196).chr(189) => 'L', |
chr(196).chr(190) => 'l', chr(196).chr(191) => 'L', |
chr(197).chr(128) => 'l', chr(197).chr(129) => 'L', |
chr(197).chr(130) => 'l', chr(197).chr(131) => 'N', |
chr(197).chr(132) => 'n', chr(197).chr(133) => 'N', |
chr(197).chr(134) => 'n', chr(197).chr(135) => 'N', |
chr(197).chr(136) => 'n', chr(197).chr(137) => 'N', |
chr(197).chr(138) => 'n', chr(197).chr(139) => 'N', |
chr(197).chr(140) => 'O', chr(197).chr(141) => 'o', |
chr(197).chr(142) => 'O', chr(197).chr(143) => 'o', |
chr(197).chr(144) => 'O', chr(197).chr(145) => 'o', |
chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe', |
chr(197).chr(148) => 'R',chr(197).chr(149) => 'r', |
chr(197).chr(150) => 'R',chr(197).chr(151) => 'r', |
chr(197).chr(152) => 'R',chr(197).chr(153) => 'r', |
chr(197).chr(154) => 'S',chr(197).chr(155) => 's', |
chr(197).chr(156) => 'S',chr(197).chr(157) => 's', |
chr(197).chr(158) => 'S',chr(197).chr(159) => 's', |
chr(197).chr(160) => 'S', chr(197).chr(161) => 's', |
chr(197).chr(162) => 'T', chr(197).chr(163) => 't', |
chr(197).chr(164) => 'T', chr(197).chr(165) => 't', |
chr(197).chr(166) => 'T', chr(197).chr(167) => 't', |
chr(197).chr(168) => 'U', chr(197).chr(169) => 'u', |
chr(197).chr(170) => 'U', chr(197).chr(171) => 'u', |
chr(197).chr(172) => 'U', chr(197).chr(173) => 'u', |
chr(197).chr(174) => 'U', chr(197).chr(175) => 'u', |
chr(197).chr(176) => 'U', chr(197).chr(177) => 'u', |
chr(197).chr(178) => 'U', chr(197).chr(179) => 'u', |
chr(197).chr(180) => 'W', chr(197).chr(181) => 'w', |
chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y', |
chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z', |
chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z', |
chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z', |
chr(197).chr(190) => 'z', chr(197).chr(191) => 's' |
); |
|
$string = strtr($string, $chars); |
|
return $string; |
} |
} |
?> |