<h1>Actualité</h1> <div id="div-liste-tweets"> <?php // On obtient la liste des tweets qui devrait être dans la session. // Pour chaque tweet, on inclut le template et on ajoute l'info nécessaire dans la session $tweets = context::getSessionAttribute("derniersTweets"); if (is_null($tweets) || empty($tweets)) { echo "Il n'y a aucun tweet récent à montrer..."; } else { foreach ($tweets as $tweet) { context::setSessionAttribute("userTweetTemplate", $tweet->getEmetteur()); context::setSessionAttribute("tweetTemplate", $tweet); // Cette variable permet d'afficher les nouveaux tweets différemment context::setSessionAttribute("marquerNonLu", true); include $nameApp . "/layout/tweet_template.php"; } } ?> </div>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Twitty Avignonnais</title> <link type="text/css" rel="stylesheet" href="css/style.php" /> <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script> </head> <body> <div id="div-tete"> <div id="div-tete-contenu"> <?php // On controle qu'il existe un utilisateur connecté. // S'il y en a, l'object sera stocké dans $moi. if (key_exists("utilisateur", $_SESSION) && !is_null($moi = context::getSessionAttribute("utilisateur"))) { ?> <div id="div-petit-profil"> <?php include $nameApp . "/layout/petitProfil.php"; ?> </div> <div id="div-menu"> <ul id="menu"> <li><a href="twitty.php?action=accueil">Accueil</a></li> <li><a href="twitty.php?action=mesTweets">Mes tweets</a></li> <li><a href="twitty.php?action=reseau">Mon réseau</a></li> <li><a href="twitty.php?action=params">Paramètres</a></li> <li class="item-image"><a href="twitty.php?action=quitter"><img src="img/shutdown.png" /></a></li> </ul>
<?php $moi = context::getSessionAttribute("utilisateur"); ?> <div id="div-petit-profil-image"> <img class="img-avatar" src="<?php echo $moi->avatar . '?t=' . time(); ?> " onerror="this.src='img/default.png'" /> </div> <div id="div-petit-profil-donnees"> <span class="nom"><?php echo $moi->prenom . " " . $moi->nom; ?> </span> <br /> <span class="statut"><?php echo $moi->statut; ?> </span> </div>
if (is_null($tweetTemplate)) { $tweetTemplate = new Tweet(); $parentTemplate = null; $postTemplate = new Post(); } else { $parentTemplate = $tweetTemplate->getParent(); $postTemplate = $tweetTemplate->getPost(); } // On nettoye la session context::setSessionAttribute("userTweetTemplate", null); context::setSessionAttribute("tweetTemplate", null); context::setSessionAttribute("marquerNonLu", null); // Normalement, dans l'accueil on va identifier les messages qui n'ont pas été lus. $classeNonLu = ""; if ($marquerNonLu) { $diffDates = strtotime($postTemplate->date) - strtotime(context::getSessionAttribute("preDateAccesAccueil")); $classeNonLu = $diffDates > 0 ? "tweet-non-lu" : ""; } if ($userTemplate->avatar == "") { $userTemplate->avatar = "none"; } ?> <div id="div-tweet-<?php echo $tweetTemplate->id; ?> " class="tweet <?php echo $classeNonLu; ?> ">
<?php // On affiche le nombre de nouveaux tweets. $info = null; if (key_exists("info", $_SESSION)) { $info = context::getSessionAttribute("info"); context::setSessionAttribute("info", null); } if (!is_null($info) && $info > 0) { ?> <div id='div-bulle-infos'> <?php echo $info; echo $info == 1 ? ' nouveau <br/> tweet !' : ' nouveaux <br/> tweets !'; ?> </div> <?php }
public static function params($request, $context) { try { $u = context::getSessionAttribute("utilisateur"); // Enregistrer le profil public if (key_exists("enregistrerProfil", $request)) { $u->statut = htmlspecialchars($request["statut"], $flags = ENT_QUOTES | ENT_HTML401); $u->prenom = $request["prenom"]; $u->nom = $request["nom"]; if (key_exists("avatar", $_FILES) && $_FILES["avatar"]["size"] > 0) { $path = mainController::uploadImage("avatar", mainController::REPERTOIRE_AVATAR, $u->id); if (empty($path)) { // Si on n'arrive pas à stocker l'image, on ne s'arrête pas. context::setSessionAttribute("erreur", new Exception("Il y a eu une erreur pour télécharger l'avatar.")); } else { $u->avatar = $path; } } if (is_null($u->save())) { throw new Exception("Il y a eu une erreur pour enregistrer le profil public."); } else { context::setSessionAttribute("succes", "Le profil à bien été modifié."); return context::SUCCESS; } } else { if (key_exists("enregistrerSecurite", $request)) { // On contrôle le mot de passe actuel $returnLogin = utilisateurTable::getUserByLoginAndPass($u->identifiant, $request['passwordActuel']); if (is_null($returnLogin)) { throw new Exception("Le mot de passe actuel n'est pas correct!"); } // On contrôle que les nouveaux mot de passe soient égales et pas vides if (empty($request["passwordNouveau"])) { throw new Exception("Le nouveau mot de passe est vide."); } if ($request["passwordNouveau"] != $request["passwordRepete"]) { throw new Exception("Les nouveaux mots de passe ne sont pas égales."); } // Enfin, on stocke le nouveau mot de passe dans la base $u->pass = sha1($request["passwordNouveau"]); if (is_null($u->save())) { throw new Exception("Il y a eu une erreur pour enregistrer les paramètres de sécurité"); } else { context::setSessionAttribute("succes", "Le nouveau mot de passe à bien été modifié."); return context::SUCCESS; } } else { return context::SUCCESS; } } } catch (Exception $e) { context::setSessionAttribute("erreur", $e); return context::ERROR; } }
<td> <span class="nom"><?php echo $u->prenom . " " . $u->nom; ?> </span> <br /> <span class="statut"><?php echo $u->statut; ?> </span> </td> </tr> </table> </div> <h1>Tweets</h1> <?php // On obtient la liste des tweets qui devrait être dans la session. // Pour chaque tweet, on inclut le template et on ajoute l'info nécessaire dans la session $tweets = context::getSessionAttribute("tweetsProfil"); if (empty($tweets)) { echo "Cet utilisateur n'as jamais créé un tweet. Dis-lui de le faire maintenant! :D"; } else { foreach ($tweets as $tweet) { context::setSessionAttribute("userTweetTemplate", $u); context::setSessionAttribute("tweetTemplate", $tweet); context::setSessionAttribute("marquerNonLu", false); include $nameApp . "/layout/tweet_template.php"; } }
<h1>Mon réseau</h1> <table class="table-horiz table-vert"> <tr> <th></th> <th>Prénom</th> <th>Nom</th> </tr> <?php // On obtient la liste d'utilisateurs du réseau, qui devrait être dans la session. // Pour chaque objet, on affiche des données basiques $mesAmis = context::getSessionAttribute("mesAmis"); if (empty($mesAmis)) { echo "Tu n'as aucun ami."; } else { foreach ($mesAmis as $u) { if ($u->avatar == "") { $u->avatar = "none"; } ?> <tr class="tr-link" onClick="document.location.href='twitty.php?action=voirProfil&id=<?php echo $u->id; ?> '"> <td><img class="img-avatar" src="<?php echo $u->avatar; ?> " onerror="this.src='img/default.png'" /></td> <td><?php echo $u->prenom;
<?php $tweetTemplate = context::getSessionAttribute("tweetTemplate"); echo $tweetTemplate->getLikes() . " votes";
<?php // On affiche les erreurs et les messages de succès. /* *** Petit morceau de code pour afficher les erreurs *** */ if (key_exists("erreur", $_SESSION) && !is_null($erreurMsg = context::getSessionAttribute("erreur"))) { echo "<div class='div-erreur'>" . $erreurMsg->getMessage() . "</div>"; context::setSessionAttribute("erreur", null); } /* *** Petit morceau de code pour afficher les messages de succès *** */ if (key_exists("succes", $_SESSION) && !is_null($succesMsg = context::getSessionAttribute("succes"))) { echo "<div class='div-succes'>" . $succesMsg . "</div>"; context::setSessionAttribute("succes", null); }
<?php if (key_exists("reponse", $_SESSION)) { $rep = context::getSessionAttribute("reponse"); if (!is_null($rep) && is_array($rep)) { foreach ($rep as $data) { echo "<h1> " . $data . " </h1>"; } } else { echo "<h1> " . $rep . " </h1>"; } } ?> <h1>Test utilisateur</h1> <form method="POST" action="twitty.php?action=test&nomTest=testUtilisateur" enctype="multipart/form-data"> <table class="table-horiz"> <tr> <th>Identifiant : </th> <td><input type="text" name="identifiant" value="Bob"/></td> </tr> <tr> <th>Password : </th> <td><input type="text" name="pass" value="1"/></td> </tr> <tr> <th>Nom : </th> <td><input type="text" name="nom" value="Le bricoleur"/></td> </tr> <tr> <th>Prénom : </th>
<?php //nom de l'application $nameApp = "twitty"; //action par défaut $action = "login"; if (key_exists("action", $_REQUEST)) { $action = $_REQUEST['action']; } require_once 'lib/core.php'; require_once $nameApp . '/controller/mainController.php'; session_start(); $context = context::getInstance(); $context->init($nameApp); $view = $context->executeAction($action, $_REQUEST); // Inclusion de la vue if ($view == context::SUCCESS) { $template_view = $nameApp . "/view/" . $action . $view . ".php"; include $template_view; } elseif ($view == context::ERROR) { echo context::ERROR . ":" . context::getSessionAttribute("erreur"); die; } else { echo context::ERROR . ":Une grave erreur s'est produite, il est probable que l'action " . $action . " n'existe pas..."; die; } ?>
<input type="text" id="input-file-text-1" class="input-file-text" disabled placeholder="Une belle image..." /> <input type="file" id="input-file-1" class="input-file" name="imageTweet" accept=".png,.jpg,.bmp" /> </label> </td> <td class="td-droite"><input type="button" value="Envoyer" onclick="ajaxNouveauTweet()" /></td> </tr> </table> </form> <div> <br /> <h1>Mes tweets</h1> <div id="div-liste-tweets"> <?php // On obtient la liste des tweets qui devrait être dans la session. // Pour chaque tweet, on inclut le template et on ajoute l'info nécessaire dans la session $tweets = context::getSessionAttribute("mesTweets"); if (empty($tweets)) { echo "Tu n'as pas encore créé aucun tweet. Fais-le maintenant! :D"; } else { foreach ($tweets as $tweet) { context::setSessionAttribute("userTweetTemplate", $moi); // $moi a été défini dans le layout context::setSessionAttribute("tweetTemplate", $tweet); context::setSessionAttribute("marquerNonLu", false); include $nameApp . "/layout/tweet_template.php"; } } ?> </div>