Esempio n. 1
0
 /**
  * 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());
 }
Esempio n. 2
0
 /**
  * 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());
 }
Esempio n. 3
0
File: foto.php Progetto: 4bs4/marifa
 /**
  * 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());
 }
Esempio n. 4
0
 /**
  * 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');
 }