Subversion Repositories Applications.referentiel

Rev

Rev 192 | Rev 199 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 192 Rev 194
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;