13,6 → 13,7 |
private $supraSpIndex = array(); |
private $indexFinal = array(); |
private $tableauParDefaut = array(); |
private $nbreTaxonInf = array(); |
private $enteteFinal = array( |
'num_nom', |
'num_nom_retenu', |
33,8 → 34,12 |
'synonymie_coste', |
'tome', |
'page', |
'nbre_taxons', |
'bdnff_nn', |
'bdnff_nt'); |
'bdnff_nt', |
'image', |
'page_wiki_dsc', |
'page_wiki_cle'); |
|
public function __construct(Conteneur $conteneur) { |
mb_internal_encoding('UTF-8'); |
126,11 → 131,12 |
|
private function ajouterDansIndexFinal($infos) { |
$infos = array_merge($this->tableauParDefaut, $infos); |
$infos['num_nom'] = count($this->indexFinal); |
$infos['num_nom'] = (count($this->indexFinal) + 1); |
$this->indexFinal[$infos['num_nom_coste']] = $infos; |
} |
|
private function ajouterChampsDansIndexFinal() { |
$this->genererNbreTaxons(); |
foreach ($this->indexFinal as $nnc => $infos) { |
if ($infos['num_nom_coste'] == $infos['num_nom_retenu_coste']) { |
$infos['num_nom_retenu'] = $infos['num_nom']; |
138,14 → 144,90 |
$nomSuperieur = $this->indexFinal[$infos['num_tax_sup_coste']]; |
$infos['num_tax_sup'] = $nomSuperieur['num_nom']; |
} |
$nomRetenu = $infos; |
} else { |
$nomRetenu = $this->indexFinal[$infos['num_nom_retenu_coste']]; |
$infos['num_nom_retenu'] = $nomRetenu['num_nom']; |
} |
$infos['image'] = $this->obtenirNomFichierImg($nomRetenu); |
$infos['nbre_taxons'] = $this->obtenirNbreTaxon($infos); |
$infos['nbre_taxons'] = $infos['nbre_taxons']; |
$infos['page_wiki_dsc'] = $this->genererPageWikiDsc($nomRetenu); |
$infos['page_wiki_cle'] = $this->genererPageWikiCle($nomRetenu); |
|
$this->indexFinal[$nnc] = $infos; |
} |
} |
|
private function genererNbreTaxons() { |
foreach ($this->indexFinal as $infos) { |
if ($infos['num_tax_sup_coste'] != '') { |
if (isset($this->nbreTaxonInf[$infos['num_tax_sup_coste']])) { |
$this->nbreTaxonInf[$infos['num_tax_sup_coste']] += 1; |
} else { |
$this->nbreTaxonInf[$infos['num_tax_sup_coste']] = 1; |
} |
} |
} |
} |
|
private function genererPageWikiDsc($infos) { |
$prefixe = $this->genererPrefixePage($infos); |
$nomSci = str_replace(' ', '', ucwords(strtolower($infos['nom_sci']))); |
$pageWiki = $prefixe.$nomSci; |
return $pageWiki; |
} |
|
private function genererPageWikiCle($infos) { |
$pageWiki = ''; |
if ($infos['nbre_taxons'] > 1) { |
$prefixe = $this->genererPrefixePage($infos); |
if ($infos['rang'] == '180') { |
$pageWiki = $prefixe.'TabGen'; |
} else if ($infos['rang'] == '220') { |
$pageWiki = $prefixe.'TabSp'; |
} |
} |
return $pageWiki; |
} |
|
private function genererPrefixePage($infos) { |
$prefixe = ''; |
$num = preg_replace('/^[a-z]*([0-9.]+)$/i', '$1', $infos['num_nom_coste']); |
if (preg_match('/^([0-9]+)[.][0-9]+$/i', $infos['num_nom_coste'], $match)) { |
$num = sprintf('%04s', $match[1]); |
} else if ($infos['rang'] < 80 ) { |
$num = sprintf('%02s', $num); |
} else if ($infos['rang'] < 290 ) { |
$num = sprintf('%03s', $num); |
} else { |
$num = sprintf('%04s', $num); |
} |
$rangsTxt = array('20' => 'Reg', '40' => 'Emb', '80' => 'Cla', '180' => 'Fam', '220' => 'Gen', '290' => 'Esp', '340' => 'Var'); |
$rang = $rangsTxt[$infos['rang']]; |
|
$prefixe = $rang.$num; |
return $prefixe; |
} |
|
private function obtenirNbreTaxon($infos) { |
$nbre = ''; |
if ($infos['rang'] == 180 || $infos['rang'] == 220) { |
if (isset($this->nbreTaxonInf[$infos['num_nom_coste']])) { |
$nbre = $this->nbreTaxonInf[$infos['num_nom_coste']]; |
} |
} |
return $nbre; |
} |
|
private function obtenirNomFichierImg($infos) { |
$img = ''; |
if ($infos['rang'] == '290' && ($infos['num_nom'] == $infos['num_nom_retenu'])) { |
$img = $infos['num_nom_coste'].'.png'; |
} |
return $img; |
} |
|
private function creerFichierCsvIndexFinal() { |
$lignes = array(); |
array_unshift($this->indexFinal, $this->enteteFinal); |