/** * 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>¡Felicitaciones!</b> El post se ha fijado a la portada correctamente.'; } else { $_SESSION['flash_success'] = '<b>¡Felicitaciones!</b> El post se ha quitado de los posts fijos en la portada correctamente.'; } Request::redirect('/post/index/' . $post); }