683,7 → 683,7 |
private function testerHomonymieExistence() { |
$info = array('nom' => 'homonyme -> existence', |
'description' => "Si le champ homonyme contient «1» alors plusieurs noms doivent posséder la même valeur ". |
"dans le champ nom_complet.", |
"dans le champ nom_sci.", |
'resultat' => false); |
|
$noms_homonymie = $this->classerNomsParNomComplet(); |
692,8 → 692,8 |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
if ($nom['homonyme'] != '0' && $nom['homonyme'] != '') { |
if ($noms_homonymie[$nom['nom_complet']] <= 1) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet']); |
if ($noms_homonymie[$nom['nom_sci']] <= 1) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci']); |
} |
} |
} |
887,7 → 887,7 |
$noms_erreur = array(); |
foreach ($this->noms as &$nom) { |
if ((isset($nom['nom_commercial']) && $nom['nom_commercial'] != '') && ($nom['cultivar'] == '' && $nom['cultivar_groupe'] == '')) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet']); |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci']); |
} |
} |
|
950,7 → 950,7 |
foreach ($this->noms as &$nom) { |
if ($nom['cultivar'] != '') { |
if ($nom['rang'] < $this->manuel['rang_genre']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet'], $nom['rang']); |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']); |
} |
} |
} |
957,7 → 957,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'rang erroné'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1009,7 → 1009,7 |
foreach ($this->noms as &$nom) { |
if ($nom['cultivar_groupe'] != '') { |
if ($nom['rang'] < $this->manuel['rang_genre']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet'], $nom['rang']); |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']); |
} |
} |
} |
1016,7 → 1016,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'rang erroné'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1101,7 → 1101,7 |
foreach ($this->noms as &$nom) { |
if ($nom['epithete_infra_sp'] != '') { |
if ($nom['rang'] < $this->manuel['rang_sp']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet'], $nom['rang']); |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']); |
} |
} |
} |
1108,7 → 1108,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'rang erroné'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1551,8 → 1551,8 |
} |
|
private function testerNomCompletSupraGenerique() { |
$info = array('nom' => 'nom_complet -> noms supra-génériques', |
'description' => "Si le rang est < à {$this->manuel['rang_genre']} le nom_complet doit correspondre à la valeur du champ nom_supra_generique. ". |
$info = array('nom' => 'nom_sci -> noms supra-génériques', |
'description' => "Si le rang est < à {$this->manuel['rang_genre']} le nom_sci doit correspondre à la valeur du champ nom_supra_generique. ". |
"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.", |
'resultat' => false); |
|
1561,11 → 1561,11 |
foreach ($this->noms as &$nom) { |
if ($nom['rang'] < $this->manuel['rang_genre']) { |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom); |
$nom_complet_ideal = $this->formaterStyleNomGenre($nom['nom_supra_generique']); |
$nom_complet_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_complet'] != $nom_complet_ideal) { |
$nom_complet_traite = $this->repererEspace($nom['nom_complet']); |
$noms_erreur[] = array($nom['num_nom'], $nom_complet_traite, $nom_complet_ideal); |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['nom_supra_generique']); |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal); |
} |
} |
} |
1572,7 → 1572,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'nom_complet corrigé'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'nom_sci corrigé'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1582,8 → 1582,8 |
} |
|
private function testerNomCompletGenre() { |
$info = array('nom' => 'nom_complet -> noms de genres', |
'description' => "Si le rang est = à {$this->manuel['rang_genre']} le nom_complet doit correspondre à la valeur du champ genre. ". |
$info = array('nom' => 'nom_sci -> noms de genres', |
'description' => "Si le rang est = à {$this->manuel['rang_genre']} le nom_sci doit correspondre à la valeur du champ genre. ". |
"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.", |
'resultat' => false); |
|
1592,11 → 1592,11 |
foreach ($this->noms as &$nom) { |
if ($nom['rang'] == $this->manuel['rang_genre']) { |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom); |
$nom_complet_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_complet_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_complet'] != $nom_complet_ideal) { |
$nom_complet_traite = $this->repererEspace($nom['nom_complet']); |
$noms_erreur[] = array($nom['num_nom'], $nom_complet_traite, $nom_complet_ideal); |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal); |
} |
} |
} |
1603,7 → 1603,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'nom_complet corrigé'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'nom_sci corrigé'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1613,8 → 1613,8 |
} |
|
private function testerNomCompletInfraGenre() { |
$info = array('nom' => 'nom_complet -> noms infra-génériques', |
'description' => "Si le rang est > à {$this->manuel['rang_genre']} et < à {$this->manuel['rang_sp']} le nom_complet doit correspondre à une des formules suivantes : \n". |
$info = array('nom' => 'nom_sci -> noms infra-génériques', |
'description' => "Si le rang est > à {$this->manuel['rang_genre']} et < à {$this->manuel['rang_sp']} le nom_sci doit correspondre à une des formules suivantes : \n". |
" genre + ' ' + type_epithete + ' ' + epithete_infra_generique \n". |
" genre + ' ' + epithete_infra_generique + ' ' + type_epithete=agg. \n". |
"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.", |
1625,20 → 1625,20 |
foreach ($this->noms as &$nom) { |
if ($nom['rang'] > $this->manuel['rang_genre'] && $nom['rang'] < $this->manuel['rang_sp']) { |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom); |
$nom_complet_ideal = ''; |
$nom_sci_ideal = ''; |
if ($nom['type_epithete'] == 'agg.') { |
$nom_complet_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_complet_ideal .= ' '.$this->formaterStyleNomGenre($nom['epithete_infra_generique']); |
$nom_complet_ideal .= ' '.$nom['type_epithete']; |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_sci_ideal .= ' '.$this->formaterStyleNomGenre($nom['epithete_infra_generique']); |
$nom_sci_ideal .= ' '.$nom['type_epithete']; |
} else { |
$nom_complet_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_complet_ideal .= ' '.$nom['type_epithete']; |
$nom_complet_ideal .= ' '.$this->formaterStyleNomGenre($nom['epithete_infra_generique']); |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_sci_ideal .= ' '.$nom['type_epithete']; |
$nom_sci_ideal .= ' '.$this->formaterStyleNomGenre($nom['epithete_infra_generique']); |
} |
$nom_complet_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_complet'] != $nom_complet_ideal) { |
$nom_complet_traite = $this->repererEspace($nom['nom_complet']); |
$noms_erreur[] = array($nom['num_nom'], $nom_complet_traite, $nom_complet_ideal); |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal); |
} |
} |
} |
1645,7 → 1645,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'nom_complet corrigé'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'nom_sci corrigé'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1656,8 → 1656,8 |
} |
|
private function testerNomCompletEspece() { |
$info = array('nom' => "nom_complet -> noms d'espèce", |
'description' => "Si le rang est = à {$this->manuel['rang_sp']} le nom_complet doit correspondre à la formule : \n". |
$info = array('nom' => "nom_sci -> noms d'espèce", |
'description' => "Si le rang est = à {$this->manuel['rang_sp']} le nom_sci doit correspondre à la formule : \n". |
" genre + ' ' + epithete_sp \n". |
"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.", |
'resultat' => false); |
1667,12 → 1667,12 |
foreach ($this->noms as &$nom) { |
if ($nom['rang'] == $this->manuel['rang_sp']) { |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom); |
$nom_complet_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_complet_ideal .= ' '.strtolower($nom['epithete_sp']); |
$nom_complet_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_complet'] != $nom_complet_ideal) { |
$nom_complet_traite = $this->repererEspace($nom['nom_complet']); |
$noms_erreur[] = array($nom['num_nom'], $nom_complet_traite, $nom_complet_ideal); |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_sci_ideal .= ' '.strtolower($nom['epithete_sp']); |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal); |
} |
} |
} |
1679,7 → 1679,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'nom_complet corrigé'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'nom_sci corrigé'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1690,8 → 1690,8 |
} |
|
private function testerNomCompletInfraSpecifique() { |
$info = array('nom' => 'nom_complet -> noms infra-spécifiques', |
'description' => "Si le rang est > à {$this->manuel['rang_sp']} le nom_complet doit correspondre à la formule : \n". |
$info = array('nom' => 'nom_sci -> noms infra-spécifiques', |
'description' => "Si le rang est > à {$this->manuel['rang_sp']} le nom_sci doit correspondre à la formule : \n". |
" genre + ' ' + epithete_sp + ' ' + type_epithete + ' ' + epithete_infra_generique\n". |
"Les valeurs des champs cultivar_groupe, cultivar et nom_commercial peuvent s'y ajouter.", |
'resultat' => false); |
1701,14 → 1701,14 |
foreach ($this->noms as &$nom) { |
if ($nom['rang'] > $this->manuel['rang_sp']) { |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom); |
$nom_complet_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_complet_ideal .= ' '.strtolower($nom['epithete_sp']); |
$nom_complet_ideal .= ' '.strtolower($nom['type_epithete']); |
$nom_complet_ideal .= ' '.strtolower($nom['epithete_infra_sp']); |
$nom_complet_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_complet'] != $nom_complet_ideal) { |
$nom_complet_traite = $this->repererEspace($nom['nom_complet']); |
$noms_erreur[] = array($nom['num_nom'], $nom_complet_traite, $nom_complet_ideal); |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']); |
$nom_sci_ideal .= ' '.strtolower($nom['epithete_sp']); |
$nom_sci_ideal .= ' '.strtolower($nom['type_epithete']); |
$nom_sci_ideal .= ' '.strtolower($nom['epithete_infra_sp']); |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : ''); |
if ($nom['nom_sci'] != $nom_sci_ideal) { |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']); |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal); |
} |
} |
} |
1715,7 → 1715,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'nom_complet corrigé'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'nom_sci corrigé'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1792,7 → 1792,7 |
foreach ($this->noms as &$nom) { |
if ($nom['nom_supra_generique'] != '') { |
if ($nom['rang'] >= $this->manuel['rang_genre']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet'], $nom['rang']); |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']); |
} |
} |
} |
1799,7 → 1799,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'rang erroné'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1884,7 → 1884,7 |
foreach ($this->noms as &$nom) { |
if ($nom['genre'] != '') { |
if ($nom['rang'] < $this->manuel['rang_genre']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet'], $nom['rang']); |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']); |
} |
} |
} |
1891,7 → 1891,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'rang erroné'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
1941,7 → 1941,7 |
foreach ($this->noms as &$nom) { |
if ($nom['epithete_infra_generique'] != '') { |
if ($nom['rang'] <= $this->manuel['rang_genre'] || $nom['rang'] >= $this->manuel['rang_sp']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet'], $nom['rang']); |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']); |
} |
} |
} |
1948,7 → 1948,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'rang erroné'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
2062,7 → 2062,7 |
foreach ($this->noms as &$nom) { |
if ($nom['epithete_sp'] != '') { |
if ($nom['rang'] < $this->manuel['rang_sp']) { |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_complet'], $nom['rang']); |
$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']); |
} |
} |
} |
2069,7 → 2069,7 |
|
// Analyse des résultats |
if (count($noms_erreur) > 0) { |
$info['message']['entete'] = array('num_nom', 'nom_complet', 'rang erroné'); |
$info['message']['entete'] = array('num_nom', 'nom_sci', 'rang erroné'); |
$info['message']['lignes'] = $noms_erreur; |
} else { |
$info['resultat'] = true; |
2334,9 → 2334,9 |
return $genre_fmt; |
} |
|
private function repererEspace($nom_complet) { |
$nom_complet = str_replace(' ', '<span class="espace"> </span>', $nom_complet); |
return $nom_complet; |
private function repererEspace($nom_sci) { |
$nom_sci = str_replace(' ', '<span class="espace"> </span>', $nom_sci); |
return $nom_sci; |
} |
|
private function construireSuffixeNomPltCultivee(&$nom) { |
2379,10 → 2379,10 |
private function classerNomsParNomComplet() { |
$noms_classes = array(); |
foreach ($this->noms as &$nom) { |
if (!isset($noms_classes[$nom['nom_complet']])) { |
$noms_classes[$nom['nom_complet']] = 1; |
if (!isset($noms_classes[$nom['nom_sci']])) { |
$noms_classes[$nom['nom_sci']] = 1; |
} else { |
$noms_classes[$nom['nom_complet']]++; |
$noms_classes[$nom['nom_sci']]++; |
} |
} |
return $noms_classes; |