public static function accueil($request, $context) { try { // On cherche les tweets dans la base, on marque ceux déjà votés // et on les ajoute à la session $tweets = tweetTable::getLastTweets(100, 30); mainController::marquerTweetsVotes($tweets); context::setSessionAttribute("derniersTweets", $tweets); // Pour implémenter la petite bulle en bas, qui affiche les messages sans voir // on s'est basé sur l'accès de l'utilisateur à la page d'accueil. // Chaque fois qu'il accède, on actualise une variable en session qui stocke // la dernière date et heure d'accès. // // Puis, toutes les N secondes (on a mis 5 pour ne pas devoir attendre beaucoup) // on exécute une fonction javascript qui va chercher, à travers AJAX, la quantité des // tweets qui ont été publiés depuis cette dernière date d'accès jusqu'à maintenant. // // Lors de l'affichage de l'accueil, on va aussi identifier les messages qui n'ont // pas été lus. Pour faire ¢a, avant d'actualiser la date dans la session, on va // la copier dans une autre variable de session. La view devra donc afficher // différemment les tweets aui ont été créés entre ces deux dates. $dernierAcces = key_exists("dateAccesAccueil", $_SESSION) ? context::getSessionAttribute("dateAccesAccueil") : date("Y-m-d H:i:s"); context::setSessionAttribute("preDateAccesAccueil", $dernierAcces); // "pre" de précédente context::setSessionAttribute("dateAccesAccueil", date("Y-m-d H:i:s")); return context::SUCCESS; } catch (Exception $e) { context::setSessionAttribute("erreur", $e); return context::ERROR; } }