diff --git a/class/Cms.class.php b/class/Cms.class.php new file mode 100644 index 0000000..96af9ac --- /dev/null +++ b/class/Cms.class.php @@ -0,0 +1,491 @@ +hydrate($aParam); + $this->nId = ( isset($aParam['id']) ) ? $aParam['id'] : 0; + $this->_sDbInstance = $sDbInstance; + } + + /** + * Fonction permettant d'hydrater un objet + * @param $aDonnees array tableau clé-valeur à hydrater ( par exemple "nom"=>"DUPONT" ) + */ + public function hydrate($aDonnees) + { + foreach ($aDonnees as $sKey => $sValue) + { + if(!is_int($sKey)) + { + $sMethode = 'set'.ucfirst($sKey); + if (method_exists($this, $sMethode)) + { + if( is_null($sValue) ) $sValue=""; + $this->$sMethode($sValue); + } + else + { + //echo "
Cms->$sMethode() n'existe pas!"; + $this->addDataNonHydrate($sKey,$sValue); + } + } + } + } + + /** + * Fonction permettant d'hydrater un objet à partir d'une liste de champs (s'appuie sur l'id de l'objet) + * @param $aFields array tableau contenant la liste des champs à hydrater ( '*' pour tous) + */ + public function hydrateFromBDD($aFields=array()) + { + if(count($aFields)) + { + //hydrate uniquement les champs de base (pour le reste coder directement dans les acesseurs) + $aData=DbLink::getInstance($this->_sDbInstance)->selectForHydrate($this->getId(),"cms",$aFields); + + //hydrate l'objet + $this->hydrate($aData); + } + } + + + /** + * Fonction permettant d'ajouter des données non-hydratées à l'objet + * @param string $sKey champs + * @param mixed $sValue valeur + */ + public function addDataNonHydrate($sKey,$sValue) + { + $this->aDataNonHydrate[$sKey]=$sValue; + } + + /** + * Fonction permettant de récuperer des données non-hydratées à l'objet + * @param string $sKey champs à récupérer + * @return string valeur du champ + */ + public function getDataNonHydrate($sKey) + { + if(isset($this->aDataNonHydrate[$sKey])) + { + return $this->aDataNonHydrate[$sKey]; + } + else + { + return ""; + } + } + + /** + * Fonction permettant de supprimer fictivement un objet (en lui passant un date supprime) + */ + public function supprime() + { + $this->setDate_supprime(date("Y-m-d H:i:s")); + $this->save(); + } + + /** + * Fonction permettant de supprimer réellement un objet (en faisant un DELETE ) + */ + public function delete() + { + $oReq=DbLink::getInstance($this->_sDbInstance)->prepare('DELETE FROM '."cms".' WHERE id=:id '); + $oReq->execute(array("id"=>$this->getId())); + $this->vide(); + } + + /** + * Consulte la base de données pour savoir si l'objet existe, en le recherchant par son id + * @static + * @param int $nId Id de l'objet à chercher + * @param $sDbInstance (Opt) Nom de l'instance de la bdd + * @return bool Vrai si l'objet existe, Faux sinon + */ + public static function exists($nId=0, $sDbInstance=null) + { + $oReq=DbLink::getInstance($sDbInstance)->prepare('SELECT id FROM '."cms".' WHERE id=:id '); + $oReq->execute(array("id"=>$nId)); + $aRes=$oReq->getRow(0); + return (count($aRes)!=0); + } + + /** + * Sauvegarde l'objet en base + */ + public function save() + { + $aData=array(); + if(isset($this->aDataSet["date_created"])) + { + $aData["date_created"]=$this->getDate_created(); + } + + if(isset($this->aDataSet["date_amended"])) + { + $aData["date_amended"]=$this->getDate_amended(); + } + + if(isset($this->aDataSet["date_deleted"])) + { + $aData["date_deleted"]=$this->getDate_deleted(); + } + + if(isset($this->aDataSet["ref"])) + { + $aData["ref"]=$this->getRef(); + } + + if(isset($this->aDataSet["comment"])) + { + $aData["comment"]=$this->getComment(); + } + + if($this->getId()>0) + { + DbLink::getInstance($this->_sDbInstance)->update("cms",$aData,' id="'.$this->getId().'" '); + } + else + { + $this->setId(DbLink::getInstance($this->_sDbInstance)->insert("cms",$aData)); + } + $this->aDataSet=array(); + } + + /** + * Deshydrate complement l'objet, et vide la liste des champs à sauvegarder + */ + private function vide() + { + $this->callHydrateFromBDDOnGet=0; + $this->aDataSet=array(); + $this->setDate_created(NULL); + $this->setDate_amended(NULL); + $this->setDate_deleted(NULL); + $this->setRef(NULL); + $this->setComment(NULL); + } + + /** + * Renvoie l'objet sous forme de chaine de caractère + */ + public function __toString() + { + $aObjet = [ + "id" => $this->getId(), + "date_created" => $this->getDate_created(), + "date_amended" => $this->getDate_amended(), + "date_deleted" => $this->getDate_deleted(), + "ref" => $this->getRef(), + "comment" => $this->getComment() + ]; + + return json_encode($aObjet); + } + + + + /* + ******************************************************************************************** + * DEBUT FONCTIONS PERSONNALISES * + ******************************************************************************************** + */ + + + /* + ******************************************************************************************** + * FIN FONCTIONS PERSONNALISES * + ******************************************************************************************** + */ + + + + + /** + * Set le champ id + * @param number $nId nouvelle valeur pour le champ id + */ + public function setId($nId) + { + if( is_null($nId) ) $nId=''; + if( is_numeric($nId) || $nId=='' ) + { + $this->nId = $nId; + $this->aDataSet["id"]=1; + } + } + + + + /** + * Get le champ id + * @return number valeur du champ id + */ + public function getId() + { + if( !is_null($this->nId) ) + { + if( $this->nId==='' ) + { + return NULL; + } + else + { + return $this->nId; + } + } + else + { + $this->hydrateFromBDD(array('id')); + $this->callHydrateFromBDDOnGet++; + if($this->callHydrateFromBDDOnGet>ConfigService::get("maxCallHydrateFromBDDonGet")) + { + echo "
WARNING : trop d'appel en base depuis l'accesseur ". __CLASS__ ."::". __FUNCTION__ .""; + } + return $this->nId; + } + } + + + + /** + * Set le champ date_created + * @param string $sDate_created nouvelle valeur pour le champ date_created + */ + public function setDate_created($sDate_created) + { + if( is_null($sDate_created) ) $sDate_created=''; + $this->sDate_created = $sDate_created; + $this->aDataSet["date_created"]=1; + } + + + + /** + * Get le champ date_created + * @return string valeur du champ date_created + */ + public function getDate_created() + { + if( !is_null($this->sDate_created) ) + { + if( $this->sDate_created==='' ) + { + return NULL; + } + else + { + return $this->sDate_created; + } + } + else + { + $this->hydrateFromBDD(array('date_created')); + $this->callHydrateFromBDDOnGet++; + if($this->callHydrateFromBDDOnGet>ConfigService::get("maxCallHydrateFromBDDonGet")) + { + echo "
WARNING : trop d'appel en base depuis l'accesseur ". __CLASS__ ."::". __FUNCTION__ .""; + } + return $this->sDate_created; + } + } + + + + /** + * Set le champ date_amended + * @param string $sDate_amended nouvelle valeur pour le champ date_amended + */ + public function setDate_amended($sDate_amended) + { + if( is_null($sDate_amended) ) $sDate_amended=''; + $this->sDate_amended = $sDate_amended; + $this->aDataSet["date_amended"]=1; + } + + + + /** + * Get le champ date_amended + * @return string valeur du champ date_amended + */ + public function getDate_amended() + { + if( !is_null($this->sDate_amended) ) + { + if( $this->sDate_amended==='' ) + { + return NULL; + } + else + { + return $this->sDate_amended; + } + } + else + { + $this->hydrateFromBDD(array('date_amended')); + $this->callHydrateFromBDDOnGet++; + if($this->callHydrateFromBDDOnGet>ConfigService::get("maxCallHydrateFromBDDonGet")) + { + echo "
WARNING : trop d'appel en base depuis l'accesseur ". __CLASS__ ."::". __FUNCTION__ .""; + } + return $this->sDate_amended; + } + } + + + + /** + * Set le champ date_deleted + * @param string $sDate_deleted nouvelle valeur pour le champ date_deleted + */ + public function setDate_deleted($sDate_deleted) + { + if( is_null($sDate_deleted) ) $sDate_deleted=''; + $this->sDate_deleted = $sDate_deleted; + $this->aDataSet["date_deleted"]=1; + } + + + + /** + * Get le champ date_deleted + * @return string valeur du champ date_deleted + */ + public function getDate_deleted() + { + if( !is_null($this->sDate_deleted) ) + { + if( $this->sDate_deleted==='' ) + { + return NULL; + } + else + { + return $this->sDate_deleted; + } + } + else + { + $this->hydrateFromBDD(array('date_deleted')); + $this->callHydrateFromBDDOnGet++; + if($this->callHydrateFromBDDOnGet>ConfigService::get("maxCallHydrateFromBDDonGet")) + { + echo "
WARNING : trop d'appel en base depuis l'accesseur ". __CLASS__ ."::". __FUNCTION__ .""; + } + return $this->sDate_deleted; + } + } + + + + /** + * Set le champ ref + * @param string $sRef nouvelle valeur pour le champ ref + */ + public function setRef($sRef) + { + if( is_null($sRef) ) $sRef=''; + $this->sRef = $sRef; + $this->aDataSet["ref"]=1; + } + + + + /** + * Get le champ ref + * @return string valeur du champ ref + */ + public function getRef() + { + if( !is_null($this->sRef) ) + { + if( $this->sRef==='' ) + { + return NULL; + } + else + { + return $this->sRef; + } + } + else + { + $this->hydrateFromBDD(array('ref')); + $this->callHydrateFromBDDOnGet++; + if($this->callHydrateFromBDDOnGet>ConfigService::get("maxCallHydrateFromBDDonGet")) + { + echo "
WARNING : trop d'appel en base depuis l'accesseur ". __CLASS__ ."::". __FUNCTION__ .""; + } + return $this->sRef; + } + } + + + + /** + * Set le champ comment + * @param string $sComment nouvelle valeur pour le champ comment + */ + public function setComment($sComment) + { + if( is_null($sComment) ) $sComment=''; + $this->sComment = $sComment; + $this->aDataSet["comment"]=1; + } + + + + /** + * Get le champ comment + * @return string valeur du champ comment + */ + public function getComment() + { + if( !is_null($this->sComment) ) + { + if( $this->sComment==='' ) + { + return NULL; + } + else + { + return $this->sComment; + } + } + else + { + $this->hydrateFromBDD(array('comment')); + $this->callHydrateFromBDDOnGet++; + if($this->callHydrateFromBDDOnGet>ConfigService::get("maxCallHydrateFromBDDonGet")) + { + echo "
WARNING : trop d'appel en base depuis l'accesseur ". __CLASS__ ."::". __FUNCTION__ .""; + } + return $this->sComment; + } + } + +} \ No newline at end of file diff --git a/class/CmsListe.class.php b/class/CmsListe.class.php new file mode 100644 index 0000000..40294e7 --- /dev/null +++ b/class/CmsListe.class.php @@ -0,0 +1,53 @@ +setTablePrincipale("cms"); + $this->setAliasPrincipal("Cms"); + /*$this->setTri(""); + $this->setSens("DESC"); + $this->setSearchFields(array( + array("field"=>"nom") + ))*/ + } + + /** + * Access champs table + */ + public static function champs() + { + return self::$_champs; + } + + /** + * Methode pour récupérer tous les champs + */ + public function setAllFields() + { + $this->setFields(self::$_champs); + } + +} \ No newline at end of file