/** * Agregamos la foto como favorita. * @param int $foto ID de la foto. */ public function action_favorito($foto) { // Convertimos el post a ID. $foto = (int) $foto; // Verifico que esté logueado. if (!Usuario::is_login()) { $_SESSION['flash_error'] = 'Debes iniciar sessión para poder agregar la foto a tus favoritos.'; Request::redirect('/usuario/login'); } // Cargamos el post. $model_foto = new Model_Foto($foto); // Verificamos exista. if (!is_array($model_foto->as_array())) { $_SESSION['flash_error'] = 'La foto que quiere poner como favorito no se encuentra disponible.'; Request::redirect('/foto/'); } // Verifico el estado de la foto. if ($model_foto->estado != Model_Foto::ESTADO_ACTIVA) { $_SESSION['flash_error'] = 'La foto que quiere poner como favorito no se encuentra disponible.'; Request::redirect('/foto/ver/' . $foto); } // Verifica autor. if ($model_foto->usuario_id === Usuario::$usuario_id) { $_SESSION['flash_error'] = 'La foto que quiere poner como favorito no se encuentra disponible.'; Request::redirect('/foto/ver/' . $foto); } // Verificamos que no sea favorito. if ($model_foto->es_favorito(Usuario::$usuario_id)) { $_SESSION['flash_error'] = 'La foto ya está en tus favoritos.'; Request::redirect('/foto/ver/' . $foto); } // Agrego a favoritos. $model_foto->agregar_favorito(Usuario::$usuario_id); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_foto->usuario_id) { $model_suceso->crear($model_foto->usuario_id, 'foto_favorito', TRUE, $foto, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, FALSE, 'foto_favorito', $foto, Usuario::$usuario_id); } else { $model_suceso->crear($model_foto->usuario_id, 'foto_favorito', FALSE, $foto, Usuario::$usuario_id); } // Informo el resultado. $_SESSION['flash_success'] = 'Foto agregada a favoritos correctamente.'; Request::redirect('/foto/ver/' . $foto); }