limites=$infos["limites"]; unset($infos["limites"]); } $erreur_ok=false; foreach ($infos as $attribut => $valeur) { $methode="set_$attribut"; if (method_exists(__CLASS__,$methode)) { if(!$this->$methode($valeur)) $erreur_ok=true; } else $this->$attribut=$valeur; } if(($erreur_ok)&&(empty($this->erreurs))) $this->erreurs=(array) ERREUR_IMPREVUE; } } /** * Méthode testant la validité du nom de la rubrique * et l'attribuant à l'objet si ok * * @param le nom à contrôler * @return booléen suivant succès * @author Fabrice PENHOËT **/ public function set_nom($nom) { $long_min=(!empty($this->limites["nom_long_min"]))?$this->limites["nom_long_min"]:0; if(empty($this->limites["nom_long_max"])) { $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_PARAM_MANQUANT)); return false; } $long_max=$this->limites["nom_long_max"]; if((($long_min!=0)&&(!is_int($long_min)))||(!is_int($long_max))||($long_max<$long_min)) { $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_PARAM_FORMAT)); return false; } $nom=strip_tags(strval(trim($nom))); $longueur=strlen($nom); if(($longueur<$long_min)||($longueur>$long_max)) { $this->erreurs=array_merge($this->erreurs,(array) (str_replace(array("__MIN__","__MAX__"),array($long_min,$long_max),ERREUR_RUBRIQUE_NOM_LONG))); return false; } else { $this->nom=$nom; return true; } } /** * Méthode testant la validité de la description de la rubrique * et l'attribuant à l'objet si ok * * @param la description à contôler * @return booléen suivant succès * @author Fabrice PENHOËT **/ public function set_description($description) { $long_min=(!empty($this->limites["description_long_min"]))?$this->limites["description_long_min"]:0; if(empty($this->limites["description_long_max"])) { $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_PARAM_MANQUANT)); return false; } $long_max=$this->limites["description_long_max"]; if((($long_min!=0)&&(!is_int($long_min)))||(!is_int($long_max))||($long_max<$long_min)) { $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_PARAM_FORMAT)); return false; } $description=strip_tags(strval(trim($description))); $longueur=strlen($description); if(($longueur<$long_min)||($longueur>$long_max)) { $this->erreurs=array_merge($this->erreurs,(array) (str_replace(array("__MIN__","__MAX__"),array($long_min,$long_max),ERREUR_RUBRIQUE_DESCRIPTION_LONG))); return false; } else { $this->description=$description; return true; } } /** * Méthode testant la validité de la rubrique supérieure * et l'attribuant à l'objet si ok * la valeur peut être nulle si on décrit une rubrique racine * * @param la valeur à contrôler * @return booléen suivant succès * @author Fabrice PENHOËT **/ public function set_rubrique_sup($rubrique_sup=null) { if((!empty($rubrique_sup))&&(!($rubrique_sup instanceof Rubrique))) { $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_PARAM_FORMAT)); return false; } else { $this->rubrique_sup=$rubrique_sup; return true; } } /** * Affichage par défaut d'un objet * * @return chaîne de caractères listant la valeur de chaque attribut * @author Fabrice PENHOËT **/ public function __toString() { $texte="

".__CLASS__."

"; foreach($this as $key => $value) { if(is_array($value)) $value=affiche_tableau($value,"
  • #valeur
  • ",""); $texte.="$key : $value\n"; } return $texte; } }