public function searchListAction() { // Check the form validity $form = new WishListSearchForm(); if (!$form->isValid($_GET)) { Flash::addItems($form->getFailureMessages()); HTTPHelper::redirectToReferer(); } else { $searchTerm = $this->_getParam('wishedListSearchTerm', ""); Trace::addItem($searchTerm); $users = UserDao::getInstance()->getListByKeywordAndWishedUserBooks($searchTerm); // Remove connected user and admin user $cleanedUsers = $this->cleanUsersList($users); // Display specific message when connected user found in list if ($this->connectedUSerFound) { Flash::addItem(__("Si vous cherchez votre liste, c'est raté ;-) La surprise n'en sera que plus grande.", "s1b")); } if (count($cleanedUsers) == 0) { // Getting user without wish list $usersWithoutWishList = UserDao::getInstance()->getListByKeyword($searchTerm); $cleanedUsersWithoutWishList = $this->cleanUsersList($usersWithoutWishList); if (count($cleanedUsersWithoutWishList) != 0) { Flash::addItem(sprintf(__("Aucun utilisateur '%s' n'a créé de liste d'envies ou bien sa liste est privée.", "s1b"), $searchTerm)); } else { Flash::addItem(__("Aucun utilisateur ne correspond à votre recherche.", "s1b")); } HTTPHelper::redirectToReferer(); } $this->view->users = $cleanedUsers; $this->view->form = $form; } }
/** * Action called for unsubscription to press reviews */ public function unsubscribeAction() { try { $email = $this->getParam("email", null); if (!$email) { Flash::addItem(__("Requête invalide", "s1b")); } else { $email = trim($email); /* @var $pressReviewsSubscriber PressReviewsSubscriber */ $pressReviewsSubscriber = PressReviewsSubscriberDao::getInstance()->getByEmail($email); if ($pressReviewsSubscriber) { // Mark the press review subscriber as deleted $pressReviewsSubscriber->setIs_deleted(true); PressReviewsSubscriberDao::getInstance()->update($pressReviewsSubscriber); Flash::addItem(__("Votre désinscription a bien été pris en compte.", "s1b")); } else { Flash::addItem(__("Il n'y a pas d'abonné correspondant à l'email fourni.", "s1b")); } } HTTPHelper::redirectToHome(); } catch (\Exception $e) { Trace::addItem(sprintf("Une erreur s'est produite dans \"%s->%s\", TRACE : %s\"", get_class(), __FUNCTION__, $e->getTraceAsString())); $this->forward("error", "error", "default"); } }
public function disableAction() { $dest = HTTPHelper::getReferer() ? HTTPHelper::getReferer() : HTTPHelper::Link(); $id = $this->_getParam('ubgid', -1); if ($id > 0) { // Getting the userbook gift item $userbookGift = UserBookGiftDao::getInstance()->get($id); if ($userbookGift) { // Checking if the connected user is the offerer $globalContext = new \Sb\Context\Model\Context(); $connectedUser = $globalContext->getConnectedUser(); if ($userbookGift->getOfferer()->getId() == $connectedUser->getId()) { $userbookGift->setIs_active(false); $userbookGift->setLast_modification_date(new \DateTime()); if (UserBookGiftDao::getInstance()->update($userbookGift)) { Flash::addItem(__("L'option d'achat a été annulée correctement.", "s1b")); $this->_redirect($dest); exit; } } } } Flash::addItem(__("une erreur s'est produite lors de l'anulation de l'option d'achat.", "s1b")); $this->_redirect($dest); exit; }
/** * Check if a user is connected in session and otherwise set a flash message, persist request url in session and redirect to homepage */ public function checkUserIsConnected() { if (!$this->getIsConnected()) { $_SESSION[\Sb\Entity\SessionKeys::RETURN_URL_AFTER_LOGIN] = $_SERVER["REQUEST_URI"]; Flash::addItem(__("Vous devez être connecté pour accéder à cette page.", "s1b")); HTTPHelper::redirectToHome(); } }
public function prepare() { if ($this->allResults) { //Application des options de liste (tri, pagination, search, filering) $pageId = null; if ($this->listOptions) { // Sorting if ($this->listOptions->getSorting()) { \Sb\Trace\Trace::addItem("Tri de la liste de livre "); \Sb\Helpers\BooksHelper::sort($this->allResults, $this->listOptions->getSorting()); } // Paging if ($this->listOptions->getPaging()) { $pageId = $this->listOptions->getPaging()->getCurrentPageId(); } // Searching if ($this->listOptions->getSearch()) { $backedUpBooks = $this->allResults; $tmpRes = \Sb\Helpers\BooksHelper::search($this->allResults, $this->listOptions->getSearch()->getValue()); if (!$tmpRes) { \Sb\Flash\Flash::addItem(__("Aucun livre ne correspond à votre recherche.", "s1b")); $this->allResults = $backedUpBooks; } } // Filtering if ($this->listOptions->getFiltering()) { \Sb\Helpers\BooksHelper::filter($this->allResults, $this->listOptions->getFiltering()->getValue(), $this->listOptions->getFiltering()->getType()); } } $params = array('itemData' => $this->allResults, 'perPage' => $this->nbResultsPerPage, 'delta' => 8, 'append' => true, 'clearIfVoid' => false, 'urlVar' => 'pagenumber', 'useSessions' => false, 'closeSession' => false, 'mode' => 'Jumping', 'httpMethod' => 'GET'); $pager = \Sb\Lists\Pager\Pager::factory($params); $pageData = $pager->getPageData($pageId); $this->pagerLinks = $pager->getLinks($pageId); $this->nbItemsTot = $pager->numItems(); $this->shownResults = $pageData; $offSet = $pager->getOffsetByPageId($pageId); if ($offSet && count($offSet) >= 2) { $this->firstItemIdx = $offSet[0]; $this->lastItemIdx = $offSet[1]; } if ($this->shownResults) { $this->hasResults = true; } } }
public function sendByEmailAction() { $uid = $this->_getParam('uid'); $emails = $this->_getParam('emails'); $origin = $this->getRequest()->getHeader('referer'); $origin .= "&emails=" . $emails; // Checking if parameters are passed if ($uid && $emails) { // Checking if uid is a valid user $user = UserDao::getInstance()->get($uid); if ($user) { // Getting user wished books $wishedUserbooks = $user->getNotDeletedUserBooks(); $wishedUserbooks = array_filter($wishedUserbooks, array(&$this, "isWished")); // Cheking if some valid emails are passed $emailsArray = array($emails); if (strpos(",", $emails) !== 0) { $emailsArray = explode(",", $emails); } foreach ($emailsArray as $email) { if (!StringHelper::isValidEmail($email)) { Flash::addItem(__("Un des emails renseigné n'est pas valide.", "s1b")); $this->_redirect($origin); exit; } } // Building the mail content $emailContent = \Sb\Helpers\MailHelper::wishedUserBooksEmailBody($user, $wishedUserbooks); // Sending mail MailSvc::getInstance()->send($emails, sprintf(__("%s - Liste des livres souhaités par %s", "s1b"), Constants::SITENAME, $user->getFriendlyName()), $emailContent); Flash::addItem(__("La liste a bien été envoyée par email.", "s1b")); $this->_redirect($origin); exit; } } Flash::addItem(__("Une erreur s'est produite lors de l'envoi de la liste par email", "s1b")); $this->_redirect($origin); exit; }
/** * The default action - show a chronicle detail page */ public function indexAction() { try { // Get chronicle id from request $chronicleId = $this->getParam("cid"); // Get chronicle page $chroniclePage = ChroniclePageSvc::getInstance()->get($chronicleId); if ($chroniclePage) { // Check chronicle validity if (!$chroniclePage->getChronicle()->getIs_validated()) { Flash::addItem(__("La chronique que vous souhaitez consulter n'existe pas.", "s1b")); HTTPHelper::redirectToReferer(); } // Increment chronicle nb views $this->incrementChronicleNbViews($chroniclePage->getChronicle()->getId()); // Add main chronicle view model to model view $chronicleView = new ChronicleDetail($this->getRequest(), $chroniclePage->getChronicleViewModel()); $this->view->chronicle = $chronicleView->get(); // Get similar chronicles (with same tag or with similar keywords) and add it to model view $similarChronicles = $chroniclePage->getSimilarChronicles(); if ($similarChronicles && count($similarChronicles) > 0) { $otherChoniclesSameTypeView = new OtherChroniclesSameType($similarChronicles); $this->view->otherChoniclesSameType = $otherChoniclesSameTypeView->get(); } // Get same author chronicles and add it to model view if ($chroniclePage->getSameAuthorChronicles()) { $authorChroniclesView = new ChroniclesBlock($chroniclePage->getSameAuthorChronicles(), __("<strong>Chroniques</strong> du même auteur", "s1b")); // Add author chronicles to model $this->view->authorChroniclesView = $authorChroniclesView->get(); } // Get press reviews if ($chroniclePage->getPressReviews()) { $pressReviewsView = new BookPressReviews($chroniclePage->getPressReviews()); $this->view->pressReviewsView = $pressReviewsView->get(); } // Get reviews and add it to model view if ($chroniclePage->getUserBooksReviews()) { $paginatedList = new PaginatedList($chroniclePage->getUserBooksReviews(), 5); $reviewsView = new BookReviews($paginatedList, $chroniclePage->getChronicle()->getBook()->getId()); $this->view->reviews = $reviewsView->get(); } // Get video press review and add it to view model if ($chroniclePage->getVideoPressReview()) { $this->view->videoUrl = $chroniclePage->getVideoPressReview()->getLink(); } // // Add common items to model view $this->addCommonItemsToModelView(); // Set SEO information $headerInformation = HeaderInformationSvc::getInstance()->getForChroniclePage($chroniclePage); $this->view->tagTitle = $headerInformation->getTitle(); $this->view->metaDescription = $headerInformation->getDescription(); $this->view->metaKeywords = $headerInformation->getKeywords(); $this->view->urlCanonical = $headerInformation->getUrlCanonical(); $this->view->pageImage = $headerInformation->getPageImage(); } else { Flash::addItem(__("La chronique que vous souhaitez consulter n'existe pas.", "s1b")); HTTPHelper::redirectToReferer(); } } catch (\Exception $e) { Trace::addItem(sprintf("Une erreur s'est produite dans \"%s->%s\", TRACE : %s\"", get_class(), __FUNCTION__, $e->getTraceAsString())); $this->forward("error", "error", "default"); } }
public function logOffAction() { try { $globalConfig = new Sb\Config\Model\Config(); if (isset($_COOKIES) && array_key_exists("PHPSESSID", $_COOKIES)) { unset($_COOKIES["PHPSESSID"]); } // destruction du cookie de connexion PHPSESSID 3600 correspond à 60 min if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 3600, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); } $tmpLang = null; if (isset($_SESSION) && array_key_exists('WPLANG', $_SESSION)) { $tmpLang = $_SESSION['WPLANG']; } session_destroy(); $_SESSION['WPLANG'] = $tmpLang; $facebookSvc = new FacebookSvc($globalConfig->getFacebookApiId(), $globalConfig->getFacebookSecret(), HTTPHelper::Link(Urls::USER_HOME), HTTPHelper::Link(Urls::LOGIN), HTTPHelper::Link(Urls::LOGIN)); $faceBookUser = $facebookSvc->getUser(); $facebookSvc->cleanUser(); if ($faceBookUser) { HTTPHelper::redirect($facebookSvc->getFacebookLogOutUrl()); } Flash::addItem(__("Déconnexion réussie", "s1b")); // Redirecting to login page HTTPHelper::redirect(""); } catch (\Exception $e) { Trace::addItem(sprintf("Une erreur s'est produite dans \"%s->%s\", TRACE : %s\"", get_class(), __FUNCTION__, $e->getTraceAsString())); $this->forward("error", "error", "default"); } }
private function validateUserInputForm() { $ret = true; if ($_POST) { if (strlen(ArrayHelper::getSafeFromArray($_POST, "guest_name", NULL)) < 3) { Flash::addItem(__("Le nom doit comprendre au moins 3 caractères.", "s1b")); $ret = false; } if (ArrayHelper::getSafeFromArray($_POST, "send_invitation", NULL) == 1) { $guestEmail = ArrayHelper::getSafeFromArray($_POST, "guest_email", NULL); if (!$guestEmail) { Flash::addItem(__("Vous devez renseigné un email si vous souhaitez envoyer une invitation.", "s1b")); $ret = false; } else { if (!StringHelper::isValidEmail($guestEmail)) { Flash::addItem(__("L'email que vous avez renseigné n'est pas valide. Merci de réessayer.", "s1b")); $ret = false; } } } } else { $ret = false; } return $ret; }
private function redirectToHome() { Flash::addItem(__("Vos critères de recherche ne nous ont pas permis de trouver de livre.", "s1b")); HTTPHelper::redirectToHome(); }
public function profileAction() { $globalContext = new \Sb\Context\Model\Context(); // Users profile are only accessible for connected users AuthentificationSvc::getInstance()->checkUserIsConnected(); $noUser = true; $friendId = $this->_getParam("uid"); if ($friendId) { $friend = UserDao::getInstance()->get($friendId); $this->view->friend = $friend; if ($friend) { $noUser = false; if ($friend->getId() == $globalContext->getConnectedUser()->getId()) { Flash::addItem(__("Il s'agit de votre profil!", "s1b")); HTTPHelper::redirectToReferer(); } else { $requestingUser = $globalContext->getConnectedUser(); if (SecurityHelper::IsUserAccessible($friend, $requestingUser)) { $this->view->friendSetting = $friend->getSetting(); $this->view->isFriend = UserSvc::getInstance()->areUsersFriends($globalContext->getConnectedUser(), $friend); // getting currently reading or lastly read books $currentlyReading = UserBookDao::getInstance()->getReadingNow($friend->getId()); $lastlyReads = UserBookDao::getInstance()->getListLastlyRead($friend->getId()); if ($currentlyReading && $lastlyReads) { $this->view->currentlyReadingOrLastlyReadBooks = array_merge(array($currentlyReading), $lastlyReads); } elseif ($lastlyReads) { $this->view->currentlyReadingOrLastlyReadBooks = $lastlyReads; } elseif ($currentlyReading) { $this->view->currentlyReadingOrLastlyReadBooks = array($currentlyReading); } // Getting friend currently reading user books $this->view->allCurrentlyReadingUserBooks = UserBookDao::getInstance()->getCurrentlyReadingsNow($friend->getId()); if (count($this->view->allCurrentlyReadingUserBooks) > 1) { $this->view->placeholder('footer')->append("<script src=\"" . $globalContext->getBaseUrl() . 'Resources/js/simple-carousel/simple.carousel.js' . "\"></script>\n"); $this->view->placeholder('footer')->append("<script>\$(function() {initCarousel('carousel-currentreadings', 298, 190)});</script>\n"); } // Getting friend last boh books $bohUserBooks = UserBookDao::getInstance()->getListUserBOH($friend->getId()); $this->view->bohBooks = array_map(array($this, "getBook"), $bohUserBooks); // Getting books friend could like $this->view->booksHeCouldLikes = BookSvc::getInstance()->getBooksUserCouldLike($friend->getId()); if ($this->view->booksHeCouldLikes && count($this->view->booksHeCouldLikes) > 0) { $this->view->placeholder('footer')->append("<script src=\"" . $globalContext->getBaseUrl() . 'Resources/js/waterwheel-carousel/jquery.waterwheelCarousel.min.js' . "\"></script>\n"); $this->view->placeholder('footer')->append("<script>\$(function() {initCoverFlip('bookUserCouldLike', 90)});</script>\n"); } // Getting friend's friends last reviews $this->view->friendLastReviews = UserEventSvc::getInstance()->getUserLastEventsOfType($friend->getId(), EventTypes::USERBOOK_REVIEW_CHANGE); // Getting friend last friends added events $this->view->friendLastFriendsAddedEvents = UserEventSvc::getInstance()->getUserLastEventsOfType($friend->getId(), EventTypes::USER_ADD_FRIEND); if (count($this->view->friendLastFriendsAddedEvents) > 1) { $this->view->placeholder('footer')->append("<script src=\"" . $globalContext->getBaseUrl() . 'Resources/js/simple-carousel/simple.carousel.js' . "\"></script>\n"); $this->view->placeholder('footer')->append("<script>\$(function() {initCarousel('carousel-friendlastfriends', 298, 85)});</script>\n"); } // Getting friend last events $this->view->friendLastEvents = UserEventSvc::getInstance()->getUserLastEventsOfType($friend->getId(), null, 15); $this->view->placeholder('footer')->append("<script>\n\n toInit.push(\"attachUserEventsExpandCollapse()\");\n\n function attachUserEventsExpandCollapse() {_attachExpandCollapseBehavior(\"js_userLastEvents\", \"userEvent\", \"Voir moins d'activités\", \"Voir plus d'activités\");}\n\n </script>\n"); } else { Flash::addItem(__("Vous ne pouvez pas accéder à ce profil.", "s1b")); HTTPHelper::redirectToReferer(); } } } } if ($noUser) { Flash::addItem(__("Cet utilisateur n'existe pas.", "s1b")); HTTPHelper::redirectToReferer(); } }
/** * Called when submitting profile settings form */ public function submitSettingsAction() { try { $globalContext = new \Sb\Context\Model\Context(); /* @var $user \Sb\Db\Model\User */ $user = $globalContext->getConnectedUser(); $userSettings = $user->getSetting(); if (!empty($_POST)) { $settings_DisplayProfile = $_POST['settings_DisplayProfile']; $settings_DisplayEmail = $_POST['settings_DisplayEmail']; $settings_SendMessages = $_POST['settings_SendMessages']; $settings_DisplayBirthDay = $_POST['settings_DisplayBirthDay']; $settings_DisplayWishList = $_POST['settings_DisplayWishList']; $settings_AllowFollowers = $_POST['settings_AllowFollowers']; $settings_EmailMe = $_POST['settings_EmailMe']; $settings_AcceptNewsletter = $_POST['settings_AcceptNewsletter'] == 1 ? true : false; $userSettings->setDisplayProfile($settings_DisplayProfile); $userSettings->setDisplayEmail($settings_DisplayEmail); $userSettings->setSendMessages($settings_SendMessages); $userSettings->setDisplayBirthday($settings_DisplayBirthDay); $userSettings->setDisplay_wishlist($settings_DisplayWishList); $userSettings->setAllowFollowers($settings_AllowFollowers); $userSettings->setEmailMe($settings_EmailMe); $userSettings->setAccept_newsletter($settings_AcceptNewsletter); UserSettingDao::getInstance()->update($userSettings); Flash::addItem(__("Vos modifications ont bien été enregistrées", "s1b")); } // Redirect to settings action HTTPHelper::redirect(Urls::USER_PROFILE_SETTINGS); } catch (\Exception $e) { Trace::addItem(sprintf("Une erreur s'est produite dans \"%s->%s\", TRACE : %s\"", get_class(), __FUNCTION__, $e->getTraceAsString())); $this->forward("error", "error", "default"); } }
private function validateRegistrationForm() { $ret = true; if (strlen($_POST['last_name']) < 3) { Flash::addItem(__("Votre nom doit comprendre au moins 3 caractères.", "s1b")); $ret = false; } if (strlen($_POST['first_name']) < 1) { Flash::addItem(__("Merci d'indiquer votre prénom.", "s1b")); $ret = false; } if (strlen($_POST['user_name']) < 1) { Flash::addItem(__("Merci d'indiquer un identifiant.", "s1b")); $ret = false; } if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { Flash::addItem(__("Votre email n'est pas valide, merci de réessayer.", "s1b")); $ret = false; } if (strlen($_POST['password']) < 8) { Flash::addItem(__("Votre mot de passe doit faire au moins 8 caractères.", "s1b")); $ret = false; } if (!ArrayHelper::getSafeFromArray($_POST, 'cgu_validation', false)) { Flash::addItem(__("Vous devez accepter les CGU.", "s1b")); $ret = false; } return $ret; }
private function getBook($bookId) { if (!$bookId) { Flash::addItem(__("Vous devez sélectionner un livre.", "s1b")); HTTPHelper::redirectToReferer(); } $book = BookDao::getInstance()->get($bookId); if (!$book) { Flash::addItem(__("Le livre n'existe pas.", "s1b")); HTTPHelper::redirectToReferer(); } return $book; }
/** * Show pending friends request and allow to accepet or refuse it */ public function pendingRequestsAction() { try { $globalContext = new \Sb\Context\Model\Context(); $user = $globalContext->getConnectedUser(); $this->view->user = $user; // Show pending requests if (!$_POST) { $totalPendingRequests = $user->getPendingFriendShips(); if ($totalPendingRequests && count($totalPendingRequests) > 0) { // Preparing pagination $paginatedList = new PaginatedList($totalPendingRequests, 6); $this->view->firstItemIdx = $paginatedList->getFirstPage(); $this->view->lastItemIdx = $paginatedList->getLastPage(); $this->view->nbItemsTot = $paginatedList->getTotalPages(); $this->view->navigation = $paginatedList->getNavigationBar(); $this->view->pendingRequests = $paginatedList->getItems(); } } else { $friendShipId = ArrayHelper::getSafeFromArray($_POST, 'friendShipId', null); $Title = ArrayHelper::getSafeFromArray($_POST, 'Title', null); $Message = ArrayHelper::getSafeFromArray($_POST, 'Message', null); $Refused = ArrayHelper::getSafeFromArray($_POST, 'Refused', null); if ($friendShipId) { if ($Refused == 0) { // Update the requested friendship $friendShip = FriendShipDao::getInstance()->get($friendShipId); if ($friendShip) { $friendShip->setAccepted(true); $friendShip->setValidated(true); if (FriendShipDao::getInstance()->update($friendShip)) { // Add the userEvent try { $userEvent = new UserEvent(); $userEvent->setNew_value($user->getId()); $userEvent->setType_id(EventTypes::USER_ADD_FRIEND); $userEvent->setUser($friendShip->getUser_source()); UserEventDao::getInstance()->add($userEvent); } catch (\Exception $exc) { Trace::addItem("Erreur lors de l'ajout de l'événement : " . $exc->getMEssage()); } } } // Create a friendship on the other side $inverseFriendShip = new FriendShip(); $inverseFriendShip->setAccepted(true); $inverseFriendShip->setValidated(true); $inverseFriendShip->setCreationDate(new \DateTime()); $inverseFriendShip->setUser_source($user); $inverseFriendShip->setUser_target($friendShip->getUser_source()); if (FriendShipDao::getInstance()->add($inverseFriendShip)) { // Add the userEvent try { $userEvent = new UserEvent(); $userEvent->setNew_value($friendShip->getUser_source()->getId()); $userEvent->setType_id(EventTypes::USER_ADD_FRIEND); $userEvent->setUser($user); UserEventDao::getInstance()->add($userEvent); } catch (\Exception $exc) { Trace::addItem("Erreur lors de l'ajout de l'événement : " . $exc->getMEssage()); } } // Send email to the requesting user MailSvc::getInstance()->send($friendShip->getUser_source()->getEmail(), __("Demande d'ami", "s1b"), MailHelper::friendShipAcceptationEmailBody($user->getFirstName() . " " . $user->getLastName())); // add a message in requesting user internal mailbox $message = new \Sb\Db\Model\Message(); $message->setDate(new \DateTime()); $message->setMessage($Message); $message->setTitle($Title); $message->setRecipient($friendShip->getUser_source()); $message->setSender($user); MessageDao::getInstance()->add($message); // redirect to pending request page Flash::addItem("Demande acceptée."); HTTPHelper::redirect(Urls::USER_FRIENDS_PENDING_REQUEST); } elseif ($Refused == 1) { // update the requested friendship $friendShip = FriendShipDao::getInstance()->get($friendShipId); if ($friendShip) { $friendShip->setAccepted(false); $friendShip->setValidated(true); FriendShipDao::getInstance()->update($friendShip); } // send email to the requesting user MailSvc::getInstance()->send($friendShip->getUser_source()->getEmail(), __("Votre demande d'ami a été refusée", "s1b"), MailHelper::friendShipDenyEmailBody($user->getFirstName() . " " . $user->getLastName())); // add a message in requesting user internal mailbox $message = new Message(); $message->setDate(new \DateTime()); $message->setMessage($Message); $message->setTitle($Title); $message->setRecipient($friendShip->getUser_source()); $message->setSender($user); MessageDao::getInstance()->add($message); // redirect to pending request page Flash::addItem(__("Demande refusée.", "s1b")); HTTPHelper::redirect(Urls::USER_FRIENDS_PENDING_REQUEST); } } else { Flash::addItem(__("Vous devez sélectionner une demande d'ami.", "s1b")); HTTPHelper::redirect(Urls::USER_FRIENDS_PENDING_REQUEST); } } } catch (\Exception $e) { Trace::addItem(sprintf("Une erreur s'est produite dans \"%s->%s\", TRACE : %s\"", get_class(), __FUNCTION__, $e->getTraceAsString())); $this->forward("error", "error", "default"); } }
public static function showFlashes() { $flashes = null; // Récupération des messages flashes éventuels if (\Sb\Flash\Flash::hasItems()) { $flashes = \Sb\Flash\Flash::getItems(); } $ret = ""; if ($flashes) { $ret .= "<div id=\"flashes-wrap\"><div id=\"flashes-background\"></div><div id='flashes'><div id='flashes-close-button'></div><ul>"; foreach ($flashes as $flash) { $ret .= "<li>" . $flash . "</li>"; } $ret .= "</ul></div></div>"; } echo $ret; }
public function validateAction() { try { if (array_key_exists("lid", $_GET)) { $lendingId = $_GET["lid"]; $lendingDao = LendingDao::getInstance(); $lending = $lendingDao->GetById($lendingId); if ($lending) { $lending->setState(LendingState::ACTIV); $lending->setStartDate(new \DateTime()); $lending->setLastModificationDate(new \DateTime()); if ($lendingDao->Update($lending, $lendingId)) { Flash::addItem(__("Le prêt à été validé.", "s1b")); } } else { Flash::addItem(__("L'identifiant reçu ne correspond à aucun prêt.", "s1b")); } } else { Flash::addItem(__("Identifiant manquant", "s1b")); } HTTPHelper::redirectToLibrary(); } catch (\Exception $e) { Trace::addItem(sprintf("Une erreur s'est produite dans \"%s->%s\", TRACE : %s\"", get_class(), __FUNCTION__, $e->getTraceAsString())); $this->forward("error", "error", "default"); } }
private function checkUserCanEditChronicle(Chronicle $chronicle) { $globalContext = new \Sb\Context\Model\Context(); $chronicleGroupId = $chronicle->getGroup()->getId(); $found = false; foreach ($globalContext->getConnectedUser()->getGroupusers() as $groupUser) { /* @var $groupUser GroupUser */ if ($groupUser->getGroup()->getId() == $chronicleGroupId) { $found = true; break; } } if (!$found) { Flash::addItem(__("Vous ne pouvez pas éditer cette chronique.", "s1b")); HTTPHelper::redirectToReferer(); } }
public function replyAction() { return; try { $globalContext = new \Sb\Context\Model\Context(); $messageId = ArrayHelper::getSafeFromArray($_GET, 'mid', null); $redirect = false; if ($messageId) { $message = MessageDao::getInstance()->get($messageId); $this->view->message = $message; if ($message->getRecipient()->getId() != $globalContext->getConnectedUser()->getId()) { Flash::addItem(__("Vous ne pouvez pas répondre à ce message car il ne vous est pas destiné.", "s1b")); $redirect = true; } } else { Flash::addItem(__("Le message auquel vous tentez de répondre n'existe pas.", "s1b")); $redirect = true; } if ($_POST) { $title = htmlspecialchars($_POST['Title']); $messageContent = htmlspecialchars($_POST['Message']); /* test if form is not empty */ if (!empty($title) && !empty($messageContent)) { // create new message in db $reply = new Message(); $reply->setRecipient($message->getSender()); $replySender = $globalContext->getConnectedUser(); $reply->setSender($replySender); $reply->setDate(new \DateTime()); $reply->setTitle($title); $reply->setMessage($messageContent); $reply->setIs_read(false); MessageDao::getInstance()->add($reply); if ($message->getSender()->getSetting()->getEmailMe() == 'Yes') { // send a email to warn the origianl sender of the email $body = MailHelper::newMessageArrivedBody($replySender->getUserName()); MailSvc::getInstance()->send($message->getSender()->getEmail(), sprintf(__("Un message vous a été envoyé depuis le site %s", "s1b"), Constants::SITENAME), $body); } Flash::addItem(__("Message envoyé.", "s1b")); $redirect = true; } else { Flash::addItem(__("Vous devez renseigné le titre et le contenu du message.", "s1b")); } } if ($redirect) { HTTPHelper::redirect(Urls::USER_MAILBOX); } } catch (\Exception $e) { Trace::addItem(sprintf("Une erreur s'est produite dans \"%s->%s\", TRACE : %s\"", get_class(), __FUNCTION__, $e->getTraceAsString())); $this->forward("error", "error", "default"); } }
public function friendLibraryAction() { try { // Set friend library data $this->setFriendLibaryData(); $key = $this->getListKey(); // Get the list key (allBooks, wishedBooks, etc...) $fullKey = $this->formateListKey($key); // Reset the list options (sorting, searching, paging, filtering) if requested if (ArrayHelper::getSafeFromArray($_GET, "reset", false)) { $this->resetListOption($fullKey); } $filteringOrSearching = array_key_exists("searchvalue", $_GET) || array_key_exists("filter", $_GET) && array_key_exists("filtertype", $_GET); // Get the books $books = UserBookSvc::getInstance()->getUserBooks($key, $this->getContext()->getLibraryUserId(), $filteringOrSearching); // Set list meta data if getting list first time if (!$filteringOrSearching) { $this->setListMetaData($books, $fullKey); } // Set filtering and searching options if ($filteringOrSearching) { $this->setFilteringAndSearching($fullKey); } $booksTableView = $this->createBookTableView($key, $books, false); $this->view->list = new BookListView($key, $booksTableView, $key); $this->view->header = new LibraryHeader($this->getContext()->getLibraryUserId(), $key); $this->view->friendLibrary = $this->getContext()->getIsShowingFriendLibrary(); } catch (\Exception $e) { Flash::addItem($e->getMessage()); HTTPHelper::redirectToReferer(); } }