From 29df6f1362745eabf4fbcaedf309eb63795152fa Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 29 Nov 2021 03:25:19 +0100 Subject: discographie --- model/Album.php | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 9 deletions(-) (limited to 'model/Album.php') diff --git a/model/Album.php b/model/Album.php index 2254c10..1631c46 100644 --- a/model/Album.php +++ b/model/Album.php @@ -6,6 +6,7 @@ class Album extends Page // classe "objet" public function __construct($page) { $this->page = $page; + $this->albumCode = ''; // désigne un fichier json et un html $this->format = 'json'; // vaut 'html' dans la classe mère $this->time = time(); } @@ -19,7 +20,7 @@ class Album extends Page // classe "objet" // create public function createVignette($titre, $annee, $pochette) { - $this->format = 'json'; + //$this->format = 'json'; if($pochette != '') { @@ -28,7 +29,7 @@ class Album extends Page // classe "objet" $Image = new Image(false); $Image->upload(); - /*$erreur = $Image->getError(); + /*$erreur = $Image->erreur; if(!empty($erreur)) {}*/ } @@ -41,18 +42,41 @@ class Album extends Page // classe "objet" fputs($fichier, $albumJSON); fclose($fichier); chmod($nom_fichier, 0666); + + return($Image->erreur); } // read - public function getVignette() + public function readAll() + { + // lecture des données + $albumsJSON = parent::readAll(); + + // conversion des chaines JSON en tableaux: titre, année, pochette + for($i = 0; $i < count($albumsJSON); $i++) + { + $albumsJSON[$i] = json_decode($albumsJSON[$i], true); + } + + return($albumsJSON); + } + + public function getVignetteJSON() { - return(file_get_contents($this->fileName)); + return(json_decode(file_get_contents('data/discographie/json/' . $this->albumCode . '.json'))); } // page de l'album - public static function readOneAlbum($albumCode) + public static function readOneHTML($albumCode) { - return(file_get_contents('data/discographie/html/' . $albumCode . '.html')); + if(file_exists('data/discographie/html/' . $albumCode . '.html')) + { + return(file_get_contents('data/discographie/html/' . $albumCode . '.html')); + } + else + { + return(''); + } } // pour afficher des dates @@ -64,12 +88,43 @@ class Album extends Page // classe "objet" }*/ // update - public function updateVignette() - {} + public function updateVignetteJSON($titre, $annee, $pochette) + { + // garder l'ancienne image + $albumJSON = self::getVignetteJSON(); + + if($pochette == '') + { + $pochette = $albumJSON[2]; + } + else + { + // télécharger la pochette + require('model/Image.php'); + $Image = new Image(false); + $Image->upload(); + } + + $albumJSON = json_encode([$titre, $annee, $pochette]); + + // écriture + $nom_fichier = 'data/discographie/json/' . $this->albumCode . '.json'; + $fichier = fopen($nom_fichier, 'w+'); // w pour créer ou écraser + fputs($fichier, $albumJSON); + fclose($fichier); + chmod($nom_fichier, 0666); + + return($Image->erreur); + } // delete public function delete() { - unlink($this->fileName); + unlink('data/' . $this->page . '/' . $this->format . '/' . $this->albumCode . '.json'); + + if(file_exists('data/' . $this->page . '/html/' . $this->albumCode . '.html')); + { + unlink('data/' . $this->page . '/html/' . $this->albumCode . '.html'); + } } } -- cgit v1.2.3