//Antes de guardar en la base de datos convierte la fecha de formato y al mail añade 'mailto:' public function beforeSave($options = array()) { if (isset($this->data['Autor']['fecha'])) { $this->data['Autor']['fecha'] = date("Y-m-d", strtotime($this->data['Autor']['fecha'])); } if (isset($this->data['Autor']['mail'])) { $this->data['Autor']['mail'] = 'mailto:' . $this->data['Autor']['mail']; } } //Después de recuperar los datos de la base de datos convierte la fecha de mysql a d/m/y y quita el 'mailto:' de los mails public function afterFind($results, $primary = false) { foreach ($results as $key => $val) { if (isset($results[$key]['Autor']['fecha'])) { $results[$key]['Autor']['fecha'] = date("d-m-Y", strtotime($results[$key]['Autor']['fecha'])); } if (isset($results[$key]['Autor']['mail'])) { $results[$key]['Autor']['mail'] = str_replace('mailto:', '', $results[$key]['Autor']['mail']); } } return $results; } //Filtra todos los resultados que no tengan el mail 'aaa.com' public function beforeFind($query) { $query['conditions']['Autor.mail LIKE'] = "%@aaa.com%"; return $query; } //Cuando añadimos un autor nuevo crea una carpeta con su id public function afterSave($created, $options = array()) { if ($created) { $dir = new Folder(WWW_ROOT . 'autores/' . $this->data['Autor']['id'], true); } } //Impedimos que se borre el autor con id 3 public function beforeDelete($cascade = true) { if ($this->id == 3) { return false; } else { return true; } } //Cuando borramos un autor eliminamos su carpeta public function afterDelete(){ $folder = new Folder(); $folder->delete(WWW_ROOT . 'autores/' . $this->id); }