/** * Setamos o quitamos el atributo sponsored de un post. * @param int $post ID del post a modificar el atributo. * @param bool $tipo Si se agrega o quita. */ public function action_patrocinar_post($post, $tipo) { // Verificamos usuario logueado. if (!Usuario::is_login()) { $_SESSION['flash_error'] = 'Debes iniciar sessión para poder patrocinar posts.'; Request::redirect('/usuario/login'); } // Verifico el permiso. if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_FIJAR_PROMOVER)) { $_SESSION['flash_error'] = 'No tienes los permisos necesarios para patrocinar posts.'; 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 patrocinar no se encuentra disponible.'; Request::redirect('/'); } // Valido el valor. $tipo = $tipo == 1; // Verifico el estado actual. if ($model_post->sponsored === $tipo) { $_SESSION['flash_error'] = 'El post que quieres patrocinar ya se encuentra patrocinado.'; Request::redirect('/post/index/' . $post); } // Actualizo el parámetro. $model_post->setear_sponsored($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_patrocinar', TRUE, $post, Usuario::$usuario_id, $tipo); $model_suceso->crear(Usuario::$usuario_id, 'post_patrocinar', FALSE, $post, Usuario::$usuario_id, $tipo); } else { $model_suceso->crear($model_post->usuario_id, 'post_patrocinar', FALSE, $post, Usuario::$usuario_id, $tipo); } // Informo el resultado. $_SESSION['flash_success'] = '<b>¡Felicitaciones!</b> Acción realizada correctamente.'; Request::redirect('/post/index/' . $post); }