Beispiel #1
0
 /**
  * Suceso producido cuando se edita el comentario de un usuario.
  * @param array $suceso Datos del suceso.
  * @return array
  */
 protected static function suceso_post_comentario_editar($suceso)
 {
     // Verifico si fui yo.
     if ($suceso['objeto_id1'] == Usuario::$usuario_id) {
         return NULL;
     }
     // Cargo el comentario.
     $model_comentario = new Model_Post_Comentario((int) $suceso['objeto_id']);
     // Cargo el usuario que edita.
     $model_usuario = new Model_Usuario((int) $suceso['objeto_id1']);
     return array('post' => $model_comentario->post()->as_array(), 'comentario_usuario' => $model_comentario->usuario()->as_array(), 'usuario' => $model_usuario->as_array());
 }
Beispiel #2
0
 /**
  * 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 posts.';
         Request::redirect('/usuario/login');
     }
     $comentario = (int) $comentario;
     // Cargamos el comentario.
     $model_comentario = new Model_Post_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('/post/index/' . $model_comentario->post_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('/post/index/' . $model_comentario->post_id);
     }
     // Cargo la vista.
     $vista = View::factory('/post/editar_comentario');
     // Seteo información del comentario.
     $vista->assign('contenido', $model_comentario->contenido);
     $vista->assign('error_contenido', FALSE);
     $vista->assign('usuario', $model_comentario->usuario()->as_array());
     $vista->assign('post', $model_comentario->post()->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('contenido', $contenido);
             // Envio el suceso.
             $model_suceso = new Model_Suceso();
             if (Usuario::$usuario_id == $model_comentario->usuario_id) {
                 $model_suceso->crear(Usuario::$usuario_id, 'post_comentario_editar', FALSE, $comentario, Usuario::$usuario_id);
                 if (Usuario::$usuario_id != $model_comentario->post()->usuario_id) {
                     $model_suceso->crear($model_comentario->post()->usuario_id, 'post_comentario_editar', TRUE, $comentario, Usuario::$usuario_id);
                 }
             } else {
                 $model_suceso->crear($model_comentario->usuario_id, 'post_comentario_editar', TRUE, $comentario, Usuario::$usuario_id);
                 $model_suceso->crear(Usuario::$usuario_id, 'post_comentario_editar', FALSE, $comentario, Usuario::$usuario_id);
                 if (Usuario::$usuario_id == $model_comentario->post()->usuario_id) {
                     $model_suceso->crear($model_comentario->post()->usuario_id, 'post_comentario_editar', FALSE, $comentario, Usuario::$usuario_id);
                 }
             }
             $_SESSION['post_comentario_success'] = 'El comentario se ha actualizado correctamente.';
             Request::redirect('/post/index/' . $model_comentario->post_id);
         }
     }
     // Menu.
     $this->template->assign('master_bar', parent::base_menu('posts'));
     $this->template->assign('top_bar', Controller_Home::submenu());
     // Asignamos la vista.
     $this->template->assign('contenido', $vista->parse());
 }