<?php require_once 'autoload.inc.php'; session_start(); if (isset($_GET["id"])) { $idMembre = htmlspecialchars($_GET["id"]); } else { $idMembre = 1; } $g = new Gestionnaire(); $m = Membre::createFromID($idMembre); // Moyenne des notes $mo = Film::formateNote($m->moyenneMembre()); $contenu = <<<HTML <h1>{$m->toHTML()}</h1> <p>Moyenne des notes données : {$mo}<br> Nombre de notes données : {$m->nbNotes()}<br> Nombre de comms postés : {$m->nbComms()}</p> <div class="container"> HTML; // Genres préférés (top 10) $nbMini = Gestionnaire::nbMiniMoyenneGenre; $contenu .= <<<HTML <div> <p class="titre">Genres préférés (mini {$nbMini} notes)</p> <ul> HTML; $tableauGenres = $g->listeStatsGenres($m); uasort($tableauGenres, function ($a, $b) {
/** * Ajoute un commentaire sur ce film * @param int $membre : l'ID du membre qui ajoute ce Commentaire * @param String $contenu : le contenu du Commentaire * @param boolean $spoiler : ce commentaire est-il un spoiler * @return void */ public function ajoutCommentaire($membre, $contenu, $spoiler = false) { $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL INSERT INTO commentaire (id_film, id_membre, commentaire, spoiler, date_publication) VALUES (:idfilm, :idmembre, :commentaire, :spoiler, now()) SQL ); $stmt->execute(array("idfilm" => $this->id, "idmembre" => $membre, "commentaire" => $contenu, "spoiler" => $spoiler)); $idComm = $pdo->lastInsertId(); $membre_obj = Membre::createFromID($membre); $membre_obj->lireCommentaire($idComm); }
/** * Constructeur du gestionnaire. * Affecte tous les films de la BD dans le tableau listeFilms * Affecte tous les membres de la BD dans le tableau listeMembres * @param array $tabFiltre : un tableau contenant tous les filtres à appliquer sur le gestionnaire */ public function __construct($tabFiltre = null) { $pdo = myPDO::getInstance(); // Membres $stmt = $pdo->prepare(<<<SQL SELECT id FROM membre ORDER BY id SQL ); $stmt->execute(); while ($lignes = $stmt->fetch()) { $this->listeMembres[] = Membre::createFromID($lignes["id"]); } // Filtres if ($tabFiltre != null) { $this->creeFiltres($tabFiltre); } else { $this->listeFiltres = null; } // Films $stmt = $pdo->prepare(<<<SQL SELECT id FROM film ORDER BY titre SQL ); $stmt->execute(); while ($object = $stmt->fetch()) { $film = Film::createFromID($object["id"], $this); if ($this->listeFiltres != null) { // on a des filtre $respecteFiltre = true; // On les teste tous, un par un. Si un filtre n'est pas respecté, la variable respecteFiltre passe à false et on arrete la boucle for ($i = 0; $i < count($this->listeFiltres) && $respecteFiltre; $i++) { $respecteFiltre = $this->listeFiltres[$i]->accept($film, $this); } if ($respecteFiltre) { // tous les filtres sont respectées $this->listeFilms[] = $film; } } else { // pas de filtre : on accepte tous les films $this->listeFilms[] = $film; } } // Tri des films par moyenne $gest = $this; uasort($this->listeFilms, function ($f1, $f2) use($gest) { $notesMin = $gest->nbNotesMini(); if ($f1->getNbNotes() < $notesMin && $f2->getNbNotes() < $notesMin) { // les deux n'ont pas assez de notes, on compare les moyennes $m1 = $f1->getAverage($gest); $m2 = $f2->getAverage($gest); if ($m2 > $m1) { return 1; } else { if ($m1 > $m2) { return -1; } else { // Egalité des moyennes, comparaison des titres return $f1->getTitre() > $f2->getTitre(); } } } else { if ($f1->getNbNotes() < $notesMin) { return 1; } else { if ($f2->getNbNotes() < $notesMin) { return -1; } else { // les deux ont assez de notes, on compare les moyennes $m1 = $f1->getAverage($gest); $m2 = $f2->getAverage($gest); if ($m2 > $m1) { return 1; } else { if ($m1 > $m2) { return -1; } else { // Egalité des moyennes, comparaison des titres return $f1->getTitre() > $f2->getTitre(); } } } } } }); }
<p>(l'inscription est un poil longue, pas de panique!)</p> </form> </body> </html> HTML; } else { require_once "myPDO.include.php"; require_once "autoload.inc.php"; $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL INSERT INTO membre(nom, mdpSHA1) VALUES(:nom, :pass) SQL ); $stmt->execute(array("nom" => $_POST["nom"], "pass" => sha1($_POST["pass"]))); $membre = Membre::createFromID($pdo->lastInsertId()); $membre->lireTousCommentaires(); $html = <<<HTML <!doctype html> <html> <head> <meta charset="utf-8"> <title>Inscription</title> </head> <body> Inscription finie poto! <a href="index.php">Retour</a> </body> </html> HTML; } echo $html;