Subversion Repositories Applications.referentiel

Rev

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

Rev 177 Rev 183
Line 102... Line 102...
102
    public function lancerTestsAuto() {
102
    public function lancerTestsAuto() {
103
		$resultats = array();
103
		$resultats = array();
Line 104... Line 104...
104
 
104
 
105
		// Lancement des tests unitaires
105
		// Lancement des tests unitaires
-
 
106
		Debug::printr('Lancement des tests unitaires');
-
 
107
		$tests_numeros = array_keys($this->tests);
106
		Debug::printr('Lancement des tests unitaires');
108
		Debug::printr($tests_numeros);
107
    	foreach (array_keys($this->tests) as $numero) {
109
    	foreach ($tests_numeros as $numero) {
Line 108... Line 110...
108
			$info = $this->getInfosTest($numero);
110
			$info = $this->getInfosTest($numero);
109
    		
111
    		
110
    		if ($numero < 5) {
112
    		if ($numero < 5) {
Line 114... Line 116...
114
				// Si la structure est bonne nous lançons les autres tests
116
				// Si la structure est bonne nous lançons les autres tests
115
				$this->lancerTestUnitaire($info);
117
				$this->lancerTestUnitaire($info);
116
    		}
118
    		}
117
		}
119
		}
118
    }
120
    }
-
 
121
	
-
 
122
    private function getInfosTest($numero) {
-
 
123
		$info = $this->tests[$numero];
-
 
124
		$info['methode'] = 'tester'.implode('', explode(' ', ucwords($info['abr'])));
-
 
125
		$info['numero'] = $numero;
-
 
126
		$info['nom'] = '#'.$numero.' - '.$info['nom'];
-
 
127
		$info['resultat'] = false;
-
 
128
		return $info;
-
 
129
	}
Line 119... Line 130...
119
    
130
    
120
    public function lancerTestUnitaire($info) {
131
    public function lancerTestUnitaire($info) {
121
		Debug::printr($info['numero'].'::'.$info['methode']);
132
		Debug::printr($info['numero'].'::'.$info['methode']);
122
    	$methodeDeTest = $info['methode'];
133
    	$methodeDeTest = $info['methode'];
Line 126... Line 137...
126
    	if (isset($erreurs['special'])) {
137
    	if (isset($erreurs['special'])) {
127
    		$info = $erreurs;
138
    		$info = $erreurs;
128
    	} else {
139
    	} else {
129
    		if (count($erreurs) > 0) {
140
    		if (count($erreurs) > 0) {
130
				$info['message']['entete'] = explode(',', $info['entete']);
141
				$info['message']['entete'] = explode(',', $info['entete']);
-
 
142
				if (isset($info['title'])) {
-
 
143
					$info['message']['title'] = explode(';', $info['title']);
-
 
144
				}
131
				$info['message']['lignes'] = $erreurs;
145
				$info['message']['lignes'] = $erreurs;
132
				unset($erreurs);
146
				unset($erreurs);
133
			} else {
147
			} else {
134
				$info['resultat'] = true;
148
				$info['resultat'] = true;
135
			}
149
			}
Line 154... Line 168...
154
	}
168
	}
Line 155... Line 169...
155
	
169
	
156
	private function traiterResultatTest($info) {
170
	private function traiterResultatTest($info) {
157
		if (isset($info['message'])) {
171
		if (isset($info['message'])) {
-
 
172
			if (is_array($info['message'])) {
-
 
173
				$erreurs_nbre = count($info['message']['lignes']);
-
 
174
				$erreurs_max = 1000;
-
 
175
				if ($erreurs_nbre > $erreurs_max) {
-
 
176
					$info['message']['lignes'] = array_slice($info['message']['lignes'], 0, $erreurs_max);
-
 
177
					$info['erreur'] = "$erreurs_nbre erreurs ont été détectées seules les $erreurs_max premières sont affichées";
158
			if (is_array($info['message'])) {
178
				}
159
				$info['message'] = $this->getVue('tests/squelettes/message_table', $info);
179
				$info['message'] = $this->getVue('tests/squelettes/message_table', $info);
160
			} else {
180
			} else {
161
				$info['message'] = $this->getVue('tests/squelettes/message_p', $info);
181
				$info['message'] = $this->getVue('tests/squelettes/message_p', $info);
162
			}
182
			}
163
		}
183
		}
164
		$this->resultatDao->ajouter($this->traitement['id_traitement'], $info);
184
		Debug::printr($this->resultatDao->ajouter($this->traitement['id_traitement'], $info));
165
		$info = null;
185
		$info = null;
Line 166... Line 186...
166
	}
186
	}
167
	
187
	
Line 338... Line 358...
338
	 */
358
	 */
339
	private function testerTaxSupPourTaxon() {
359
	private function testerTaxSupPourTaxon() {
340
		$noms_erreur = array();
360
		$noms_erreur = array();
341
		foreach ($this->noms as &$nom) {
361
		foreach ($this->noms as &$nom) {
342
			if ($nom['num_nom_retenu'] != $nom['num_nom'] && $nom['num_tax_sup'] != '') {
362
			if ($nom['num_nom_retenu'] != $nom['num_nom'] && $nom['num_tax_sup'] != '') {
343
				$noms_erreur[] = array($nom['num_nom'], $nom['num_tax_sup']); 
363
				$noms_erreur[] = array($nom['num_nom'], $nom['num_tax_sup'], $nom['exclure_taxref']); 
344
			}
364
			}
345
		}
365
		}
346
		return $noms_erreur;
366
		return $noms_erreur;
347
	}
367
	}
Line 352... Line 372...
352
	private function testerExitenceTaxonSuperieur() {
372
	private function testerExitenceTaxonSuperieur() {
353
		$noms_erreur = array();
373
		$noms_erreur = array();
354
		foreach ($this->noms as &$nom) {
374
		foreach ($this->noms as &$nom) {
355
			if ($nom['num_nom_retenu'] == $nom['num_nom']) {
375
			if ($nom['num_nom_retenu'] == $nom['num_nom']) {
356
				if ($nom['num_tax_sup'] != 0 && !isset($this->noms[$nom['num_tax_sup']])) {
376
				if ($nom['num_tax_sup'] != 0 && !isset($this->noms[$nom['num_tax_sup']])) {
357
					$noms_erreur[] = array($nom['num_nom'], $nom['num_tax_sup']);
377
					$noms_erreur[] = array($nom['num_nom'], $nom['num_tax_sup'], $nom['exclure_taxref']);
358
				} 
378
				} 
359
			}
379
			}
360
		}
380
		}
361
		return $noms_erreur;
381
		return $noms_erreur;
362
	}
382
	}
Line 371... Line 391...
371
				if (isset($this->noms[$nom['num_tax_sup']])) {
391
				if (isset($this->noms[$nom['num_tax_sup']])) {
372
					$nom_sup = $this->noms[$nom['num_tax_sup']];
392
					$nom_sup = $this->noms[$nom['num_tax_sup']];
373
					if ($nom_sup['rang'] >= $nom['rang']) {
393
					if ($nom_sup['rang'] >= $nom['rang']) {
374
						// Prise en compte de l'exception des clades
394
						// Prise en compte de l'exception des clades
375
						if (! ($nom_sup['rang'] == 70 && $nom['rang'] == 70)) {
395
						if (! ($nom_sup['rang'] == 70 && $nom['rang'] == 70)) {
376
							$noms_erreur[] = array($nom['num_nom'], $nom['rang'], $nom_sup['num_nom'], $nom_sup['rang']);
396
							$noms_erreur[] = array($nom['num_nom'], $nom['rang'], $nom_sup['num_nom'], $nom_sup['rang'], $nom['exclure_taxref']);
377
						}
397
						}
378
					}
398
					}
379
				}
399
				}
380
			}
400
			}
381
		}
401
		}
Line 398... Line 418...
398
					unset($this->detection_boucle_infini); 
418
					unset($this->detection_boucle_infini); 
Line 399... Line 419...
399
					
419
					
400
					if ($classif_ok === true) {
420
					if ($classif_ok === true) {
401
						$this->noms_ok[$nom['num_nom']] = $classif_ok;
421
						$this->noms_ok[$nom['num_nom']] = $classif_ok;
402
					} else {
422
					} else {
403
						$noms_erreur[] = array($nom['num_nom'], $classif_ok);
423
						$noms_erreur[] = array($nom['num_nom'], $classif_ok, $nom['exclure_taxref']);
404
					}
424
					}
405
				}
425
				}
406
			}
426
			}
407
		}
427
		}
Line 442... Line 462...
442
		
462
		
443
		// Réalisation du test
463
		// Réalisation du test
444
		$noms_erreur = array();
464
		$noms_erreur = array();
445
		foreach ($this->noms as &$nom) {
465
		foreach ($this->noms as &$nom) {
446
			if (!isset($rangs[$nom['rang']])) {
466
			if (!isset($rangs[$nom['rang']])) {
447
				$noms_erreur[] = array($nom['num_nom'], $nom['rang']);
467
				$noms_erreur[] = array($nom['num_nom'], $nom['rang'], $nom['exclure_taxref']);
448
			}
468
			}
449
		}
469
		}
450
		return $noms_erreur;
470
		return $noms_erreur;
Line 460... Line 480...
460
				$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom);
480
				$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom);
461
				$nom_sci_ideal = $this->formaterStyleNomGenre($nom['nom_supra_generique']);
481
				$nom_sci_ideal = $this->formaterStyleNomGenre($nom['nom_supra_generique']);
462
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
482
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
463
				if ($nom['nom_sci'] != $nom_sci_ideal) {
483
				if ($nom['nom_sci'] != $nom_sci_ideal) {
464
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
484
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
465
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal);
485
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
466
				}
486
				}
467
			}
487
			}
468
		}
488
		}
469
		return $noms_erreur;
489
		return $noms_erreur;
470
	}
490
	}
Line 479... Line 499...
479
				$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom);
499
				$suffixe_plte_cultivee = $this->construireSuffixeNomPltCultivee($nom);
480
				$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']);
500
				$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']);
481
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
501
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
482
				if ($nom['nom_sci'] != $nom_sci_ideal) {
502
				if ($nom['nom_sci'] != $nom_sci_ideal) {
483
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
503
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
484
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal);
504
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
485
				}
505
				}
486
			}
506
			}
487
		}
507
		}
488
		return $noms_erreur;
508
		return $noms_erreur;
489
	}
509
	}
Line 507... Line 527...
507
					$nom_sci_ideal .= ' '.$this->formaterStyleNomGenre($nom['epithete_infra_generique']);
527
					$nom_sci_ideal .= ' '.$this->formaterStyleNomGenre($nom['epithete_infra_generique']);
508
				}
528
				}
509
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
529
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
510
				if ($nom['nom_sci'] != $nom_sci_ideal) {
530
				if ($nom['nom_sci'] != $nom_sci_ideal) {
511
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
531
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
512
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal);
532
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
513
				}
533
				}
514
			}
534
			}
515
		}
535
		}
516
		return $noms_erreur;
536
		return $noms_erreur;
517
	}
537
	}
Line 527... Line 547...
527
				$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']);
547
				$nom_sci_ideal = $this->formaterStyleNomGenre($nom['genre']);
528
				$nom_sci_ideal .= ' '.strtolower($nom['epithete_sp']);
548
				$nom_sci_ideal .= ' '.strtolower($nom['epithete_sp']);
529
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
549
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
530
				if ($nom['nom_sci'] != $nom_sci_ideal) {
550
				if ($nom['nom_sci'] != $nom_sci_ideal) {
531
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
551
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
532
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal);
552
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
533
				}
553
				}
534
			}
554
			}
535
		}
555
		}
536
		return $noms_erreur;
556
		return $noms_erreur;
537
	}
557
	}
Line 549... Line 569...
549
				$nom_sci_ideal .= ' '.strtolower($nom['type_epithete']);
569
				$nom_sci_ideal .= ' '.strtolower($nom['type_epithete']);
550
				$nom_sci_ideal .= ' '.strtolower($nom['epithete_infra_sp']);
570
				$nom_sci_ideal .= ' '.strtolower($nom['epithete_infra_sp']);
551
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
571
				$nom_sci_ideal .= ($suffixe_plte_cultivee != '' ? ' '.$suffixe_plte_cultivee : '');
552
				if ($nom['nom_sci'] != $nom_sci_ideal) {
572
				if ($nom['nom_sci'] != $nom_sci_ideal) {
553
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
573
					$nom_sci_traite = $this->repererEspace($nom['nom_sci']);
554
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal);
574
					$noms_erreur[] = array($nom['num_nom'], $nom_sci_traite, $nom_sci_ideal, $nom['exclure_taxref']);
555
				}
575
				}
556
			}
576
			}
557
		}
577
		}
558
		return $noms_erreur;
578
		return $noms_erreur;
559
	}
579
	}
Line 565... Line 585...
565
		$noms_erreur = array();
585
		$noms_erreur = array();
566
		foreach ($this->noms as &$nom) {
586
		foreach ($this->noms as &$nom) {
567
			if ($nom['nom_supra_generique'] != '') {
587
			if ($nom['nom_supra_generique'] != '') {
568
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s+$)/', $nom['nom_supra_generique'])) {
588
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s+$)/', $nom['nom_supra_generique'])) {
569
					$nom_supra_generique_traite = $this->repererEspace($nom['nom_supra_generique']);
589
					$nom_supra_generique_traite = $this->repererEspace($nom['nom_supra_generique']);
570
					$noms_erreur[] = array($nom['num_nom'], $nom_supra_generique_traite);
590
					$noms_erreur[] = array($nom['num_nom'], $nom_supra_generique_traite, $nom['exclure_taxref']);
571
				}
591
				}
572
			}
592
			}
573
		}
593
		}
574
		return $noms_erreur;
594
		return $noms_erreur;
575
	}
595
	}
Line 581... Line 601...
581
		$noms_erreur = array();
601
		$noms_erreur = array();
582
		foreach ($this->noms as &$nom) {
602
		foreach ($this->noms as &$nom) {
583
			if ($nom['nom_supra_generique'] != '') {
603
			if ($nom['nom_supra_generique'] != '') {
584
				if (!preg_match('/^[A-ZÄËḦÏÖÜẄẌŸ][-a-zäëḧïöẗüẅẍÿ]+$/', $nom['nom_supra_generique'])) {
604
				if (!preg_match('/^[A-ZÄËḦÏÖÜẄẌŸ][-a-zäëḧïöẗüẅẍÿ]+$/', $nom['nom_supra_generique'])) {
585
					$nom_supra_generique_traite = $this->repererEspace($nom['nom_supra_generique']);
605
					$nom_supra_generique_traite = $this->repererEspace($nom['nom_supra_generique']);
586
					$noms_erreur[] = array($nom['num_nom'], $nom_supra_generique_traite);
606
					$noms_erreur[] = array($nom['num_nom'], $nom_supra_generique_traite, $nom['exclure_taxref']);
587
				}
607
				}
588
			}
608
			}
589
		}
609
		}
590
		return $noms_erreur;
610
		return $noms_erreur;
591
	}
611
	}
Line 596... Line 616...
596
	private function testerNomSupraGeneriqueRang() {
616
	private function testerNomSupraGeneriqueRang() {
597
		$noms_erreur = array();
617
		$noms_erreur = array();
598
		foreach ($this->noms as &$nom) {
618
		foreach ($this->noms as &$nom) {
599
			if ($nom['nom_supra_generique'] != '') {
619
			if ($nom['nom_supra_generique'] != '') {
600
				if ($nom['rang'] >= $this->manuel['rang_genre']) {
620
				if ($nom['rang'] >= $this->manuel['rang_genre']) {
601
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
621
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']);
602
				}
622
				}
603
			}
623
			}
604
		}
624
		}
605
		return $noms_erreur;
625
		return $noms_erreur;
606
	}
626
	}
Line 612... Line 632...
612
		$noms_erreur = array();
632
		$noms_erreur = array();
613
		foreach ($this->noms as &$nom) {
633
		foreach ($this->noms as &$nom) {
614
			if ($nom['genre'] != '') {
634
			if ($nom['genre'] != '') {
615
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['genre'])) {
635
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['genre'])) {
616
					$nom_traite = $this->repererEspace($nom['genre']);
636
					$nom_traite = $this->repererEspace($nom['genre']);
617
					$noms_erreur[] = array($nom['num_nom'], $nom_traite);
637
					$noms_erreur[] = array($nom['num_nom'], $nom_traite, $nom['exclure_taxref']);
618
				}
638
				}
619
			}
639
			}
620
		}
640
		}
621
		return $noms_erreur;
641
		return $noms_erreur;
622
	}
642
	}
Line 630... Line 650...
630
			if ($nom['genre'] != '') {
650
			if ($nom['genre'] != '') {
631
				$mots = explode(' ', $nom['genre']);
651
				$mots = explode(' ', $nom['genre']);
632
				foreach ($mots as $mot) {
652
				foreach ($mots as $mot) {
633
					if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteGenre($mot))) {
653
					if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteGenre($mot))) {
634
						$nom_traite = $this->repererEspace($nom['genre']);
654
						$nom_traite = $this->repererEspace($nom['genre']);
635
						$noms_erreur[] = array($nom['num_nom'], $nom_traite);
655
						$noms_erreur[] = array($nom['num_nom'], $nom_traite, $nom['exclure_taxref']);
636
					}
656
					}
637
				}
657
				}
638
			}
658
			}
639
		}
659
		}
640
		return $noms_erreur;
660
		return $noms_erreur;
Line 646... Line 666...
646
	private function testerGenreRang() {
666
	private function testerGenreRang() {
647
		$noms_erreur = array();
667
		$noms_erreur = array();
648
		foreach ($this->noms as &$nom) {
668
		foreach ($this->noms as &$nom) {
649
			if ($nom['genre'] != '') {
669
			if ($nom['genre'] != '') {
650
				if ($nom['rang'] < $this->manuel['rang_genre']) {
670
				if ($nom['rang'] < $this->manuel['rang_genre']) {
651
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
671
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']);
652
				}
672
				}
653
			}
673
			}
654
		}
674
		}
655
		return $noms_erreur;
675
		return $noms_erreur;
656
	}
676
	}
Line 662... Line 682...
662
		$noms_erreur = array();
682
		$noms_erreur = array();
663
		foreach ($this->noms as &$nom) {
683
		foreach ($this->noms as &$nom) {
664
			if ($nom['epithete_infra_generique'] != '') {
684
			if ($nom['epithete_infra_generique'] != '') {
665
				if (!preg_match('/^[A-ZÄËḦÏÖÜẄẌŸ][-a-zäëḧïöẗüẅẍÿ]+/', $nom['epithete_infra_generique'])) {
685
				if (!preg_match('/^[A-ZÄËḦÏÖÜẄẌŸ][-a-zäëḧïöẗüẅẍÿ]+/', $nom['epithete_infra_generique'])) {
666
					$epithete_traite = $this->repererEspace($nom['epithete_infra_generique']);
686
					$epithete_traite = $this->repererEspace($nom['epithete_infra_generique']);
667
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
687
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
668
				}
688
				}
669
			}
689
			}
670
		}
690
		}
671
		return $noms_erreur;
691
		return $noms_erreur;
672
	}
692
	}
Line 677... Line 697...
677
	private function testerEpitheteInfraGeneriqueRang() {
697
	private function testerEpitheteInfraGeneriqueRang() {
678
		$noms_erreur = array();
698
		$noms_erreur = array();
679
		foreach ($this->noms as &$nom) {
699
		foreach ($this->noms as &$nom) {
680
			if ($nom['epithete_infra_generique'] != '') {
700
			if ($nom['epithete_infra_generique'] != '') {
681
				if ($nom['rang'] <= $this->manuel['rang_genre'] || $nom['rang'] >= $this->manuel['rang_sp']) {
701
				if ($nom['rang'] <= $this->manuel['rang_genre'] || $nom['rang'] >= $this->manuel['rang_sp']) {
682
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
702
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']);
683
				}
703
				}
684
			}
704
			}
685
		}
705
		}
686
		return $noms_erreur;
706
		return $noms_erreur;
687
	}
707
	}
Line 693... Line 713...
693
		$noms_erreur = array();
713
		$noms_erreur = array();
694
		foreach ($this->noms as &$nom) {
714
		foreach ($this->noms as &$nom) {
695
			if ($nom['epithete_infra_generique'] != '') {
715
			if ($nom['epithete_infra_generique'] != '') {
696
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_infra_generique'])) {
716
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_infra_generique'])) {
697
					$epithete_traite = $this->repererEspace($nom['epithete_infra_generique']);
717
					$epithete_traite = $this->repererEspace($nom['epithete_infra_generique']);
698
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
718
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
699
				}
719
				}
700
			}
720
			}
701
		}
721
		}
702
		return $noms_erreur;
722
		return $noms_erreur;
703
	}
723
	}
Line 709... Line 729...
709
		$noms_erreur = array();
729
		$noms_erreur = array();
710
		foreach ($this->noms as &$nom) {
730
		foreach ($this->noms as &$nom) {
711
			if ($nom['epithete_sp'] != '') {
731
			if ($nom['epithete_sp'] != '') {
712
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_sp'])) {
732
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_sp'])) {
713
					$epithete_traite = $this->repererEspace($nom['epithete_sp']);
733
					$epithete_traite = $this->repererEspace($nom['epithete_sp']);
714
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
734
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
715
				}
735
				}
716
			}
736
			}
717
		}
737
		}
718
		return $noms_erreur;
738
		return $noms_erreur;
719
	}
739
	}
Line 727... Line 747...
727
			if ($nom['epithete_sp'] != '') {
747
			if ($nom['epithete_sp'] != '') {
728
				$mots = explode(' ', $nom['epithete_sp']);
748
				$mots = explode(' ', $nom['epithete_sp']);
729
				foreach ($mots as $mot) {
749
				foreach ($mots as $mot) {
730
					if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteSp($mot))) {
750
					if (!(preg_match('/^[+x]$/', $mot) || $this->verifierEpitheteSp($mot))) {
731
						$epithete_traite = $this->repererEspace($nom['epithete_sp']);
751
						$epithete_traite = $this->repererEspace($nom['epithete_sp']);
732
						$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
752
						$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
733
					}
753
					}
734
				}
754
				}
735
			}
755
			}
736
		}
756
		}
737
		return $noms_erreur;
757
		return $noms_erreur;
Line 743... Line 763...
743
	private function testerEpitheteSpRang() {
763
	private function testerEpitheteSpRang() {
744
		$noms_erreur = array();
764
		$noms_erreur = array();
745
		foreach ($this->noms as &$nom) {
765
		foreach ($this->noms as &$nom) {
746
			if ($nom['epithete_sp'] != '') {
766
			if ($nom['epithete_sp'] != '') {
747
				if ($nom['rang'] < $this->manuel['rang_sp']) {
767
				if ($nom['rang'] < $this->manuel['rang_sp']) {
748
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
768
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']);
749
				}
769
				}
750
			}
770
			}
751
		}
771
		}
752
		return $noms_erreur;
772
		return $noms_erreur;
753
	}
773
	}
Line 759... Line 779...
759
		$noms_erreur = array();
779
		$noms_erreur = array();
760
		foreach ($this->noms as &$nom) {
780
		foreach ($this->noms as &$nom) {
761
			if ($nom['type_epithete'] != '') {
781
			if ($nom['type_epithete'] != '') {
762
				if (preg_match('/\s+/', $nom['type_epithete'])) {
782
				if (preg_match('/\s+/', $nom['type_epithete'])) {
763
					$valeur_traitee = $this->repererEspace($nom['epithete_sp']);
783
					$valeur_traitee = $this->repererEspace($nom['epithete_sp']);
764
					$noms_erreur[] = array($nom['num_nom'], $valeur_traitee);
784
					$noms_erreur[] = array($nom['num_nom'], $valeur_traitee, $nom['exclure_taxref']);
765
				}
785
				}
766
			}
786
			}
767
		}
787
		}
768
		return $noms_erreur;
788
		return $noms_erreur;
769
	}
789
	}
Line 774... Line 794...
774
	private function testerTypeEpitheteSyntaxe() {
794
	private function testerTypeEpitheteSyntaxe() {
775
		$noms_erreur = array();
795
		$noms_erreur = array();
776
		foreach ($this->noms as &$nom) {
796
		foreach ($this->noms as &$nom) {
777
			if ($nom['type_epithete'] != '') {
797
			if ($nom['type_epithete'] != '') {
778
				if (!$this->verifierTypeEpithete($nom['type_epithete'])) {
798
				if (!$this->verifierTypeEpithete($nom['type_epithete'])) {
779
					$noms_erreur[] = array($nom['num_nom'],  $nom['type_epithete']);
799
					$noms_erreur[] = array($nom['num_nom'],  $nom['type_epithete'], $nom['exclure_taxref']);
780
				}
800
				}
781
			}
801
			}
782
		}
802
		}
783
		return $noms_erreur;
803
		return $noms_erreur;
784
	}
804
	}
Line 789... Line 809...
789
	private function testerTypeEpitheteHybridite() {
809
	private function testerTypeEpitheteHybridite() {
790
		$noms_erreur = array();
810
		$noms_erreur = array();
791
		foreach ($this->noms as &$nom) {
811
		foreach ($this->noms as &$nom) {
792
			if ($nom['type_epithete'] != '') {
812
			if ($nom['type_epithete'] != '') {
793
				if (preg_match('/^(?:n-|notho-)/', $nom['type_epithete'])) {
813
				if (preg_match('/^(?:n-|notho-)/', $nom['type_epithete'])) {
794
					$noms_erreur[] = array($nom['num_nom'], $nom['type_epithete']);
814
					$noms_erreur[] = array($nom['num_nom'], $nom['type_epithete'], $nom['exclure_taxref']);
795
				}
815
				}
796
			}
816
			}
797
		}
817
		}
798
		return $noms_erreur;
818
		return $noms_erreur;
799
	}
819
	}
Line 805... Line 825...
805
		$noms_erreur = array();
825
		$noms_erreur = array();
806
		foreach ($this->noms as &$nom) {
826
		foreach ($this->noms as &$nom) {
807
			if ($nom['epithete_infra_sp'] != '') {
827
			if ($nom['epithete_infra_sp'] != '') {
808
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_infra_sp'])) {
828
				if (preg_match('/(?:^\s+(?!:\s+)|(?!:\s+)\s{2,}(?!:\s+)|(?!:\s+)\s+$)/', $nom['epithete_infra_sp'])) {
809
					$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']);
829
					$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']);
810
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
830
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
811
				}
831
				}
812
			}
832
			}
813
		}
833
		}
814
		return $noms_erreur;
834
		return $noms_erreur;
815
	}
835
	}
Line 823... Line 843...
823
			if ($nom['epithete_infra_sp'] != '') {
843
			if ($nom['epithete_infra_sp'] != '') {
824
				$mots = explode(' ', $nom['epithete_infra_sp']);
844
				$mots = explode(' ', $nom['epithete_infra_sp']);
825
				foreach ($mots as $mot) {
845
				foreach ($mots as $mot) {
826
					if (!(preg_match('/^[+x]$/', $mot) || $this->verifierTypeEpithete($mot)|| $this->verifierEpitheteSp($mot))) {
846
					if (!(preg_match('/^[+x]$/', $mot) || $this->verifierTypeEpithete($mot)|| $this->verifierEpitheteSp($mot))) {
827
						$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']);
847
						$epithete_traite = $this->repererEspace($nom['epithete_infra_sp']);
828
						$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
848
						$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
829
					}
849
					}
830
				}
850
				}
831
			}
851
			}
832
		}
852
		}
833
		return $noms_erreur;
853
		return $noms_erreur;
Line 839... Line 859...
839
	private function testerEpitheteInfraSpRang() {
859
	private function testerEpitheteInfraSpRang() {
840
		$noms_erreur = array();
860
		$noms_erreur = array();
841
		foreach ($this->noms as &$nom) {
861
		foreach ($this->noms as &$nom) {
842
			if ($nom['epithete_infra_sp'] != '') {
862
			if ($nom['epithete_infra_sp'] != '') {
843
				if ($nom['rang'] < $this->manuel['rang_sp']) {
863
				if ($nom['rang'] < $this->manuel['rang_sp']) {
844
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
864
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']);
845
				}
865
				}
846
			}
866
			}
847
		}
867
		}
848
		return $noms_erreur;
868
		return $noms_erreur;
849
	}
869
	}
Line 855... Line 875...
855
		$noms_erreur = array();
875
		$noms_erreur = array();
856
		foreach ($this->noms as &$nom) {
876
		foreach ($this->noms as &$nom) {
857
			if ($nom['cultivar_groupe'] != '') {
877
			if ($nom['cultivar_groupe'] != '') {
858
				if (!$this->verifierEpitheteGroupeCultivar($nom['cultivar_groupe'])) {
878
				if (!$this->verifierEpitheteGroupeCultivar($nom['cultivar_groupe'])) {
859
					$epithete_traite = $this->repererEspace($nom['cultivar_groupe']);
879
					$epithete_traite = $this->repererEspace($nom['cultivar_groupe']);
860
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
880
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
861
				}
881
				}
862
			}
882
			}
863
		}
883
		}
864
		return $noms_erreur;
884
		return $noms_erreur;
865
	}
885
	}
Line 870... Line 890...
870
	private function testerGroupeCultivarRang() {
890
	private function testerGroupeCultivarRang() {
871
		$noms_erreur = array();
891
		$noms_erreur = array();
872
		foreach ($this->noms as &$nom) {
892
		foreach ($this->noms as &$nom) {
873
			if ($nom['cultivar_groupe'] != '') {
893
			if ($nom['cultivar_groupe'] != '') {
874
				if ($nom['rang'] < $this->manuel['rang_genre']) {
894
				if ($nom['rang'] < $this->manuel['rang_genre']) {
875
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
895
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']);
876
				}
896
				}
877
			}
897
			}
878
		}
898
		}
879
		return $noms_erreur;
899
		return $noms_erreur;
880
	}
900
	}
Line 886... Line 906...
886
		$noms_erreur = array();
906
		$noms_erreur = array();
887
		foreach ($this->noms as &$nom) {
907
		foreach ($this->noms as &$nom) {
888
			if ($nom['cultivar'] != '') {
908
			if ($nom['cultivar'] != '') {
889
				if (!$this->verifierEpitheteCultivar($nom['cultivar'])) {
909
				if (!$this->verifierEpitheteCultivar($nom['cultivar'])) {
890
					$epithete_traite = $this->repererEspace($nom['cultivar']);
910
					$epithete_traite = $this->repererEspace($nom['cultivar']);
891
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
911
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
892
				}
912
				}
893
			}
913
			}
894
		}
914
		}
895
		return $noms_erreur;
915
		return $noms_erreur;
896
	}
916
	}
Line 901... Line 921...
901
	private function testerCultivarRang() {
921
	private function testerCultivarRang() {
902
		$noms_erreur = array();
922
		$noms_erreur = array();
903
		foreach ($this->noms as &$nom) {
923
		foreach ($this->noms as &$nom) {
904
			if ($nom['cultivar'] != '') {
924
			if ($nom['cultivar'] != '') {
905
				if ($nom['rang'] < $this->manuel['rang_genre']) {
925
				if ($nom['rang'] < $this->manuel['rang_genre']) {
906
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang']);
926
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['rang'], $nom['exclure_taxref']);
907
				}
927
				}
908
			}
928
			}
909
		}
929
		}
910
		return $noms_erreur;
930
		return $noms_erreur;
911
	}
931
	}
Line 917... Line 937...
917
		$noms_erreur = array();
937
		$noms_erreur = array();
918
		foreach ($this->noms as &$nom) {
938
		foreach ($this->noms as &$nom) {
919
			if ($nom['nom_commercial'] != '') {
939
			if ($nom['nom_commercial'] != '') {
920
				if (!$this->verifierNomCommercial($nom['nom_commercial'])) {
940
				if (!$this->verifierNomCommercial($nom['nom_commercial'])) {
921
					$epithete_traite = $this->repererEspace($nom['nom_commercial']);
941
					$epithete_traite = $this->repererEspace($nom['nom_commercial']);
922
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite);
942
					$noms_erreur[] = array($nom['num_nom'], $epithete_traite, $nom['exclure_taxref']);
923
				}
943
				}
924
			}
944
			}
925
		}
945
		}
926
		return $noms_erreur;
946
		return $noms_erreur;
927
	}
947
	}
Line 931... Line 951...
931
	 */
951
	 */
932
	private function testerNomCommercialPresenceCultivar() {
952
	private function testerNomCommercialPresenceCultivar() {
933
		$noms_erreur = array();
953
		$noms_erreur = array();
934
		foreach ($this->noms as &$nom) {
954
		foreach ($this->noms as &$nom) {
935
			if ((isset($nom['nom_commercial']) && $nom['nom_commercial'] != '') && ($nom['cultivar'] == '' && $nom['cultivar_groupe'] == '')) {
955
			if ((isset($nom['nom_commercial']) && $nom['nom_commercial'] != '') && ($nom['cultivar'] == '' && $nom['cultivar_groupe'] == '')) {
936
				$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci']);
956
				$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['exclure_taxref']);
937
			}
957
			}
938
		}
958
		}
939
		return $noms_erreur;
959
		return $noms_erreur;
940
	}
960
	}
Line 946... Line 966...
946
		$noms_erreur = array();
966
		$noms_erreur = array();
947
		foreach ($this->noms as &$nom) {
967
		foreach ($this->noms as &$nom) {
948
			if ($nom['auteur'] != '') {
968
			if ($nom['auteur'] != '') {
949
				if (!$this->verifierAuteur($nom['auteur'])) {
969
				if (!$this->verifierAuteur($nom['auteur'])) {
950
					$intitule_traite = $this->repererEspace($nom['auteur']);
970
					$intitule_traite = $this->repererEspace($nom['auteur']);
951
					$noms_erreur[] = array($nom['num_nom'], $intitule_traite);
971
					$noms_erreur[] = array($nom['num_nom'], $intitule_traite, $nom['exclure_taxref']);
952
				}
972
				}
953
			}
973
			}
954
		}
974
		}
955
		return $noms_erreur;
975
		return $noms_erreur;
956
	}
976
	}
Line 961... Line 981...
961
	private function testerAnneeSyntaxe() {
981
	private function testerAnneeSyntaxe() {
962
		$noms_erreur = array();
982
		$noms_erreur = array();
963
		foreach ($this->noms as &$nom) {
983
		foreach ($this->noms as &$nom) {
964
			if ($nom['annee'] != '') {
984
			if ($nom['annee'] != '') {
965
				if (!$this->verifierAnnee($nom['annee'])) {
985
				if (!$this->verifierAnnee($nom['annee'])) {
966
					$noms_erreur[] = array($nom['num_nom'], $nom['annee']);
986
					$noms_erreur[] = array($nom['num_nom'], $nom['annee'], $nom['exclure_taxref']);
967
				}
987
				}
968
			}
988
			}
969
		}
989
		}
970
		return $noms_erreur;
990
		return $noms_erreur;
971
	}
991
	}
Line 977... Line 997...
977
		$noms_erreur = array();
997
		$noms_erreur = array();
978
		foreach ($this->noms as &$nom) {
998
		foreach ($this->noms as &$nom) {
979
			if ($nom['biblio_origine'] != '') {
999
			if ($nom['biblio_origine'] != '') {
980
				if (!$this->verifierBiblioOrigine($nom['biblio_origine'])) {
1000
				if (!$this->verifierBiblioOrigine($nom['biblio_origine'])) {
981
					$biblio_traite = $this->repererEspace($nom['biblio_origine']);
1001
					$biblio_traite = $this->repererEspace($nom['biblio_origine']);
982
					$noms_erreur[] = array($nom['num_nom'], $biblio_traite);
1002
					$noms_erreur[] = array($nom['num_nom'], $biblio_traite, $nom['exclure_taxref']);
983
				}
1003
				}
984
			}
1004
			}
985
		}
1005
		}
986
		return $noms_erreur;
1006
		return $noms_erreur;
987
	}
1007
	}
Line 992... Line 1012...
992
	private function testerHomonymieSyntaxe() {
1012
	private function testerHomonymieSyntaxe() {
993
		$noms_erreur = array();
1013
		$noms_erreur = array();
994
		foreach ($this->noms as &$nom) {
1014
		foreach ($this->noms as &$nom) {
995
			if ($nom['homonyme'] != '') {
1015
			if ($nom['homonyme'] != '') {
996
				if (!$this->verifierBooleen($nom['homonyme'])) {
1016
				if (!$this->verifierBooleen($nom['homonyme'])) {
997
					$noms_erreur[] = array($nom['num_nom'], $nom['homonyme']);
1017
					$noms_erreur[] = array($nom['num_nom'], $nom['homonyme'], $nom['exclure_taxref']);
998
				}
1018
				}
999
			}
1019
			}
1000
		}
1020
		}
1001
		return $noms_erreur;
1021
		return $noms_erreur;
1002
	}
1022
	}
Line 1009... Line 1029...
1009
		
1029
		
1010
		$noms_erreur = array();
1030
		$noms_erreur = array();
1011
		foreach ($this->noms as &$nom) {
1031
		foreach ($this->noms as &$nom) {
1012
			if ($nom['homonyme'] != '0' && $nom['homonyme'] != '') {
1032
			if ($nom['homonyme'] != '0' && $nom['homonyme'] != '') {
1013
				if ($noms_homonymie[$nom['nom_sci']] <= 1) {
1033
				if ($noms_homonymie[$nom['nom_sci']] <= 1) {
1014
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci']);
1034
					$noms_erreur[] = array($nom['num_nom'], $nom['nom_sci'], $nom['exclure_taxref']);
1015
				}
1035
				}
1016
			}
1036
			}
1017
		}
1037
		}
1018
		$noms_homonymie = null;
1038
		$noms_homonymie = null;
Line 1025... Line 1045...
1025
	private function testerBasionymeSyntaxe() {
1045
	private function testerBasionymeSyntaxe() {
1026
		$noms_erreur = array();
1046
		$noms_erreur = array();
1027
		foreach ($this->noms as &$nom) {
1047
		foreach ($this->noms as &$nom) {
1028
			if ($nom['basionyme'] != '') {
1048
			if ($nom['basionyme'] != '') {
1029
				if (!$this->verifierNombre($nom['basionyme'])) {
1049
				if (!$this->verifierNombre($nom['basionyme'])) {
1030
					$noms_erreur[] = array($nom['num_nom'], $nom['basionyme']);
1050
					$noms_erreur[] = array($nom['num_nom'], $nom['basionyme'], $nom['exclure_taxref']);
1031
				}
1051
				}
1032
			}
1052
			}
1033
		}
1053
		}
1034
		return $noms_erreur;
1054
		return $noms_erreur;
1035
	}
1055
	}
Line 1040... Line 1060...
1040
	private function testerBasionymeExistence() {
1060
	private function testerBasionymeExistence() {
1041
		$noms_erreur = array();
1061
		$noms_erreur = array();
1042
		foreach ($this->noms as &$nom) {
1062
		foreach ($this->noms as &$nom) {
1043
			if ($nom['basionyme'] != '') {
1063
			if ($nom['basionyme'] != '') {
1044
				if (!isset($this->noms[$nom['basionyme']])) {
1064
				if (!isset($this->noms[$nom['basionyme']])) {
1045
					$noms_erreur[] = array($nom['num_nom'], $nom['basionyme']);
1065
					$noms_erreur[] = array($nom['num_nom'], $nom['basionyme'], $nom['exclure_taxref']);
1046
				}
1066
				}
1047
			}
1067
			}
1048
		}
1068
		}
1049
		return $noms_erreur;
1069
		return $noms_erreur;
1050
	}
1070
	}
Line 1055... Line 1075...
1055
	private function testerSynonymeProparteSyntaxe() {
1075
	private function testerSynonymeProparteSyntaxe() {
1056
		$noms_erreur = array();
1076
		$noms_erreur = array();
1057
		foreach ($this->noms as &$nom) {
1077
		foreach ($this->noms as &$nom) {
1058
			if ($nom['synonyme_proparte'] != '') {
1078
			if ($nom['synonyme_proparte'] != '') {
1059
				if (!$this->verifierNombreSuite($nom['synonyme_proparte'])) {
1079
				if (!$this->verifierNombreSuite($nom['synonyme_proparte'])) {
1060
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_proparte']);
1080
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_proparte'], $nom['exclure_taxref']);
1061
				}
1081
				}
1062
			}
1082
			}
1063
		}
1083
		}
1064
		return $noms_erreur;
1084
		return $noms_erreur;
1065
	}
1085
	}
Line 1077... Line 1097...
1077
					if (!isset($this->noms[$num_nom])) {
1097
					if (!isset($this->noms[$num_nom])) {
1078
						$num_nom_en_erreur[] = $num_nom;
1098
						$num_nom_en_erreur[] = $num_nom;
1079
					}
1099
					}
1080
				}
1100
				}
1081
				if (count($nbre_en_erreur) > 0) {
1101
				if (count($nbre_en_erreur) > 0) {
1082
					$noms_erreur[] = array($nom['num_nom'], implode(',', $num_nom_en_erreur));
1102
					$noms_erreur[] = array($nom['num_nom'], implode(',', $num_nom_en_erreur), $nom['exclure_taxref']);
1083
				}
1103
				}
1084
			}
1104
			}
1085
		}
1105
		}
1086
		return $noms_erreur;
1106
		return $noms_erreur;
1087
	}
1107
	}
Line 1092... Line 1112...
1092
	private function testerSynonymeDouteuxSyntaxe() {
1112
	private function testerSynonymeDouteuxSyntaxe() {
1093
		$noms_erreur = array();
1113
		$noms_erreur = array();
1094
		foreach ($this->noms as &$nom) {
1114
		foreach ($this->noms as &$nom) {
1095
			if ($nom['synonyme_douteux'] != '') {
1115
			if ($nom['synonyme_douteux'] != '') {
1096
				if (!$this->verifierBooleen($nom['synonyme_douteux'])) {
1116
				if (!$this->verifierBooleen($nom['synonyme_douteux'])) {
1097
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux']);
1117
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux'], $nom['exclure_taxref']);
1098
				}
1118
				}
1099
			}
1119
			}
1100
		}
1120
		}
1101
		return $noms_erreur;		
1121
		return $noms_erreur;		
1102
	}
1122
	}
Line 1106... Line 1126...
1106
	 */
1126
	 */
1107
	private function testerSynonymeDouteuxNumNomRetenu() {
1127
	private function testerSynonymeDouteuxNumNomRetenu() {
1108
		$noms_erreur = array();
1128
		$noms_erreur = array();
1109
		foreach ($this->noms as &$nom) {
1129
		foreach ($this->noms as &$nom) {
1110
			if ($nom['synonyme_douteux'] == 1 && $nom['num_nom_retenu'] != ' ') {
1130
			if ($nom['synonyme_douteux'] == 1 && $nom['num_nom_retenu'] != ' ') {
1111
				$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux'], $nom['num_nom_retenu']);
1131
				$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_douteux'], $nom['num_nom_retenu'], $nom['exclure_taxref']);
1112
			}
1132
			}
1113
		}
1133
		}
1114
		return $noms_erreur;
1134
		return $noms_erreur;
1115
	}
1135
	}
Line 1120... Line 1140...
1120
	private function testerSynonymeMalAppliqueSyntaxe() {
1140
	private function testerSynonymeMalAppliqueSyntaxe() {
1121
		$noms_erreur = array();
1141
		$noms_erreur = array();
1122
		foreach ($this->noms as &$nom) {
1142
		foreach ($this->noms as &$nom) {
1123
			if ($nom['synonyme_mal_applique'] != '') {
1143
			if ($nom['synonyme_mal_applique'] != '') {
1124
				if (!$this->verifierBooleen($nom['synonyme_mal_applique'])) {
1144
				if (!$this->verifierBooleen($nom['synonyme_mal_applique'])) {
1125
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_mal_applique']);
1145
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_mal_applique'], $nom['exclure_taxref']);
1126
				}
1146
				}
1127
			}
1147
			}
1128
		}
1148
		}
1129
		return $noms_erreur;
1149
		return $noms_erreur;
1130
	}
1150
	}
Line 1135... Line 1155...
1135
	private function testerSynonymeOrthographiqueSyntaxe() {
1155
	private function testerSynonymeOrthographiqueSyntaxe() {
1136
		$noms_erreur = array();
1156
		$noms_erreur = array();
1137
		foreach ($this->noms as $nom) {
1157
		foreach ($this->noms as $nom) {
1138
			if ($nom['synonyme_orthographique'] != '') {
1158
			if ($nom['synonyme_orthographique'] != '') {
1139
				if (!$this->verifierNombre($nom['synonyme_orthographique'])) {
1159
				if (!$this->verifierNombre($nom['synonyme_orthographique'])) {
1140
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique']);
1160
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique'], $nom['exclure_taxref']);
1141
				}
1161
				}
1142
			}
1162
			}
1143
		}
1163
		}
1144
		return $noms_erreur;
1164
		return $noms_erreur;
1145
	}
1165
	}
Line 1150... Line 1170...
1150
	private function testerSynonymeOrthographiqueExistence() {
1170
	private function testerSynonymeOrthographiqueExistence() {
1151
		$noms_erreur = array();
1171
		$noms_erreur = array();
1152
		foreach ($this->noms as &$nom) {
1172
		foreach ($this->noms as &$nom) {
1153
			if ($nom['synonyme_orthographique'] != '') {
1173
			if ($nom['synonyme_orthographique'] != '') {
1154
				if (!isset($this->noms[$nom['synonyme_orthographique']])) {
1174
				if (!isset($this->noms[$nom['synonyme_orthographique']])) {
1155
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique']);
1175
					$noms_erreur[] = array($nom['num_nom'], $nom['synonyme_orthographique'], $nom['exclure_taxref']);
1156
				}
1176
				}
1157
			}
1177
			}
1158
		}
1178
		}
1159
		return $noms_erreur;
1179
		return $noms_erreur;
1160
	}
1180
	}
Line 1165... Line 1185...
1165
	private function testerHybrideParent01Syntaxe() {
1185
	private function testerHybrideParent01Syntaxe() {
1166
		$noms_erreur = array();
1186
		$noms_erreur = array();
1167
		foreach ($this->noms as &$nom) {
1187
		foreach ($this->noms as &$nom) {
1168
			if ($nom['hybride_parent_01'] != '') {
1188
			if ($nom['hybride_parent_01'] != '') {
1169
				if (!$this->verifierNombre($nom['hybride_parent_01'])) {
1189
				if (!$this->verifierNombre($nom['hybride_parent_01'])) {
1170
					$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']));
1190
					$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']), $nom['exclure_taxref']);
1171
				}
1191
				}
1172
			}
1192
			}
1173
		}
1193
		}
1174
		return $noms_erreur;
1194
		return $noms_erreur;
1175
	}
1195
	}
Line 1180... Line 1200...
1180
	private function testerHybrideParent01Existence() {
1200
	private function testerHybrideParent01Existence() {
1181
		$noms_erreur = array();
1201
		$noms_erreur = array();
1182
		foreach ($this->noms as &$nom) {
1202
		foreach ($this->noms as &$nom) {
1183
			if ($nom['hybride_parent_01'] != '' && $nom['hybride_parent_01'] != '0') {
1203
			if ($nom['hybride_parent_01'] != '' && $nom['hybride_parent_01'] != '0') {
1184
				if (!isset($this->noms[$nom['hybride_parent_01']])) {
1204
				if (!isset($this->noms[$nom['hybride_parent_01']])) {
1185
					$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']));
1205
					$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_01']), $nom['exclure_taxref']);
1186
				}
1206
				}
1187
			}
1207
			}
1188
		}
1208
		}
1189
		return $noms_erreur;
1209
		return $noms_erreur;
1190
	}
1210
	}
Line 1195... Line 1215...
1195
	private function testerHybrideParent02Syntaxe() {
1215
	private function testerHybrideParent02Syntaxe() {
1196
		$noms_erreur = array();
1216
		$noms_erreur = array();
1197
		foreach ($this->noms as &$nom) {
1217
		foreach ($this->noms as &$nom) {
1198
			if ($nom['hybride_parent_02'] != '') {
1218
			if ($nom['hybride_parent_02'] != '') {
1199
				if (!$this->verifierNombre($nom['hybride_parent_02'])) {
1219
				if (!$this->verifierNombre($nom['hybride_parent_02'])) {
1200
					$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']));
1220
					$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']), $nom['exclure_taxref']);
1201
				}
1221
				}
1202
			}
1222
			}
1203
		}
1223
		}
1204
		return $noms_erreur;
1224
		return $noms_erreur;
1205
	}
1225
	}
Line 1210... Line 1230...
1210
	private function testerHybrideParent02Existence() {
1230
	private function testerHybrideParent02Existence() {
1211
		$noms_erreur = array();
1231
		$noms_erreur = array();
1212
		foreach ($this->noms as &$nom) {
1232
		foreach ($this->noms as &$nom) {
1213
			if ($nom['hybride_parent_02'] != '') {
1233
			if ($nom['hybride_parent_02'] != '') {
1214
				if (!isset($this->noms[$nom['hybride_parent_02']]) && $nom['hybride_parent_02'] != '0') {
1234
				if (!isset($this->noms[$nom['hybride_parent_02']]) && $nom['hybride_parent_02'] != '0') {
1215
					$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']));
1235
					$noms_erreur[] = array($nom['num_nom'], $this->repererEspace($nom['hybride_parent_02']), $nom['exclure_taxref']);
1216
				}
1236
				}
1217
			}
1237
			}
1218
		}
1238
		}
1219
		return $noms_erreur;
1239
		return $noms_erreur;
1220
	}
1240
	}
Line 1225... Line 1245...
1225
	private function testerPresenceSyntaxe() {
1245
	private function testerPresenceSyntaxe() {
1226
		$noms_erreur = array();
1246
		$noms_erreur = array();
1227
		foreach ($this->noms as &$nom) {
1247
		foreach ($this->noms as &$nom) {
1228
			if ($nom['presence'] != '') {
1248
			if ($nom['presence'] != '') {
1229
				if (!$this->verifierPresence($nom['presence'])) {
1249
				if (!$this->verifierPresence($nom['presence'])) {
1230
					$noms_erreur[] = array($nom['num_nom'], $nom['presence']);
1250
					$noms_erreur[] = array($nom['num_nom'], $nom['presence'], $nom['exclure_taxref']);
1231
				}
1251
				}
1232
			}
1252
			}
1233
		}
1253
		}
1234
		return $noms_erreur;
1254
		return $noms_erreur;
1235
	}
1255
	}
Line 1240... Line 1260...
1240
	private function testerStatutOrigineSyntaxe() {
1260
	private function testerStatutOrigineSyntaxe() {
1241
		$noms_erreur = array();
1261
		$noms_erreur = array();
1242
		foreach ($this->noms as &$nom) {
1262
		foreach ($this->noms as &$nom) {
1243
			if ($nom['statut_origine'] != '') {
1263
			if ($nom['statut_origine'] != '') {
1244
				if (!$this->verifierStatutOrigine($nom['statut_origine'])) {
1264
				if (!$this->verifierStatutOrigine($nom['statut_origine'])) {
1245
					$noms_erreur[] = array($nom['num_nom'], $nom['statut_origine']);
1265
					$noms_erreur[] = array($nom['num_nom'], $nom['statut_origine'], $nom['exclure_taxref']);
1246
				}
1266
				}
1247
			}
1267
			}
1248
		}
1268
		}
1249
		return $noms_erreur;
1269
		return $noms_erreur;
1250
	}
1270
	}
Line 1255... Line 1275...
1255
	private function testerStatutIntroductionSyntaxe() {
1275
	private function testerStatutIntroductionSyntaxe() {
1256
		$noms_erreur = array();
1276
		$noms_erreur = array();
1257
		foreach ($this->noms as &$nom) {
1277
		foreach ($this->noms as &$nom) {
1258
			if ($nom['statut_introduction'] != '') {
1278
			if ($nom['statut_introduction'] != '') {
1259
				if (!$this->verifierStatutIntroduction($nom['statut_introduction'])) {
1279
				if (!$this->verifierStatutIntroduction($nom['statut_introduction'])) {
1260
					$noms_erreur[] = array($nom['num_nom'], $nom['statut_introduction']);
1280
					$noms_erreur[] = array($nom['num_nom'], $nom['statut_introduction'], $nom['exclure_taxref']);
1261
				}
1281
				}
1262
			}
1282
			}
1263
		}
1283
		}
1264
		return $noms_erreur;
1284
		return $noms_erreur;
1265
	}
1285
	}
Line 1270... Line 1290...
1270
	private function testerStatutCultureSyntaxe() {
1290
	private function testerStatutCultureSyntaxe() {
1271
		$noms_erreur = array();
1291
		$noms_erreur = array();
1272
		foreach ($this->noms as &$nom) {
1292
		foreach ($this->noms as &$nom) {
1273
			if ($nom['statut_culture'] != '') {
1293
			if ($nom['statut_culture'] != '') {
1274
				if (!$this->verifierStatutCulture($nom['statut_culture'])) {
1294
				if (!$this->verifierStatutCulture($nom['statut_culture'])) {
1275
					$noms_erreur[] = array($nom['num_nom'], $nom['statut_culture']);
1295
					$noms_erreur[] = array($nom['num_nom'], $nom['statut_culture'], $nom['exclure_taxref']);
1276
				}
1296
				}
1277
			}
1297
			}
1278
		}
1298
		}
1279
		return $noms_erreur;
1299
		return $noms_erreur;
1280
	}
1300
	}
Line 1284... Line 1304...
1284
	 */
1304
	 */
1285
	private function testerExclureTaxRefSyntaxe() {
1305
	private function testerExclureTaxRefSyntaxe() {
1286
		$noms_erreur = array();
1306
		$noms_erreur = array();
1287
		foreach ($this->noms as &$nom) {
1307
		foreach ($this->noms as &$nom) {
1288
			if ($nom['exclure_taxref'] != '' && $nom['exclure_taxref'] != null) {
1308
			if ($nom['exclure_taxref'] != '' && $nom['exclure_taxref'] != null) {
1289
				if (!$this->verifierBooleen($nom['exclure_taxref'])) {
1309
				if (!preg_match('/^(?:0|1|9)$/', $nom['exclure_taxref'])) {
1290
					$noms_erreur[] = array($nom['num_nom'], $nom['exclure_taxref']);
1310
					$noms_erreur[] = array($nom['num_nom'], $nom['exclure_taxref']);
1291
				}
1311
				}
1292
			}
1312
			}
1293
		}
1313
		}
1294
		return $noms_erreur;
1314
		return $noms_erreur;
Line 1492... Line 1512...
1492
		return $ok;
1512
		return $ok;
1493
	}
1513
	}
Line 1494... Line 1514...
1494
	
1514
	
1495
	private function verifierEpitheteSp(&$epithete) {
1515
	private function verifierEpitheteSp(&$epithete) {
1496
		$ok = false;
1516
		$ok = false;
1497
		if (preg_match('/^[a-zëï][-a-zëï]+$/', $epithete)) {
1517
		if (preg_match('/^[a-zäëḧïöẗüẅẍÿ][-a-zäëḧïöẗüẅẍÿ]+$/', $epithete)) {
1498
			$ok = true;
1518
			$ok = true;
1499
		} else if (preg_match('/^sp\.(?:[A-Z]|[1-9][0-9]*)$/', $epithete)) {
1519
		} else if (preg_match('/^sp\.(?:[A-Z]|[1-9][0-9]*)$/', $epithete)) {
1500
			$ok = true;
1520
			$ok = true;
1501
		}
1521
		}
1502
		return $ok;
1522
		return $ok;
Line 1503... Line 1523...
1503
	}
1523
	}
1504
	
1524
	
1505
	private function verifierEpitheteGenre(&$epithete) {
1525
	private function verifierEpitheteGenre(&$epithete) {
1506
		$ok = false;
1526
		$ok = false;
1507
		if (preg_match('/^[A-ZËÏ](?:[-a-zëï]+|[a-zëï]+-[A-ZËÏ][a-zëï]+)$/', $epithete)) {
1527
		if (preg_match('/^[A-ZÄËḦÏÖÜẄẌŸ](?:[-a-zäëḧïöẗüẅẍÿ]+|[a-zäëḧïöẗüẅẍÿ]+-[A-ZÄËḦÏÖÜẄẌŸ][a-zäëḧïöẗüẅẍÿ]+)$/', $epithete)) {
1508
			$ok = true;
1528
			$ok = true;
1509
		}
1529
		}
Line 1571... Line 1591...
1571
				$noms_classes[$nom['nom_sci']]++;
1591
				$noms_classes[$nom['nom_sci']]++;
1572
			}
1592
			}
1573
		}
1593
		}
1574
		return $noms_classes;
1594
		return $noms_classes;
1575
	}
1595
	}
1576
 
-
 
1577
	private function getInfosTest($numero) {
-
 
1578
		$info = $this->tests[$numero];
-
 
1579
		$info['methode'] = 'tester'.implode('', explode(' ', ucwords($info['abr'])));
-
 
1580
		$info['numero'] = $numero; 
-
 
1581
		$info['resultat'] = false;
-
 
1582
		return $info;
-
 
1583
	}
-
 
1584
}
1596
}
1585
?>
1597
?>
1586
1598