$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é d'un intitulé et l'attribuant à l'objet si ok * * @return booléen suivant succès * @author Fabrice PENHOËT **/ public function set_designation($designation) { $designation=strip_tags(strval(trim($designation))); $longueur=strlen($designation); if(($longueurAGENDA_MAX_DESIGNATION)) { $this->erreurs=array_merge($this->erreurs,(array) ERREUR_AGENDA_DESIGNATION_LONG); return false; } else { $this->designation=$designation; return true; } } /** * Méthode testant la validité d'une date de début fournie * et la transformant en timestamp unix si ok pour l'attribuer à l'objet * * @param date de début au format JJ/MM/AAAA * @return booléen suivant succès * @author Fabrice PENHOËT **/ public function set_time_debut($date_debut) { if(preg_match(DATE_FORMAT_EREG,$date_debut)==0) { $this->erreurs=array_merge($this->erreurs,(array) ERREUR_AGENDA_DATE_DEBUT_FORMAT); return false; } $tab_debut=explode("/",$date_debut); $time_debut=mktime(0,0,0,$tab_debut[1],$tab_debut[0],$tab_debut[2]); if($time_debut===false) return false; $this->time_debut=$time_debut; return true; } /** * Méthode testant la validité d'une date de fin fournie * et la transformant en timestamp unix si ok pour l'attribuer à l'objet * * @param date de fin au format JJ/MM/AAAA * @return booléen suivant succès * @author Fabrice PENHOËT **/ public function set_time_fin($date_fin) { if(!isset($this->time_debut)) { $this->erreurs=array_merge($this->erreurs,(array) ERREUR_AGENDA_DATE_FIN_DEBUT_ABSENT); return false; } if(preg_match(DATE_FORMAT_EREG,$date_fin)==0) { $this->erreurs=array_merge($this->erreurs,(array) ERREUR_AGENDA_DATE_FIN_FORMAT); return false; } $tab_fin=explode("/",$date_fin); $time_fin=mktime(0,0,0,$tab_fin[1],$tab_fin[0],$tab_fin[2]); if($time_fin===false) return false; if($time_fin<$this->time_debut) { $this->erreurs=array_merge($this->erreurs,(array) ERREUR_AGENDA_DATE_FIN_AVANT_DEBUT); return false; } $this->time_fin=$time_fin; return true; } /** * Méthode testant la validité du propriétaire fourni * * @param user : une instance de l'objet Utilisateur * @return false si valeur non acceptée, true sinon * @author Fabrice PENHOËT **/ public function set_proprietaire($user) { if(!($user instanceof Utilisateur)) { $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_PARAM_FORMAT)); return false; } if(!isset($user->id_utilisateur)) { $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_PARAM_MANQUANT)); return false; } $this->proprietaire=$user; 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; } }