Esempio n. 1
0
File: post.php Progetto: 4bs4/marifa
 /**
  * Setamos o quitamos el atributo sticky de un post.
  * @param int $post ID del post a modificar el atributo.
  * @param bool $tipo Si se agrega o quita.
  */
 public function action_fijar_post($post, $tipo)
 {
     // Verificamos usuario logueado.
     if (!Usuario::is_login()) {
         $_SESSION['flash_error'] = 'Debes iniciar sessión para poder fijar posts.';
         Request::redirect('/usuario/login');
     }
     // Verifico el permiso.
     if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_FIJAR_PROMOVER)) {
         $_SESSION['flash_error'] = 'No tienes permisos para fijar un post.';
         Request::redirect('/');
     }
     // Convertimos el post a ID.
     $post = (int) $post;
     // Cargamos el post.
     $model_post = new Model_Post($post);
     // Verificamos exista.
     if (!is_array($model_post->as_array())) {
         $_SESSION['flash_error'] = 'El post que deseas fijar no se encuentra disponible.';
         Request::redirect('/');
     }
     // Valido el valor.
     $tipo = $tipo == 1;
     // Verifico el estado del parámetro.
     if ($model_post->sticky === $tipo) {
         if ($tipo) {
             $_SESSION['flash_error'] = 'El post que quieres fijar ya se encuentra fijo a la portada.';
         } else {
             $_SESSION['flash_error'] = 'El post no se encuentra fijo a la portada.';
         }
         Request::redirect('/post/index/' . $post);
     }
     // Actualizo el parámetro.
     $model_post->setear_sticky($tipo);
     // Envio el suceso.
     $model_suceso = new Model_Suceso();
     if (Usuario::$usuario_id != $model_post->usuario_id) {
         $model_suceso->crear($model_post->usuario_id, 'post_fijar', TRUE, $post, Usuario::$usuario_id, (int) $tipo);
         $model_suceso->crear(Usuario::$usuario_id, 'post_fijar', FALSE, $post, Usuario::$usuario_id, (int) $tipo);
     } else {
         $model_suceso->crear($model_post->usuario_id, 'post_fijar', FALSE, $post, Usuario::$usuario_id, (int) $tipo);
     }
     // Informo el resultado.
     if ($tipo) {
         $_SESSION['flash_success'] = '<b>&iexcl;Felicitaciones!</b> El post se ha fijado a la portada correctamente.';
     } else {
         $_SESSION['flash_success'] = '<b>&iexcl;Felicitaciones!</b> El post se ha quitado de los posts fijos en la portada correctamente.';
     }
     Request::redirect('/post/index/' . $post);
 }