Пример #1
0
<?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) {
Пример #2
0
    /**
     * 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);
    }
Пример #3
0
    /**
     * 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();
                            }
                        }
                    }
                }
            }
        });
    }
Пример #4
0
      <p>(l&apos;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;