/** * Portada de la administración de contenido. * Veo estadísticas sobre contenido en la comunidad. */ public function action_index() { // Cargamos la vista. $vista = View::factory('admin/contenido/index'); // Cantidades de posts por estado. $vista->assign('post_estado', Model_Post::cantidad_agrupados()); // Cantidades de posts por categoria. $vista->assign('posts_categorias', Model_Post::cantidad_categorias()); // Cantidad de comentarios en posts por estado. $vista->assign('post_comentarios_estado', Model_Post_Comentario::cantidad_agrupados()); // Cantidad de fotos por estado. $vista->assign('foto_estado', Model_Foto::cantidad_agrupados()); // Cantidad de comentarios en fotos por estado. $vista->assign('foto_comentarios_estado', Model_Foto_Comentario::cantidad_agrupados()); // Cantidad de fotos por categoria. $vista->assign('fotos_categorias', Model_Foto::cantidad_categorias()); // 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')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }
/** * Suceso producido cuando se edita el comentario de un usuario en una foto. * @param array $suceso Datos del suceso. * @return array */ protected static function suceso_foto_comentario_editar($suceso) { // Verifico si fui yo. if ($suceso['objeto_id1'] == Usuario::$usuario_id) { return NULL; } // Cargo el comentario. $model_comentario = new Model_Foto_Comentario((int) $suceso['objeto_id']); // Cargo el usuario que edita. $model_usuario = new Model_Usuario((int) $suceso['objeto_id1']); return array('foto' => $model_comentario->foto()->as_array(), 'comentario_usuario' => $model_comentario->usuario()->as_array(), 'usuario' => $model_usuario->as_array()); }
/** * 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'); }