'key', 'date'=>'date', 'closed'=>'bool' ); public function __construct() { parent::__construct(); $this->users_in = new UsersInGlobalPayback(); $this->date = new Datetime(); } // Getters // ======= public function getId() { return $this->id; } public function getDate($format = "d-m-Y H:i") { if(!empty($this->date)) return $this->date->format($format); else return false; } public function getUsersIn() { return $this->users_in; } public function getClosed() { return (bool) $this->closed; } // Setters // ======= public function setId($id) { $this->users_in->setPaybackId($id); $this->id = (int) $id; } public function setDate($minute, $hour, $day, $month, $year) { if((int) $minute < 10) $minute = '0'.(int) $minute; $this->date = DateTime::createFromFormat('Y-n-j G:i', $year.'-'.(int) $month.'-'.(int) $day.' '.(int) $hour.':'.$minute); } public function setUsersIn($users_in) { // Note : users_in in param is an array with users in listed and guests for each user $this->users_in->set($users_in); } public function setClosed($closed) { $this->closed = (bool) $closed; } // Maps htmlspecialchars on the class before display // ================================================= public function secureDisplay() { $this->id = (int) $this->id; return $this; } // Restores object from array // ========================== public function sessionRestore($data, $serialized = false) { if($serialized) { $data = unserialize($data); } $this->setId($data['id']); $this->date = DateTime::createFromFormat('Y-m-d H:i:s', $data['date']); $this->setClosed($data['closed']); } // Override parent load() method // ============================= public function load($fields = NULL, $first_only = false, $key_array = 'id') { $return = parent::load($fields, $first_only); // Execute parent load if(is_array($return)) { foreach(array_keys($return) as $key) { $return[$key]->users_in->load(); // Load users in for each global paybacks } } elseif(is_a($return, 'GlobalPayback')) { $return->users_in->load(); } return $return; // Return the loaded elements } // Override parent save() method // ============================ public function save() { parent::save(); // Save invoice element $this->users_in->save(); // Save users in } // Override parent delete() method // =============================== public function delete() { parent::delete(); // Delete invoice element $this->users_in->delete(); // Also delete users in } }