public function getId() { if ($this->__isInitialized__ === false) { return (int) $this->_identifier["id"]; } $this->__load(); return parent::getId(); }
private function addUserBook(\Sb\Db\Model\Book $book, \Sb\Db\Model\User $user, \Sb\Config\Model\Config $config) { $userBookDao = UserBookDao::getInstance(); $userBook = $userBookDao->getByBookIdAndUserId($user->getId(), $book->getId()); // Testing if the user : // - doesn't already have that book or // - have it but is deleted : in this case we will undelete the book if ($userBook && !$userBook->getIs_deleted()) { $returnMsg = __("Vous avez déjà ce livre dans votre bibliothèque.", "s1b"); } else { // Getting current user current nb userbooks in libary $userNbUserBooks = count($user->getNotDeletedUserBooks()); if ($userNbUserBooks >= $config->getMaximumNbUserBooksForPublic()) { $returnMsg = sprintf(__("Vous ne pouvez pas avoir plus de %s livres dans votre bibliothèque.", "s1b"), $config->getMaximumNbUserBooksForPublic()); } else { // Ajout du UserBook $existingUserBook = false; $userBook = UserBookDao::getInstance()->getByBookIdAndUserId($user->getId(), $book->getId()); // testing if the user already had the book but deleted it : // if yes, then the userbook is undeleted if ($userBook && $userBook->getIs_deleted()) { $userBook->setIs_deleted(false); $existingUserBook = true; } else { // Création du UserBoook $userBook = new \Sb\Db\Model\UserBook(); $userBook->setCreationDate(new \DateTime()); } // Updating userbook data $userBook->setLastModificationDate(new \DateTime()); $userBook->setUser($user); $userBook->setBook($book); $bookLink = \Sb\Helpers\HTTPHelper::Link($book->getLink()); // Persisting userbook in DB $addOk = false; if ($existingUserBook) { if (UserBookDao::getInstance()->update($userBook)) { $editUserBookLink = \Sb\Helpers\HTTPHelper::Link(\Sb\Entity\Urls::USER_BOOK_EDIT, array("ubid" => $userBook->getId())); $returnMsg = sprintf(__("Vous aviez déjà le livre \"%s\" dans votre bibliothèque mais l'aviez supprimé. Il a été rajouté.<br/><a class=\"link\" href=\"%s\">Remplir votre fiche de lecture</a> ou <a class=\"link\" href=\"%s\">Voir ce livre</a>", "s1b"), $book->getTitle(), $editUserBookLink, $bookLink); $addOk = true; } } else { if (UserBookDao::getInstance()->add($userBook)) { $editUserBookLink = \Sb\Helpers\HTTPHelper::Link(\Sb\Entity\Urls::USER_BOOK_EDIT, array("ubid" => $userBook->getId())); $returnMsg = sprintf(__("Le livre \"%s\" a été ajouté à votre bibliothèque.<br/><a class=\"link\" href=\"%s\">Remplir votre fiche de lecture</a> ou <a class=\"link\" href=\"%s\">Voir ce livre</a>", "s1b"), $book->getTitle(), $editUserBookLink, $bookLink); $addOk = true; } } if ($addOk) { try { $userEvent = new \Sb\Db\Model\UserEvent(); $userEvent->setItem_id($userBook->getId()); $userEvent->setType_id(\Sb\Entity\EventTypes::USERBOOK_ADD); $userEvent->setUser($user); \Sb\Db\Dao\UserEventDao::getInstance()->add($userEvent); } catch (\Exception $exc) { Trace::addItem("Une erreur s'est produite lors de l'ajout de l'événement suite à l'ajout d'un livre " . $exc->getMessage()); } } } } return $returnMsg; }
/** * Get the book id, called in array_map * @param \Sb\Db\Model\Book $book * @return type */ private function getId(Book $book) { return $book->getId(); }
/** * Get e book with contributors * @param \Sb\Db\Model\Book $book * @return \Sb\Db\Model\Book */ private function getFullBook(\Sb\Db\Model\Book $book) { $contributors = \Sb\Db\Dao\ContributorDao::getInstance()->getListForBook($book->getId()); $book->setContributors($contributors); return $book; }