//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);
}