* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. * * */ ini_set('display_errors', '1'); ini_set('error_reporting', E_ALL); setlocale(LC_CTYPE, 'fr_FR'); /** * Cette classe gère les projets du site web de la HHH. * * Elle contient également des fonctions permettant de * lister les projets en cours et ceux terminés en plus * de celles d'ajout, suppression et modification. ___ ___ ___ __| | | |__ ___ / / / /| | | |\ \ \ \ / / / / | |___| | \ \ \ \ / /__/ / | | \ \__\ \ / __ / | ___ | \ __ \ / / / / | | | | \ \ \ \ _________/__/ /__/_____|___| |___|_____\__\ \__\__________ |############################################################| | HARDCORE HENTAI HEADQUARTER | |############################################################| |###########_____SITE V3 - POLE DEVELOPPEMENT_____###########| * @author Yumemi * @version 1.0 * * @var PDO $connect contient la connexion à la bdd * */ require 'toolz.php'; class ProjetManager { protected $connect; /** * Constructeur de la classe * */ public function ProjetManager() { $this->setConnexion(); } /** * Initialise la connexion à la bdd **/ public function setConnexion() { include dirname(__FILE__).'/../include/connexionBdd.php'; $this->connect = $bdd; } /** * Renvoie la note du projet demandé * * @param int $idn id du projet **/ public function afficherNote($idn) { $aff = $this->connect->prepare('SELECT * FROM notation WHERE id_projet = :idn'); $aff->bindValue(':idn', $idn, PDO::PARAM_INT); $aff->execute(); $arraynote= array(); $note = 0; while($liste = $aff->fetch(PDO::FETCH_ASSOC)) { $note = $liste['vote']; $nbnote = $liste['nombre_vote']; array_push($arraynote, $note); array_push($arraynote, $nbnote); } $aff->closeCursor(); return $arraynote; } /** * Met à jour la note d'un projet * * @param int $idp id du projet * @param int $vote nombre de point à rajouter au projet **/ public function noterProjet($idp, $vote) { $idproj = intval($idp); $note = $this->afficherNote($idproj); $note = intval($note[0]) + intval($vote); //On cherche le nombre de vote dans la bdd $nombre = $this->connect->prepare('SELECT nombre_vote FROM notation WHERE id_projet = :id'); $nombre->bindValue(':id', $idproj, PDO::PARAM_INT); $nombre->execute(); while($plusun = $nombre->fetch(PDO::FETCH_ASSOC)) { //On ajoute un vote $nbVo = intval($plusun['nombre_vote']) + 1; $aff = $this->connect->prepare('UPDATE notation SET vote = :note, nombre_vote = :nbVote WHERE id_projet = :idp'); $aff->bindValue(':idp', $idproj, PDO::PARAM_INT); $aff->bindValue(':note', $note, PDO::PARAM_INT); $aff->bindValue(':nbVote', $nbVo, PDO::PARAM_INT); $aff->execute(); $aff->closeCursor(); } $nombre->closeCursor(); } /** * Permet de créer un nouveau projet. * * @param string $cat statut du projet (en cours, complet,...) * @param string $titre titre du projet * @param string $titrej titre japonais * @param string $titrer titre japonais en romanji * @param string $couv lien vers la couverture du projet * @param string $ext lien vers l'extrait * @param string $aut auteur * @param string $vol nombre de volume * @param string $gen1 genre 1 * @param string $gen2 genre 2 * @param string $gen3 genre 3 * @param string $edj éditeur japonais * @param string $tradus traducteur us * @param string $nbchap nombre de chapitre * @param string $res résumé du projet * @param string $stat indique si le projet est licencié en France (oui, non) * */ public function addProjet($cat, $titre, $titrej, $titrer, $couv, $ext, $aut, $vol, $gen1, $gen2, $gen3, $edj, $tradus, $nbchap, $res, $stat) {//vérifier si on enlève les paramètres annee et licence $newproj = $this->connect->prepare('INSERT INTO projets SET licencie = :licencie, titre = :titre, titre_jap = :titrej, titre_romanji = :titrer, couverture = :couv, extrait = :extrait, auteur = :auteur, volume = :volume, genre1 = :gen1, genre2 = :gen2, genre3 = :gen3, editeur_jap = :edjap, traduction_us = :tradus, nombre_chapitre = :nbchap, resume = :resume, statut = :statut'); $newproj->bindValue(':licencie', $stat); $newproj->bindValue(':titre', $titre); $newproj->bindValue(':titrej', $titrej); $newproj->bindValue(':titrer', $titrer); $newproj->bindValue(':couv', $couv); $newproj->bindValue(':extrait', $ext); $newproj->bindValue(':auteur', $aut); $newproj->bindValue(':volume', $vol); //$newproj->bindValue(':annee', $ann); $newproj->bindValue(':gen1', $gen1); $newproj->bindValue(':gen2', $gen2); $newproj->bindValue(':gen3', $gen3); $newproj->bindValue(':edjap', $edj); $newproj->bindValue(':tradus', $tradus); //$newproj->bindValue(':tradfr', $tradfr); $newproj->bindValue(':nbchap', $nbchap); $newproj->bindValue(':resume', $res); $newproj->bindValue(':statut', $cat); //$newproj->bindValue(':licence', $lic); $newproj->execute(); $newproj->closeCursor(); //On ajoute une ligne dans la table notation pour que les utilisateurs puissent voter pour le projet $proj = $this->connect->query('SELECT * FROM projets ORDER BY id DESC LIMIT 0, 1'); $infoPro = $proj->fetch(); // on vote pour 1 afin d'éviter la division par zéro des stats $newNote = $this->connect->prepare('INSERT INTO notation SET id_projet = :idPro, vote = 1, nombre_vote = 1'); $newNote->bindValue(':idPro', $infoPro['id'], PDO::PARAM_INT); $newNote->execute(); $newNote->closeCursor(); $proj->closeCursor(); } /** * Supprime un projet. * */ public function delProjet($idSuppr) { $del = $this->_db->connect('DELETE FROM projets WHERE id = '. $idSuppr); $del->closeCursor(); } /** * Modifie un projet. Par exemple pour lui rajouter un chapitre. * * @param string $cat statut du projet (en cours, complet,...) * @param string $titre titre du projet * @param string $titrej titre japonais * @param string $titrer titre japonais en romanji * @param string $couv lien vers la couverture du projet * @param string $ext lien vers l'extrait * @param string $aut auteur * @param string $vol nombre de volume * @param string $gen1 genre 1 * @param string $gen2 genre 2 * @param string $gen3 genre 3 * @param string $edj éditeur japonais * @param string $tradus traducteur us * @param string $nbchap nombre de chapitre * @param string $res résumé du projet * @param string $stat indique si le projet est licencié en France (oui, non) * @param string $idPro identifiant du projet dans la bdd **/ public function modProjet($cat, $titre, $titrej, $titrer, $couv, $ext, $aut, $vol, $gen1, $gen2, $gen3, $edj, $tradus, $nbchap, $res, $stat, $idPro) { $idPro = intval($idPro); $modproj = $this->connect->prepare('UPDATE projets SET licencie = :licencie, titre = :titre, titre_jap = :titrej, titre_romanji = :titrer, couverture = :couv, extrait = :extrait, auteur = :auteur, volume = :volume, genre1 = :gen1, genre2 = :gen2, genre3 = :gen3, editeur_jap = :edjap, traduction_us = :tradus, nombre_chapitre = :nbchap, resume = :resume, statut = :statut WHERE id= :idPro'); $modproj->bindValue(':licencie', $stat); $modproj->bindValue(':titre', $titre); $modproj->bindValue(':titrej', $titrej); $modproj->bindValue(':titrer', $titrer); $modproj->bindValue(':couv', $couv); $modproj->bindValue(':extrait', $ext); $modproj->bindValue(':auteur', $aut); $modproj->bindValue(':volume', $vol); //$modproj->bindValue(':annee', $ann); $modproj->bindValue(':gen1', $gen1); $modproj->bindValue(':gen2', $gen2); $modproj->bindValue(':gen3', $gen3); $modproj->bindValue(':edjap', $edj); $modproj->bindValue(':tradus', $tradus); //$modproj->bindValue(':tradfr', $tradfr); $modproj->bindValue(':nbchap', $nbchap); $modproj->bindValue(':resume', $res); $modproj->bindValue(':statut', $cat); $modproj->bindValue(':idPro', $idPro, PDO::PARAM_INT); //$modproj->bindValue(':licence', $lic); $modproj->execute(); $modproj->closeCursor(); } /** * Ajoute un download * * @param string $titre titre du projet auquel est relié le download * @param string $num numéro du chapitre * @param string $lien nom du fichier composant le download (type : [HHH]titre.rar) * @param string $trad traducteur du chapitre * @param string $check checkeur du chapitre * @param string $edit éditeur du chapitre * @param string $qcheck qcheckeur du chapitre */ public function addDownload($titre, $num, $lien, $trad, $check, $edit, $qcheck) { //Si c'est une intégrale on met le numéro de release sur N/A if(strcmp($num, 'integrale') == 0) { /* $newdow = $this->connect->prepare('INSERT INTO download2 SET titre = :titre, numero_chapitre = :num, dl = :lien, traducteur = :trad, check = :check, $editeur = :edit, qcheck = :qcheck, timestamp = :time, numero = :inte'); */ $newdow = $this->connect->prepare('INSERT INTO download2 VALUES("", :titre, "", :trad, :check, :edit, :qcheck, :num, :lien, "", "", :time, :inte)'); $newdow->bindValue(':titre', $titre); $newdow->bindValue(':trad', $trad); $newdow->bindValue(':check', $check); $newdow->bindValue(':edit', $edit); $newdow->bindValue(':qcheck', $qcheck); $newdow->bindValue(':num', $num); $newdow->bindValue(':lien', $lien); $newdow->bindValue(':time', time()); $newdow->bindValue(':inte', 'N/A', PDO::PARAM_STR); $newdow->execute(); $newdow->closeCursor(); } else //Sinon on prend le dernier numéro de release et on ajoute 1 { //on récupère le dernier numéro de release //$real = $this->connect->prepare('SELECT * FROM download2 WHERE timestamp = MAX(timestamp) AND numero != :inte'); try { //On ajoute une ligne dans la table notation pour que les utilisateurs puissent voter pour le projet $real = $this->connect->prepare('SELECT * FROM download2 WHERE numero_chapitre != :inte ORDER BY id DESC LIMIT 0, 1'); //$real = $this->connect->prepare('SELECT * FROM download2 WHERE id = (SELECT MAX(id) FROM download2) AND numero_chapitre != :inte'); $real->bindValue(':inte', 'integrale', PDO::PARAM_STR); $real->execute(); } catch(Exception $e) { exit('Erreur : ' . $e->getMessage()); } $dateinsert = time(); $numreal = 0; while( $affiche = $real->fetch(PDO::FETCH_ASSOC)) { $numreal = intval($affiche['numero']) + 1; } $real->closeCursor(); /* $newdow = $this->connect->prepare('INSERT INTO download2 SET titre = :titre, numero_chapitre = :num, dl = :lien, traducteur = :trad, check = :check, editeur = :edit, qcheck = :qcheck, numero = :real, timestamp = :time' ); */ //$newdow = $this->connect->prepare('INSERT INTO download2 (titre, traducteur, check, editeur, qcheck, numero_chapitre, dl, timestamp, numero) VALUES (:titre, :trad, :check, :edit, :qcheck, :num, :lien, :time, :real)'); $newdow = $this->connect->prepare('INSERT INTO download2 VALUES("", :titre, "", :trad, :check, :edit, :qcheck, :num, :lien, "", "", :time, :real)'); $newdow->bindParam(':titre', $titre); $newdow->bindParam(':trad', $trad); $newdow->bindParam(':check', $check); $newdow->bindParam(':edit', $edit); $newdow->bindParam(':qcheck', $qcheck); $newdow->bindParam(':num', $num); $newdow->bindParam(':lien', $lien); $newdow->bindParam(':time', $dateinsert, PDO::PARAM_INT); $newdow->bindParam(':real', $numreal); //print_r($newdow->execute()); $newdow->execute(); $newdow->closeCursor(); } } /** * Modifie un download * * @param int $id id de la release * @param string $titre titre du projet auquel est relié le download * @param string $num numéro du chapitre * @param string $lien nom du fichier composant le download (type : [HHH]titre.rar) * @param string $trad traducteur du chapitre * @param string $check checkeur du chapitre * @param string $edit éditeur du chapitre * @param string $qcheck qcheckeur du chapitre */ public function modDownload($id, $titre, $num, $lien, $trad, $check, $edit, $qcheck) { $idInt = intval($id); //* //$newdow = $this->connect->prepare("UPDATE 'download2' SET 'titre'=:titre, 'traducteur'=:trad, 'checkeur'=:checkeur, 'editeur'=:edit, 'qcheck'=:qcheck, 'numero_chapitre'=:num, 'dl'=:lien WHERE 'id'=:id"); $newdow = $this->connect->prepare('UPDATE download2 SET titre=:titre, traducteur=:trad, checkeur=:checkeur, editeur=:edit, qcheck=:qcheck, numero_chapitre=:num, dl=:lien WHERE id=:id'); //$newdow = $this->connect->prepare('UPDATE download2 SET VALUES(:titre, "", :trad, :check, :edit, :qcheck, :num, :lien) WHERE id = :id'); $newdow->bindValue(':id', $idInt, PDO::PARAM_INT); $newdow->bindValue(':titre', $titre); $newdow->bindValue(':trad', $trad); $newdow->bindValue(':checkeur', $check); $newdow->bindValue(':edit', $edit); $newdow->bindValue(':qcheck', $qcheck); $newdow->bindValue(':num', $num); $newdow->bindValue(':lien', $lien); $newdow->execute(); $newdow->closeCursor(); //*/ //$newdow = $this->connect->exec('UPDATE download2 SET titre='.$this->connect->quote($titre).', traducteur='.$this->connect->quote($trad).', check='.$this->connect->quote($check).', editeur='.$this->connect->quote($edit).', qcheck='.$this->connect->quote($qcheck).', numero_chapitre='.$this->connect->quote($num).', dl ='.$this->connect->quote($lien).' WHERE id='.$idInt); } /** *Liste tous les dowload * *@return array $tabDown tableau contenant la liste des download */ public function listDownload() { //* $down = $this->connect->query('SELECT * FROM download2 ORDER BY timestamp DESC, numero DESC'); $tabDown = array(); while($liste = $down->fetch(PDO::FETCH_ASSOC)) { $tabl['id'] = $liste['id']; $tabl['numero'] = $liste['numero']; $tabl['titre'] = $liste['titre']; $tabl['numero_chapitre'] = $liste['numero_chapitre']; $tabl['traducteur'] = $liste['traducteur']; $tabl['checkeur'] = $liste['checkeur']; $tabl['editeur'] = $liste['editeur']; $tabl['qcheck'] = $liste['qcheck']; $tabl['numero_chapitre'] = $liste['numero_chapitre']; $tabl['dl'] = $liste['dl']; $tabl['timestamp'] = $liste['timestamp']; $tabl['pop'] = $liste['pop']; array_push($tabDown, $tabl); } $down->closeCursor(); return $tabDown; //*/ } /** * Liste tous les projets. * * @return array $tabProjets tableau contenant la liste des projets * */ public function listProjet() { $onGoing = $this->connect->query('SELECT * FROM projets ORDER BY titre ASC'); $tabProj = array(); while($enCours = $onGoing->fetch(PDO::FETCH_ASSOC)) { //* $projets['id']= $enCours['id']; $projets['categorie']= $enCours['categorie']; $projets['titre'] = $enCours['titre']; $projets['titre_jap'] = $enCours['titre_jap']; $projets['titre_romanji'] = $enCours['titre_romanji']; $projets['couverture'] = $enCours['couverture']; $projets['extrait'] = $enCours['extrait']; $projets['auteur'] = $enCours['auteur']; $projets['volume'] = $enCours['volume']; $projets['annee'] = $enCours['annee']; $projets['genre1'] = $enCours['genre1']; $projets['genre2'] = $enCours['genre2']; $projets['genre3'] = $enCours['genre3']; $projets['editeur_jap']= $enCours['editeur_jap']; $projets['trad_us'] = $enCours['traduction_us']; $projets['trad_fr'] = $enCours['traduction_fr']; //$projets['check'] = $enCours['check']; $projets['edition'] = $enCours['edition']; //$projets['qcheck'] = $enCours['qcheck']; $projets['nbChap'] = $enCours['nombre_chapitre']; $projets['resume'] = $enCours['resume']; $projets['release'] = $enCours['release']; $projets['statut'] = $enCours['statut']; $projets['licencie'] = $enCours['licencie']; //*/ array_push($tabProj, $projets); } $onGoing->closeCursor(); return $tabProj; } /** * Donne la liste de toutes les releases pour la partie publique du site * * @return array $tabliste tableau contenant la liste des releases **/ public function listDownPublic() { //On récupère d'abord la liste des downloads $telechar = $this->listDownload(); $tabliste = array(); foreach($telechar as $ele) { //Avec le titre du download on récupère les infos dont on a besoin dans la table projets $info = $this->connect->prepare('SELECT * FROM projets WHERE titre = :titre'); $info->bindValue(':titre', $ele['titre']); $info->execute(); while( $listed = $info->fetch(PDO::FETCH_ASSOC)) { $data['id'] = $listed['id']; $data['titre'] = $ele['titre']; $data['numero_chapitre'] = $ele['numero_chapitre']; $data['genre1'] = $listed['genre1']; $data['genre2'] = $listed['genre2']; $data['genre3'] = $listed['genre3']; $data['categorie'] = $listed['categorie']; $data['auteur'] = $listed['auteur']; $data['genre1'] = $listed['genre1']; $data['timestamp'] = $ele['timestamp']; $data['pop'] = $ele['pop']; $data['dl'] = $ele['dl']; $data['numero'] = $ele['numero']; array_push($tabliste, $data); } $info->closeCursor(); } return $tabliste; } /** * Liste les projets en cours. * * @return array $tabProjets tableau contenant la liste des projets en cours * */ public function goingProjet() { $onGoing = $this->connect->query('SELECT * FROM projets WHERE statut="en cours" ORDER BY titre ASC'); $tabProj = array(); while($enCours = $onGoing->fetch(PDO::FETCH_ASSOC)) { //* $projets['id']= $enCours['id']; $projets['categorie']= $enCours['categorie']; $projets['titre'] = $enCours['titre']; $projets['titre_jap'] = $enCours['titre_jap']; $projets['titre_romanji'] = $enCours['titre_romanji']; $projets['couverture'] = $enCours['couverture']; $projets['extrait'] = $enCours['extrait']; $projets['auteur'] = $enCours['auteur']; $projets['volume'] = $enCours['volume']; $projets['annee'] = $enCours['annee']; $projets['genre1'] = $enCours['genre1']; $projets['genre2'] = $enCours['genre2']; $projets['genre3'] = $enCours['genre3']; $projets['editeur_jap']= $enCours['editeur_jap']; $projets['trad_us'] = $enCours['traduction_us']; $projets['trad_fr'] = $enCours['traduction_fr']; //$projets['check'] = $enCours['check']; $projets['edition'] = $enCours['edition']; //$projets['qcheck'] = $enCours['qcheck']; $projets['nbChap'] = $enCours['nombre_chapitre']; $projets['resume'] = $enCours['resume']; $projets['release'] = $enCours['release']; $projets['statut'] = $enCours['statut']; $projets['licencie'] = $enCours['licencie']; //*/ array_push($tabProj, $projets); } $onGoing->closeCursor(); return $tabProj; } /** * Liste les projets terminés. * * @return array $complete tableau contenant la liste des projets terminés * */ public function completeProjet() { $termine = $this->connect->query('SELECT * FROM projets WHERE statut="complet" ORDER BY titre ASC'); $tabComplet = array(); while($fini = $termine->fetch(PDO::FETCH_ASSOC)) { $complete['id'] = $fini['id']; $complete['categorie']= $fini['categorie']; $complete['titre'] = $fini['titre']; $complete['titre_jap'] = $fini['titre_jap']; $complete['titre_romanji'] = $fini['titre_romanji']; $complete['couverture'] = $fini['couverture']; $complete['extrait'] = $fini['extrait']; $complete['auteur'] = $fini['auteur']; $complete['volume'] = $fini['volume']; $complete['annee'] = $fini['annee']; $complete['genre1'] = $fini['genre1']; $complete['editeur_jap']= $fini['editeur_jap']; $complete['trad_us'] = $fini['traduction_us']; $complete['trad_fr'] = $fini['traduction_fr']; //$complete['check'] = $fini['check']; $complete['edition'] = $fini['edition']; //$complete['qcheck'] = $fini['qcheck']; $complete['nbChap'] = $fini['nombre_chapitre']; $complete['resume'] = $fini['resume']; $complete['release'] = $fini['release']; array_push($tabComplet, $complete); } $termine->closeCursor(); return $tabComplet; } /** * Liste les projets hors série. * * @return array $tabHs tableau contenant la liste des projets terminés **/ public function hsProjet() { $termine = $this->connect->query('SELECT * FROM projets WHERE statut="horsserie" ORDER BY titre ASC'); $tabHs = array(); while($fini = $termine->fetch(PDO::FETCH_ASSOC)) { $complete['id'] = $fini['id']; $complete['categorie']= $fini['categorie']; $complete['titre'] = $fini['titre']; $complete['titre_jap'] = $fini['titre_jap']; $complete['titre_romanji'] = $fini['titre_romanji']; $complete['couverture'] = $fini['couverture']; $complete['extrait'] = $fini['extrait']; $complete['auteur'] = $fini['auteur']; $complete['volume'] = $fini['volume']; $complete['annee'] = $fini['annee']; $complete['genre1'] = $fini['genre1']; $complete['editeur_jap']= $fini['editeur_jap']; $complete['trad_us'] = $fini['traduction_us']; $complete['trad_fr'] = $fini['traduction_fr']; $complete['edition'] = $fini['edition']; $complete['nbChap'] = $fini['nombre_chapitre']; $complete['resume'] = $fini['resume']; $complete['release'] = $fini['release']; array_push($tabHs, $complete); } $termine->closeCursor(); return $tabHs; } /** * Liste les projets anime. * * @return array $tabAn tableau contenant la liste des projets anime **/ public function animeProjet() { $termine = $this->connect->query('SELECT * FROM projets WHERE statut="anime" ORDER BY titre ASC'); $tabAn = array(); while($fini = $termine->fetch(PDO::FETCH_ASSOC)) { $complete['id'] = $fini['id']; $complete['categorie']= $fini['categorie']; $complete['titre'] = $fini['titre']; $complete['titre_jap'] = $fini['titre_jap']; $complete['titre_romanji'] = $fini['titre_romanji']; $complete['couverture'] = $fini['couverture']; $complete['extrait'] = $fini['extrait']; $complete['auteur'] = $fini['auteur']; $complete['volume'] = $fini['volume']; $complete['annee'] = $fini['annee']; $complete['genre1'] = $fini['genre1']; $complete['editeur_jap']= $fini['editeur_jap']; $complete['trad_us'] = $fini['traduction_us']; $complete['trad_fr'] = $fini['traduction_fr']; $complete['edition'] = $fini['edition']; $complete['nbChap'] = $fini['nombre_chapitre']; $complete['resume'] = $fini['resume']; $complete['release'] = $fini['release']; array_push($tabAn, $complete); } $termine->closeCursor(); return $tabAn; } /** * Affiche la fiche du projet demandé * **/ public function ficheProjet($idPr) { $fiche = $this->connect->prepare('SELECT * FROM projets WHERE id = :idProjet'); $fiche->bindParam('idProjet', $idPr, PDO::PARAM_INT); $fiche->execute(); echo '
'; while($infos = $fiche->fetch(PDO::FETCH_ASSOC)) { //echo 'Passage dans le while de la requete d\'affcihage.
'; //On récupère les informations dont on a besoin pour le téléchargement dans la table dowload //$dowload = $this->connect->prepare('SELECT * FROM download2 WHERE titre = :titreProj ORDER BY numero_chapitre ASC'); //Après que la colonne licencie de la table projets a été remplie, enlever la ligne du dessus et activer celle de dessous //* $dowload = $this->connect->prepare('SELECT * FROM download2, projets WHERE download2.titre = projets.titre AND projets.licencie = "non" AND download2.titre = :titreProj ORDER BY timestamp ASC'); //*/ $dowload->bindParam(':titreProj', $infos['titre']); $dowload->execute(); //On récupère le nombre total de commentaire pour cette news try { $ask = $this->connect->prepare('SELECT COUNT(*) as nbCom FROM commentaire_projets WHERE id_projet= :idp'); $ask->bindParam(':idp', $infos['id'], PDO::PARAM_INT); $ask->execute(); } catch(Exception $e) { exit('Erreur : ' . $e->getMessage()); } $comm = $ask->fetch(); // moulinette du systeme de notation $note=$this->afficherNote($infos['id']); $lanote=intval($note[0]); $nbdenote=intval($note[1]); $moynote=round($lanote / $nbdenote,2); ?>
<?php echo $infos['titre']; ?>
Commentaires ()
Téléchargements
fetch(PDO::FETCH_ASSOC)) { if(strcmp('integrale', $dow['numero_chapitre']) == 0) { echo 'Intégrale['. $dow['pop'] .']
'; } else { echo 'Chapitre '.$i.' ['. $dow['pop'] .']
'; $i++; } } ?>
Note :
notes
points par noteurs
Notez le projet
Titre original :
Titre romanji :
Auteur :
Éditeur :
Genre :
Nombre de volume :
Nombre de chapitres :
Traduction US :
Traduction :
Check :
Édition :
Qcheck :
Résumé :


closeCursor(); $ask->closeCursor(); } echo '
'; $fiche->closeCursor(); } /** * Créer ou met à jour le cache pour la page des projets hors série * * @return string $content contenu de la page au format html **/ public function cacheHs() { //On indique dans quel fichier on va stocker le cache $cacheHs = 'cache/hors-serie.html'; //DEBUT DE LA MISE EN CACHE //Ouverture du tampon ob_start(); $tableau = $this->hsProjet(); //On affiche les projets par catégorie echo '
'; foreach($tableau as $elem) { $paramTitre = str_replace(' ', '-', $elem['titre']); $paramTitre = rewriteURL($paramTitre); ?>
'; //on récupère le contenu du tampon dans la variable $contents $content = ob_get_contents(); //Fermeture du tampon ob_end_clean(); //on écrit le contenu de notre page au format html dans un fichier //file_put_contents($cacheHs, $content); //FIN DE LA MISE EN CACHE return $content; } /** * Créer ou met à jour le cache pour la page des projets anime * * @return string $content contenu de la page au format html **/ public function cacheAnime() { //On indique dans quel fichier on va stocker le cache $cacheAn = 'cache/animes.html'; //DEBUT DE LA MISE EN CACHE //Ouverture du tampon ob_start(); $tableau = $this->animeProjet(); //On affiche les projets par catégorie echo '
'; foreach($tableau as $elem) { $paramTitre = str_replace(' ', '-', $elem['titre']); $paramTitre = rewriteURL($paramTitre); ?>
'; //on récupère le contenu du tampon dans la variable $contents $content = ob_get_contents(); //Fermeture du tampon ob_end_clean(); //on écrit le contenu de notre page au format html dans un fichier //file_put_contents($cacheAn, $content); //FIN DE LA MISE EN CACHE return $content; } /** * Créer ou met à jour le cache pour la page des projets en cours. * * @return string $content contenu de la page au format html **/ public function cacheProjetGo() { //On indique dans quel fichier on va stocker le cache $cachePec = 'cache/projets-en-cours.html'; //DEBUT DE LA MISE EN CACHE //Ouverture du tampon ob_start(); $tableau = $this->goingProjet(); //On affiche les projets par catégorie echo '
'; foreach($tableau as $elem) { $paramTitre = str_replace(' ', '-', $elem['titre']); $paramTitre = rewriteURL($paramTitre); ?>
'; //on récupère le contenu du tampon dans la variable $contents $content = ob_get_contents(); //Fermeture du tampon ob_end_clean(); //on écrit le contenu de notre page au format html dans un fichier //file_put_contents($cachePec, $content); //FIN DE LA MISE EN CACHE return $content; } /** * Créer ou met à jour le cache pour la page des projets en finis. * * @return string $content contenu de la page au format html **/ public function cacheProjetFini() { //On indique dans quel fichier on va stocker le cache $cachePf = 'cache/projets_termines.html'; //DEBUT DE LA MISE EN CACHE //Ouverture du tampon ob_start(); $tableau = $this->completeProjet(); //On affiche les projets par catégorie echo '
'; foreach($tableau as $elem) { $paramTitre = str_replace(' ', '-', $elem['titre']); $paramTitre = rewriteURL($paramTitre); ?>
'; //on récupère le contenu du tampon dans la variable $contents $content = ob_get_contents(); //Fermeture du tampon ob_end_clean(); //on écrit le contenu de notre page au format html dans un fichier //file_put_contents($cachePf, $content); //FIN DE LA MISE EN CACHE return $content; } /** * Liste les projets Jeux. * * @return array $tabAn tableau contenant la liste des projets anime **/ public function jeuxProjet() { $jeux = $this->connect->query('SELECT * FROM projets WHERE statut="jeux" ORDER BY titre ASC'); $tabJe = array(); while($game = $jeux->fetch(PDO::FETCH_ASSOC)) { $joujou['id'] = $game['id']; $joujou['categorie']= $game['categorie']; $joujou['titre'] = $game['titre']; $joujou['titre_jap'] = $game['titre_jap']; $joujou['titre_romanji'] = $game['titre_romanji']; $joujou['couverture'] = $game['couverture']; $joujou['extrait'] = $game['extrait']; $joujou['auteur'] = $game['auteur']; $joujou['volume'] = $game['volume']; $joujou['annee'] = $game['annee']; $joujou['genre1'] = $game['genre1']; $joujou['editeur_jap']= $game['editeur_jap']; $joujou['trad_us'] = $game['traduction_us']; $joujou['trad_fr'] = $game['traduction_fr']; $joujou['edition'] = $game['edition']; $joujou['nbChap'] = $game['nombre_chapitre']; $joujou['resume'] = $game['resume']; $joujou['release'] = $game['release']; array_push($tabJe, $joujou); } $jeux->closeCursor(); return $tabJe; } /** * Créer ou met à jour le cache pour la page des jeux. * * @return string $content contenu de la page au format html **/ public function cacheJeux() { //On indique dans quel fichier on va stocker le cache $cachePf = 'cache/projets_jeux.html'; //DEBUT DE LA MISE EN CACHE //Ouverture du tampon ob_start(); $tableau = $this->jeuxProjet(); //On affiche les projets par catégorie echo '
'; foreach($tableau as $elem) { $paramTitre = str_replace(' ', '-', $elem['titre']); $paramTitre = rewriteURL($paramTitre); ?>
'; //on récupère le contenu du tampon dans la variable $contents $content = ob_get_contents(); //Fermeture du tampon ob_end_clean(); //on écrit le contenu de notre page au format html dans un fichier //file_put_contents($cachePf, $content); //FIN DE LA MISE EN CACHE return $content; } } ?>