Line 33... |
Line 33... |
33 |
private $traitementDao = null;
|
33 |
private $traitementDao = null;
|
34 |
private $tableStructureDao = null;
|
34 |
private $tableStructureDao = null;
|
35 |
private $referentielDao = null;
|
35 |
private $referentielDao = null;
|
Line 36... |
Line 36... |
36 |
|
36 |
|
37 |
public function executer() {
|
37 |
public function executer() {
|
38 |
$this->manuel = parse_ini_file(Config::get('chemin_appli').DS.'..'.DS.'configurations'.DS.'referentiel_v4.1.ini');
|
38 |
$this->manuel = parse_ini_file(Config::get('chemin_appli').DS.'..'.DS.'configurations'.DS.'referentiel_v4.2.ini');
|
39 |
$this->definirConstantes();
|
39 |
$this->definirConstantes();
|
Line 40... |
Line 40... |
40 |
$this->tests = parse_ini_file($this->getModuleChemin().DS.'configurations'.DS.'tests.ini', true);
|
40 |
$this->tests = parse_ini_file($this->getModuleChemin().DS.'configurations'.DS.'tests.ini', true);
|
41 |
|
41 |
|
Line 547... |
Line 547... |
547 |
$noms_erreur = array();
|
547 |
$noms_erreur = array();
|
548 |
foreach ($this->noms as &$nom) {
|
548 |
foreach ($this->noms as &$nom) {
|
549 |
if ($nom['rang'] == $this->manuel['rang_sp']) {
|
549 |
if ($nom['rang'] == $this->manuel['rang_sp']) {
|
550 |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom);
|
550 |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom);
|
551 |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']);
|
551 |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']);
|
- |
|
552 |
$nom_sci_ideal .= (preg_match('/^(.+)\s+([x+])\s+(.+)$/i', $nom['epithete_sp'], $match) != '' ?
|
- |
|
553 |
' '.utf8_encode(ucfirst(strtolower(utf8_decode($match[1])))).' '.utf8_encode(strtolower(utf8_decode($match[2]))).
|
- |
|
554 |
' '.utf8_encode(ucfirst(strtolower(utf8_decode($match[3])))) :
|
552 |
$nom_sci_ideal .= ' '.utf8_encode(strtolower(utf8_decode($nom['epithete_sp'])));
|
555 |
' '.utf8_encode(strtolower(utf8_decode($nom['epithete_sp']))));
|
553 |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
|
556 |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
|
- |
|
557 |
$nom_sci_ideal = trim($nom_sci_ideal);
|
554 |
if ($nom['nom_sci'] != $nom_sci_ideal) {
|
558 |
if ($nom['nom_sci'] != $nom_sci_ideal) {
|
555 |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
|
559 |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
|
556 |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
|
560 |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
|
557 |
}
|
561 |
}
|
558 |
}
|
562 |
}
|
Line 569... |
Line 573... |
569 |
if ($nom['rang'] > $this->manuel['rang_sp']) {
|
573 |
if ($nom['rang'] > $this->manuel['rang_sp']) {
|
570 |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom);
|
574 |
$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom);
|
571 |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']);
|
575 |
$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']);
|
572 |
$nom_sci_ideal .= ' '.utf8_encode(strtolower(utf8_decode($nom['epithete_sp'])));
|
576 |
$nom_sci_ideal .= ' '.utf8_encode(strtolower(utf8_decode($nom['epithete_sp'])));
|
573 |
$nom_sci_ideal .= ' '.utf8_encode(strtolower(utf8_decode($nom['type_epithete'])));
|
577 |
$nom_sci_ideal .= ' '.utf8_encode(strtolower(utf8_decode($nom['type_epithete'])));
|
- |
|
578 |
$nom_sci_ideal .= (preg_match('/^(.+)\s+([x+])\s+(.+)$/i', $nom['epithete_infra_sp'], $match) != '' ?
|
- |
|
579 |
' '.utf8_encode(ucfirst(strtolower(utf8_decode($match[1])))).' '.utf8_encode(strtolower(utf8_decode($match[2]))).
|
- |
|
580 |
' '.utf8_encode(ucfirst(strtolower(utf8_decode($match[3])))) :
|
574 |
$nom_sci_ideal .= ' '.utf8_encode(strtolower(utf8_decode($nom['epithete_infra_sp'])));
|
581 |
' '.utf8_encode(strtolower(utf8_decode($nom['epithete_infra_sp']))));
|
575 |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
|
582 |
$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
|
- |
|
583 |
$nom_sci_ideal = trim($nom_sci_ideal);
|
576 |
if ($nom['nom_sci'] != $nom_sci_ideal) {
|
584 |
if ($nom['nom_sci'] != $nom_sci_ideal) {
|
577 |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
|
585 |
$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
|
578 |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
|
586 |
$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
|
579 |
}
|
587 |
}
|
580 |
}
|
588 |
}
|
Line 655... |
Line 663... |
655 |
$mots = explode(' ', $nom['genre']);
|
663 |
$mots = explode(' ', $nom['genre']);
|
656 |
foreach ($mots as $mot) {
|
664 |
foreach ($mots as $mot) {
|
657 |
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteGenre($mot))) {
|
665 |
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteGenre($mot))) {
|
658 |
$nom_traite = $this->repererEspace($nom['genre']);
|
666 |
$nom_traite = $this->repererEspace($nom['genre']);
|
659 |
$noms_erreur[] = array($nom['num_nom'], $nom_traite, $nom['exclure_taxref']);
|
667 |
$noms_erreur[] = array($nom['num_nom'], $nom_traite, $nom['exclure_taxref']);
|
- |
|
668 |
break;
|
660 |
}
|
669 |
}
|
661 |
}
|
670 |
}
|
662 |
}
|
671 |
}
|
663 |
}
|
672 |
}
|
664 |
return $noms_erreur;
|
673 |
return $noms_erreur;
|
Line 752... |
Line 761... |
752 |
$mots = explode(' ', $nom['epithete_sp']);
|
761 |
$mots = explode(' ', $nom['epithete_sp']);
|
753 |
foreach ($mots as $mot) {
|
762 |
foreach ($mots as $mot) {
|
754 |
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteSp($mot))) {
|
763 |
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteSp($mot))) {
|
755 |
$epithete_traite = $this->repererEspace($nom['epithete_sp']);
|
764 |
$epithete_traite = $this->repererEspace($nom['epithete_sp']);
|
756 |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
|
765 |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
|
- |
|
766 |
break;
|
757 |
}
|
767 |
}
|
758 |
}
|
768 |
}
|
759 |
}
|
769 |
}
|
760 |
}
|
770 |
}
|
761 |
return $noms_erreur;
|
771 |
return $noms_erreur;
|
Line 844... |
Line 854... |
844 |
private function testerEpitheteInfraSpSyntaxe() {
|
854 |
private function testerEpitheteInfraSpSyntaxe() {
|
845 |
$noms_erreur = array();
|
855 |
$noms_erreur = array();
|
846 |
foreach ($this->noms as &$nom) {
|
856 |
foreach ($this->noms as &$nom) {
|
847 |
if ($nom['epithete_infra_sp'] != '') {
|
857 |
if ($nom['epithete_infra_sp'] != '') {
|
848 |
$mots = explode(' ', $nom['epithete_infra_sp']);
|
858 |
$mots = explode(' ', $nom['epithete_infra_sp']);
|
849 |
$erreur = false;
|
- |
|
850 |
foreach ($mots as $mot) {
|
859 |
foreach ($mots as $mot) {
|
851 |
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierTypeEpithete($mot)|| $this->verifierEpitheteSp($mot))) {
|
860 |
if (!(preg_match('/^[+x]$/', $mot) || $this->verifierTypeEpithete($mot)|| $this->verifierEpitheteSp($mot))) {
|
- |
|
861 |
$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']);
|
- |
|
862 |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
|
852 |
$erreur = true;
|
863 |
break;
|
853 |
}
|
864 |
}
|
854 |
}
|
865 |
}
|
855 |
if ($erreur == true) {
|
- |
|
856 |
$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']);
|
- |
|
857 |
$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
|
- |
|
858 |
}
|
- |
|
859 |
}
|
866 |
}
|
860 |
}
|
867 |
}
|
861 |
return $noms_erreur;
|
868 |
return $noms_erreur;
|
862 |
}
|
869 |
}
|
Line 1542... |
Line 1549... |
1542 |
|
1549 |
|
1543 |
private function formaterStyleNomGenre(&$genre) {
|
1550 |
private function formaterStyleNomGenre(&$genre) {
|
1544 |
$genre_fmt = '';
|
1551 |
$genre_fmt = '';
|
1545 |
if (preg_match('/^\s*([x+])\s+(.+)$/i', $genre, $match)) {
|
1552 |
if (preg_match('/^\s*([x+])\s+(.+)$/i', $genre, $match)) {
|
- |
|
1553 |
$genre_fmt = utf8_encode(strtolower(utf8_decode($match[1]))).' '.utf8_encode(ucfirst(strtolower(utf8_decode($match[2]))));
|
- |
|
1554 |
} elseif (preg_match('/^(.+)\s+([x+])\s+(.+)$/i', $genre, $match)) {
|
- |
|
1555 |
$genre_fmt = utf8_encode(ucfirst(strtolower(utf8_decode($match[1])))).' '.
|
1546 |
$genre_fmt = utf8_encode(strtolower(utf8_decode($match[1]))).' '.utf8_encode(ucfirst(strtolower(utf8_decode($match[2]))));
|
1556 |
utf8_encode(strtolower(utf8_decode($match[2]))).' '.utf8_encode(ucfirst(strtolower(utf8_decode($match[3]))));
|
1547 |
} else {
|
1557 |
} else {
|
1548 |
$genre_fmt = utf8_encode(ucfirst(strtolower(utf8_decode($genre))));
|
1558 |
$genre_fmt = utf8_encode(ucfirst(strtolower(utf8_decode($genre))));
|
1549 |
}
|
1559 |
}
|
1550 |
return $genre_fmt;
|
1560 |
return $genre_fmt;
|