/** * Eliminamos el post de un usuario. * @param int $id ID del post a borrar. */ public function action_eliminar_post($id) { $id = (int) $id; // Cargamos el modelo del post. $model_post = new Model_Post($id); if (!$model_post->existe()) { $_SESSION['flash_error'] = 'El post que deseas eliminar no se encuentra disponible.'; Request::redirect('/admin/contenido/posts/'); } // Verifico cual es el estado actual. if ($model_post->estado === Model_Post::ESTADO_BORRADO) { $_SESSION['flash_error'] = 'El post que deseas eliminar no se encuentra disponible.'; Request::redirect('/admin/contenido/posts/'); } // Cargamos la vista. $vista = View::factory('admin/contenido/eliminar_post'); // Valores por defecto y errores. $vista->assign('tipo', ''); $vista->assign('error_tipo', FALSE); $vista->assign('razon', ''); $vista->assign('error_razon', FALSE); $vista->assign('borrador', FALSE); $vista->assign('error_borrador', FALSE); if (Request::method() == 'POST') { // Seteamos sin error. $error = FALSE; // Obtenemos los campos. $tipo = isset($_POST['tipo']) ? (int) $_POST['tipo'] : NULL; $razon = isset($_POST['razon']) ? preg_replace('/\\s+/', ' ', trim($_POST['razon'])) : NULL; $borrador = isset($_POST['borrador']) ? $_POST['borrador'] == 1 : FALSE; // Valores para cambios. $vista->assign('tipo', $tipo); $vista->assign('razon', $razon); $vista->assign('borrador', $borrador); // Verifico el tipo. if (!in_array($tipo, array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12))) { $error = TRUE; $vista->assign('error_tipo', 'No ha seleccionado un tipo válido.'); } else { // Verifico la razón si corresponde. if ($tipo === 12) { // Verificamos el nombre. if (!preg_match('/^[a-z0-9\\sáéíóúñ]{10,200}$/iD', $razon)) { $error = TRUE; $vista->assign('error_razon', 'La razón dete tener entre 10 y 200 caractéres alphanuméricos.'); } } else { $razon = NULL; } } if (!$error) { // Creo la moderación. $model_post->moderar($model_post->id, $tipo, $razon, $borrador); // Enviamos el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_post->usuario_id) { $model_suceso->crear($model_post->usuario_id, 'post_borrar', TRUE, $model_post->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_post->usuario_id, 'post_borrar', FALSE, $model_post->id, Usuario::$usuario_id); } // Informamos el resultado. $_SESSION['flash_success'] = 'Post borrado correctamente.'; Request::redirect('/admin/contenido/posts/'); } } // Seteamos el menu. $this->template->assign('master_bar', parent::base_menu('admin')); // Cargamos plantilla administracion. $admin_template = View::factory('admin/template'); $admin_template->assign('contenido', $vista->parse()); unset($portada); $admin_template->assign('top_bar', Controller_Admin_Home::submenu('contenido_post')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }