New file |
0,0 → 1,94 |
<?php |
|
class BasevegVerif extends VerificateurDonnees { |
|
private $synonymes; |
private $niveaux; |
private $motifs; |
|
|
//obligatoire |
public function definirTraitementsColonnes() { |
$this->initialiserParametresVerif(); |
if ($this->colonne_num == 1 ) { |
$this->verifierColonne(); |
} elseif ($this->colonne_num == 2 ) { |
$this->verifierColonne(); |
} elseif ($this->colonne_num == 4 ) { |
$this->verifierNiveaux(); |
} |
} |
|
|
|
public function initialiserParametresVerif() { |
$this->niveaux = array('CLA','ALL','ORD','ASS','GRPT','SUBORD','SUBASS','BC','SUBCLA','DC','SUBALL'); |
$this->synonymes = array('incl','=','?','illeg','pp','pmaxp','pminp','compl','ambig','non','inval','nn','ined'); |
$this->motifs= $this->inverserTableau(array('/^[0-9]+$/' => 1, |
'/(?:[0-9]{2}\/$|[0-9]{2}\/[0-9]\.$|[0-9]{2}\/(?:[0-9]\.){1,5}[0-9]$|[0-9]{2}\/(?:[0-9]\.){4,5}[0-9]\/[0-9]+(?:bis|ter|quater){0,1}$)|incertae sedis/' => 2)); |
//présence de '=' , '= ?' et ',' dans les valeurs des paramètres. ne pas utiliser getParametresTableau. |
} |
|
//++---------------------------------traitements des colonnes baseveg------------------------------------++ |
/** |
* |
* verifie le champ niveau |
*/ |
public function verifierNiveaux(){ |
if (preg_match("/^syn(.+)$/", $this->colonne_valeur, $retour) == 1) { |
$synonymes = explode(' ', trim($retour[1])); |
foreach($synonymes as $syn){ |
if (!in_array($syn, $this->synonymes)) { |
$this->noterErreur(); |
} |
} |
} elseif($this->colonne_valeur != '') { |
if (!in_array($this->colonne_valeur , $this->niveaux)) { |
$this->noterErreur(); |
} |
} |
} |
|
|
/** |
* |
* vérifie un motif sur la valeur entière d'une colonne par expression régulière |
* |
*/ |
public function verifierColonne(){ |
$motif = $this->motifs[$this->colonne_num]; |
if (preg_match($motif, $this->colonne_valeur) == 0 && $this->verifierSiVide() == false){ |
$this->noterErreur(); |
} |
} |
|
|
/** |
* |
* vérifie si une colonne est vide ou non de valeurs |
* |
*/ |
public function verifierSiVide(){ |
$vide = ($this->colonne_valeur == '') ? true : false; |
return $vide; |
} |
|
|
|
/*--------------------------------------------OUtils-------------------------------------------*/ |
|
//attention , dans les motifs !! |
|
private function inverserTableau($tableau) { |
$inverse = array(); |
foreach ($tableau as $cle => $valeurs) { |
$valeurs = explode(';', $valeurs); |
foreach ($valeurs as $valeur) { |
$inverse[$valeur] = $cle; |
} |
} |
return $inverse; |
} |
} |
|
?> |