/** * Editamos un comentario. * @param int $comentario ID del comentario a editar. */ public function action_editar_comentario($comentario) { // Verificamos usuario logueado. if (!Usuario::is_login()) { $_SESSION['flash_error'] = 'Debes iniciar sessión para poder editar comentarios en fotos.'; Request::redirect('/usuario/login'); } $comentario = (int) $comentario; // Cargamos el comentario. $model_comentario = new Model_Foto_Comentario($comentario); // Verificamos existencia. if (!is_array($model_comentario->as_array())) { $_SESSION['flash_error'] = 'El comentario que deseas editar no se encuentra disponible.'; Request::redirect('/'); } // Verifico el estado. if ($model_comentario->estado === 2) { $_SESSION['flash_error'] = 'El comentario que deseas editar no se encuentra disponible.'; Request::redirect('/foto/ver/' . $model_comentario->foto_id); } // Verifico permisos estado. if ($model_comentario->usuario_id !== Usuario::$usuario_id && !Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_EDITAR)) { $_SESSION['flash_error'] = 'No tienes los permisos para editar el comentario.'; Request::redirect('/foto/ver/' . $model_comentario->foto_id); } // Cargo la vista. $vista = View::factory('/foto/editar_comentario'); // Seteo información del comentario. $vista->assign('contenido', $model_comentario->comentario); $vista->assign('error_contenido', FALSE); $vista->assign('usuario', $model_comentario->usuario()->as_array()); $vista->assign('foto', $model_comentario->foto()->as_array()); $vista->assign('comentario', $model_comentario->as_array()); if (Request::method() === 'POST') { // Cargo el comentario. $contenido = isset($_POST['contenido']) ? $_POST['contenido'] : ''; // Seteo enviado. $vista->assign('contenido', $contenido); // Verificamos el formato. $comentario_clean = preg_replace('/\\[.*\\]/', '', $contenido); if (!isset($comentario_clean[20]) || isset($contenido[400])) { $vista->assign('error_contenido', 'El comentario debe tener entre 20 y 400 caracteres.'); } else { // Transformamos entidades HTML. $contenido = htmlentities($contenido, ENT_NOQUOTES, 'UTF-8'); // Insertamos el comentario. $model_comentario->actualizar_campo('comentario', $contenido); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id == $model_comentario->usuario_id) { $model_suceso->crear(Usuario::$usuario_id, 'foto_comentario_editar', FALSE, $comentario, Usuario::$usuario_id); if (Usuario::$usuario_id != $model_comentario->foto()->usuario_id) { $model_suceso->crear($model_comentario->foto()->usuario_id, 'foto_comentario_editar', TRUE, $comentario, Usuario::$usuario_id); } } else { $model_suceso->crear($model_comentario->usuario_id, 'foto_comentario_editar', TRUE, $comentario, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'foto_comentario_editar', FALSE, $comentario, Usuario::$usuario_id); if (Usuario::$usuario_id == $model_comentario->foto()->usuario_id) { $model_suceso->crear($model_comentario->foto()->usuario_id, 'foto_comentario_editar', FALSE, $comentario, Usuario::$usuario_id); } } $_SESSION['post_comentario_success'] = 'El comentario se ha actualizado correctamente.'; Request::redirect('/foto/ver/' . $model_comentario->foto_id); } } // Menu. $this->template->assign('master_bar', parent::base_menu('foto')); $this->template->assign('top_bar', Controller_Home::submenu()); // Asignamos la vista. $this->template->assign('contenido', $vista->parse()); }
/** * Corramos el comentario de un post o una foto * @param int $comentario ID del comentario. * @param int $tipo 1: post, 2: foto. */ public function action_borrar_comentario($comentario, $tipo) { // Verifico permisos. if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO)) { $_SESSION['flash_error'] = 'No tienes permiso para acceder a esa sección.'; Request::redirect('/'); } // Verifico el tipo. $tipo = (int) $tipo; if ($tipo !== 1 && $tipo !== 2) { $_SESSION['flash_error'] = 'El comentario que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/desaprobado/comentarios'); } // Cargo el comentario. $comentario = (int) $comentario; if ($tipo == 1) { $model_comentario = new Model_Post_Comentario($comentario); } else { $model_comentario = new Model_Foto_Comentario($comentario); } // Verifico existencia. if (!$model_comentario->existe()) { $_SESSION['flash_error'] = 'El comentario que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/desaprobado/comentarios'); } // Verifico el estado. if ($model_comentario->estado !== Model_Comentario::ESTADO_OCULTO) { $_SESSION['flash_error'] = 'El comentario que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/desaprobado/comentarios'); } // Actualizo. $model_comentario->actualizar_campo('estado', Model_Comentario::ESTADO_BORRADO); // Enviamos el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_comentario->usuario_id) { $model_suceso->crear($model_comentario->usuario_id, $tipo == 1 ? 'post_comentario_borrar' : 'foto_comentario_borrar', TRUE, $model_comentario->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, $tipo == 1 ? 'post_comentario_borrar' : 'foto_comentario_borrar', FALSE, $model_comentario->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_comentario->usuario_id, $tipo == 1 ? 'post_comentario_borrar' : 'foto_comentario_borrar', FALSE, $model_comentario->id, Usuario::$usuario_id); } // Informo el resultado. $_SESSION['flash_success'] = 'El comentario se ha eliminado correctamente.'; Request::redirect('/moderar/desaprobado/comentarios'); }