public function action_rechazar($foto_id = null, $user_id = null) { is_null($foto_id) and Response::redirect('editor'); is_null($user_id) and Response::redirect('editor'); $foto = Model_Foto::find($foto_id); $foto->estado = 2; $foto->save(); Session::set_flash('error', 'Foto ' . $foto->imagen . ' rechazada'); Response::redirect('editor/revisar/' . $user_id); }
public function action_add() { $this->template = ''; $foto_existe = Model_Foto::find('all', array('where' => array('articulo_id' => Input::post('articulo_id'), 'imagen' => Input::post('imagen')))); if ($foto_existe == null) { $estado = Auth::instance()->has_access('Controller_Editor.index') ? 1 : 0; $foto = Model_Foto::forge(array('imagen' => parse_url(Input::post('imagen'), PHP_URL_PATH), 'width' => 110, 'height' => 110, 'articulo_id' => Input::post('articulo_id'), 'dimension_id' => Input::post('dimension_id'), 'estado' => $estado)); if ($foto and $foto->save()) { echo '0'; return; } echo '1'; return; } echo '2'; return; }
/** * Suceso producido cuando se agrega a favoritos una foto. * @param array $suceso Datos del suceso. * @return array */ protected static function suceso_foto_editar($suceso) { // Verifico si fui yo. if ($suceso['objeto_id1'] == Usuario::$usuario_id) { return NULL; } // Cargo la foto. $model_foto = new Model_Foto((int) $suceso['objeto_id']); // Cargo quien edita la foto. $model_usuario = new Model_Usuario((int) $suceso['objeto_id1']); return array('foto' => $model_foto->as_array(), 'usuario' => $model_foto->usuario()->as_array(), 'editor' => $model_usuario->as_array()); }
/** * Submenu de la moderación. * @param string $activo Sección actual. * @return array */ public static function submenu($activo) { $listado = array(); $listado['p_principal'] = array('caption' => 'Principal'); $listado['index'] = array('link' => '/moderar/', 'caption' => 'Inicio', 'active' => FALSE); if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS, Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS, Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS))) { $listado['p_denuncias'] = array('caption' => 'Denuncias'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS)) { $listado['denuncias_posts'] = array('link' => '/moderar/denuncias/posts/', 'caption' => 'Posts', 'active' => FALSE, 'cantidad' => Model_Post_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS)) { $listado['denuncias_fotos'] = array('link' => '/moderar/denuncias/fotos/', 'caption' => 'Fotos', 'active' => FALSE, 'cantidad' => Model_Foto_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS)) { $listado['denuncias_usuarios'] = array('link' => '/moderar/denuncias/usuarios/', 'caption' => 'Usuarios', 'active' => FALSE, 'cantidad' => Model_Usuario_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } } $listado['p_gestion'] = array('caption' => 'Gestión'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_SUSPENDER)) { $listado['gestion_usuarios'] = array('link' => '/moderar/gestion/usuarios/', 'caption' => 'Usuarios', 'active' => FALSE, 'cantidad' => Model_Usuario_Suspension::cantidad()); } // $listado['gestion_buscador'] = array('link' => '/moderar/gestion/buscador/', 'caption' => 'Buscador contenido', 'active' => FALSE); if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_PAPELERA, Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA))) { $listado['p_papelera'] = array('caption' => 'Papelera de reciclaje'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_PAPELERA)) { $listado['papelera_posts'] = array('link' => '/moderar/papelera/posts/', 'caption' => 'Posts eliminados', 'active' => FALSE, 'cantidad' => Model_Post::s_cantidad(Model_Post::ESTADO_PAPELERA)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) { $listado['papelera_fotos'] = array('link' => '/moderar/papelera/fotos/', 'caption' => 'Fotos eleminadas', 'active' => FALSE, 'cantidad' => Model_Foto::s_cantidad(Model_Foto::ESTADO_PAPELERA)); } } if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO, Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO))) { $listado['p_desaprobado'] = array('caption' => 'Contenido desaprobado'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO)) { $listado['desaprobado_posts'] = array('link' => '/moderar/desaprobado/posts', 'caption' => 'Posts', 'active' => FALSE, 'cantidad' => Model_Post::s_cantidad(Model_Post::ESTADO_PENDIENTE) + Model_Post::s_cantidad(Model_Post::ESTADO_RECHAZADO)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO)) { $listado['desaprobado_comentarios'] = array('link' => '/moderar/desaprobado/comentarios/', 'caption' => 'Comentarios', 'active' => FALSE, 'cantidad' => Model_Comentario::cantidad(Model_Comentario::ESTADO_OCULTO)); } } // Seteamos el color. foreach ($listado as $k => $v) { if (isset($v['cantidad'])) { if ($listado[$k]['cantidad'] > 0) { $listado[$k]['tipo'] = 'important'; } else { $listado[$k]['tipo'] = 'success'; } } } if (isset($listado[$activo])) { $listado[$activo]['active'] = TRUE; } return $listado; }
/** * Portada del sitio. * @param int $pagina Número de página para lo últimos posts. */ public function action_index($pagina) { // Cargamos la portada. $portada = View::factory('home/index'); // Seteo el menu. $this->template->assign('master_bar', parent::base_menu('posts')); $this->template->assign('top_bar', self::submenu('inicio')); // Cargamos datos de posts. $model_post = new Model_Post(); // Cantidad posts y comentarios en posts. $portada->assign('cantidad_posts', $model_post->cantidad()); $portada->assign('cantidad_comentarios_posts', $model_post->cantidad_comentarios()); // Cantidad de elementos por pagina. $model_configuracion = new Model_Configuracion(); $cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20); // Formato de la página. $pagina = (int) $pagina > 0 ? (int) $pagina : 1; if ($pagina == 1) { // Cargo fijos. $post_sticky = $model_post->sticky(); // Extendemos la información de los posts. foreach ($post_sticky as $k => $v) { $a = $v->as_array(); $a['usuario'] = $v->usuario()->as_array(); $a['puntos'] = $v->puntos(); $a['comentarios'] = $v->cantidad_comentarios(Model_Post_Comentario::ESTADO_VISIBLE); $a['categoria'] = $v->categoria()->as_array(); $post_sticky[$k] = $a; } // Seteo y limpio. $portada->assign('sticky', $post_sticky); unset($post_sticky); } // Ultimos posts $post_list = $model_post->obtener_ultimos($pagina, $cantidad_por_pagina); // Verifivo validez de la pagina. if (count($post_list) == 0 && $pagina != 1) { Request::redirect('/'); } // Paginación. $paginador = new Paginator($model_post->cantidad(Model_Post::ESTADO_ACTIVO), $cantidad_por_pagina); $portada->assign('paginacion', $paginador->get_view($pagina, '/home/index/%d')); unset($paginador); // Extendemos la información de los posts. foreach ($post_list as $k => $v) { $a = $v->as_array(); $a['usuario'] = $v->usuario()->as_array(); $a['puntos'] = $v->puntos(); $a['comentarios'] = $v->cantidad_comentarios(Model_Post_Comentario::ESTADO_VISIBLE); $a['categoria'] = $v->categoria()->as_array(); $post_list[$k] = $a; } $portada->assign('ultimos_posts', $post_list); unset($post_list); // Cargamos TOP posts. $post_top_list = $model_post->obtener_tops(); // Extendemos la información de los posts. foreach ($post_top_list as $k => $v) { $a = $v->as_array(); $a['puntos'] = $v->puntos(); $post_top_list[$k] = $a; } $portada->assign('top_posts', $post_top_list); unset($post_top_list, $model_post); // Cargamos últimos comentarios. $comentario_list = Model_Post_Comentario::obtener_ultimos(); // Extendemos la información de los comentarios. foreach ($comentario_list as $k => $v) { $a = $v->as_array(); $a['usuario'] = $v->usuario()->as_array(); $a['post'] = $v->post()->as_array(); $comentario_list[$k] = $a; } $portada->assign('ultimos_comentarios', $comentario_list); unset($comentario_list); // Cargamos top usuarios. $model_usuario = new Model_Usuario(); // Cantidad de usuarios $portada->assign('cantidad_usuarios', $model_usuario->cantidad()); $portada->assign('cantidad_usuarios_online', $model_usuario->cantidad_activos()); // Top de usuarios. $usuario_top_list = $model_usuario->obtener_tops(); // Extendemos la información de los usuarios. foreach ($usuario_top_list as $k => $v) { $a = $v->as_array(); $a['puntos'] = $v->cantidad_puntos(); $usuario_top_list[$k] = $a; } $portada->assign('usuario_top', $usuario_top_list); unset($usuario_top_list, $model_usuario); // Cargamos ultimas fotos. $model_foto = new Model_Foto(); $foto_list = $model_foto->obtener_ultimas(1, 1); // Extendemos la información de las fotos. foreach ($foto_list as $k => $v) { $foto_list[$k] = $v->as_array(); } $portada->assign('ultimas_fotos', $foto_list); unset($foto_list); // Cantidad fotos y comentarios en fotos. $portada->assign('cantidad_fotos', $model_foto->cantidad()); $portada->assign('cantidad_comentarios_fotos', $model_foto->cantidad_comentarios()); unset($model_foto); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $portada->parse()); }
/** * Borramos una foto. * @param int $foto ID de la foto a borrar. */ public function action_borrar_foto($foto) { // Verifico permisos. if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS)) { $_SESSION['flash_error'] = 'No tienes permiso para acceder a esa sección.'; Request::redirect('/'); } // Cargamos el post. $foto = (int) $foto; $model_foto = new Model_Foto($foto); // Verifico existencia del post. if (!$model_foto->existe()) { $_SESSION['flash_error'] = 'La foto que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/denuncias/fotos'); } // Verifico los permisos. if (Usuario::$usuario_id !== $model_foto->usuario_id && !Usuario::permiso(Model_Usuario_Rango::PERMISO_ELIMINAR_FOTOS)) { $_SESSION['flash_error'] = 'No tienes permisos para realizar esa acción.'; Request::redirect('/moderar/denuncias/fotos'); } // Verifico el estado. if ($model_foto->estado === Model_Foto::ESTADO_BORRADA) { $_SESSION['flash_error'] = 'La foto que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/denuncias/fotos'); } // Actualizo la foto $model_foto->actualizar_campo('estado', Model_Foto::ESTADO_BORRADA); // Enviamos el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_foto->usuario_id) { $model_suceso->crear($model_foto->usuario_id, 'foto_borrar', TRUE, $model_foto->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'foto_borrar', FALSE, $model_foto->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_foto->usuario_id, 'foto_borrar', FALSE, $model_foto->id, Usuario::$usuario_id); } // Informamos el resultado. $_SESSION['flash_success'] = 'Post eliminado correctamente.'; Request::redirect('/moderar/denuncias/fotos'); }
/** * Restauramos una foto proveniente de la papelera. * @param int $foto ID de la foto a restaurar. */ public function action_restaurar_foto($foto) { if (!Usuario::is_login()) { $_SESSION['flash_error'] = 'Debes iniciar sessión para poder restaurar fotos.'; Request::redirect('/usuario/login'); } $foto = (int) $foto; // Cargamos la foto. $model_foto = new Model_Foto($foto); // Verificamos exista. if (!is_array($model_foto->as_array())) { $_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.'; Request::redirect('/foto/'); } // Verifico el usuario y sus permisos. if (Usuario::$usuario_id !== $model_foto->usuario_id && !Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) { $_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.'; Request::redirect('/foto/ver/' . $foto); } // Verifico el estado de la foto. if ($model_foto->estado !== Model_Foto::ESTADO_PAPELERA) { $_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.'; Request::redirect('/foto/ver/' . $foto); } // Actualizo el estado. $model_foto->actualizar_estado(Model_Foto::ESTADO_ACTIVA); // Enviamos el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_foto->usuario_id) { $model_suceso->crear($model_foto->usuario_id, 'foto_restaurar', TRUE, $foto, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'foto_restaurar', FALSE, $foto, Usuario::$usuario_id); } else { $model_suceso->crear($model_foto->usuario_id, 'foto_restaurar', FALSE, $foto, Usuario::$usuario_id); } // Informamos el resultado. $_SESSION['flash_success'] = 'La foto se ha restaurado correctamente.'; Request::redirect('/foto/ver/' . $foto); }
/** * La foto se ha borrado correctamente. * @param int $id ID de la foto a borrar. */ public function action_eliminar_foto($id) { // Cargamos el modelo de la foto. $model_foto = new Model_Foto((int) $id); // Verifico que exista. if (!$model_foto->existe()) { $_SESSION['flash_error'] = 'No existe la foto que quiere mostrar.'; Request::redirect('/admin/contenido/fotos'); } // Borramos la foto. $model_foto->borrar(); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_foto->usuario_id) { $model_suceso->crear($model_foto->usuario_id, 'foto_borrar', TRUE, $model_foto->id, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'foto_borrar', FALSE, $model_foto->id, Usuario::$usuario_id); } else { $model_suceso->crear($model_foto->usuario_id, 'foto_borrar', FALSE, $model_foto->id, Usuario::$usuario_id); } // Informamos. $_SESSION['flash_success'] = 'Foto borrrada correctamente.'; Request::redirect('/admin/contenido/fotos'); }
/** * Borramos una foto. * @param int $foto ID de la post a borrar. */ public function action_borrar_foto($foto) { // Verifico permisos. if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) { $_SESSION['flash_error'] = 'No tienes permiso para borrar fotos.'; Request::redirect('/'); } $foto = (int) $foto; // Cargamos la foto. $model_foto = new Model_Foto($foto); // Verificamos exista. if (!is_array($model_foto->as_array())) { $_SESSION['flash_error'] = 'La foto que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/papelera/fotos'); } // Verifico el usuario y sus permisos. if (Usuario::$usuario_id !== $model_foto->usuario_id || !Usuario::permiso(Model_Usuario_Rango::PERMISO_ELIMINAR_FOTOS)) { $_SESSION['flash_error'] = 'La foto que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/papelera/fotos'); } // Actualizo el estado. $model_foto->actualizar_campo('estado', Model_Foto::ESTADO_BORRADO); // Enviamos el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_foto->usuario_id) { $model_suceso->crear($model_foto->usuario_id, 'foto_borrar', TRUE, $foto, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'foto_borrar', FALSE, $foto, Usuario::$usuario_id); } else { $model_suceso->crear($model_foto->usuario_id, 'foto_borrar', FALSE, $foto, Usuario::$usuario_id); } // Informamos el resultado. $_SESSION['flash_success'] = '<b>¡Felicitaciones!</b> Foto borrada correctamente.'; Request::redirect('/moderar/papelera/fotos'); }