From b97a68343ec5c4ff1fae25ff5dc41f1a2ce6a17f Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 26 Nov 2021 04:29:10 +0100 Subject: =?UTF-8?q?disco=20modif/suppr=20d=C3=A9sordre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/Album.php | 75 ++++++++++++++++++++ model/Classes.php | 201 ------------------------------------------------------ model/Image.php | 9 +-- model/Page.php | 97 ++++++++++++++++++++++++++ 4 files changed, 175 insertions(+), 207 deletions(-) create mode 100644 model/Album.php delete mode 100644 model/Classes.php create mode 100644 model/Page.php (limited to 'model') diff --git a/model/Album.php b/model/Album.php new file mode 100644 index 0000000..2254c10 --- /dev/null +++ b/model/Album.php @@ -0,0 +1,75 @@ +page = $page; + $this->format = 'json'; // vaut 'html' dans la classe mère + $this->time = time(); + } + + // GET + + // SET + + // fonctions CRUD + + // create + public function createVignette($titre, $annee, $pochette) + { + $this->format = 'json'; + + if($pochette != '') + { + // télécharger la pochette + require('model/Image.php'); + $Image = new Image(false); + $Image->upload(); + + /*$erreur = $Image->getError(); + if(!empty($erreur)) + {}*/ + } + + $albumJSON = json_encode([$titre, $annee, $pochette]); + + $nom_fichier = 'data/' . $this->page . '/' . $this->format . '/' . $this->time . '.' . $this->format; + + $fichier = fopen($nom_fichier, 'w'); // w pour créer ou écraser + fputs($fichier, $albumJSON); + fclose($fichier); + chmod($nom_fichier, 0666); + } + + // read + public function getVignette() + { + return(file_get_contents($this->fileName)); + } + + // page de l'album + public static function readOneAlbum($albumCode) + { + return(file_get_contents('data/discographie/html/' . $albumCode . '.html')); + } + + // pour afficher des dates + /*public function getDate($fileNumber) + { + // le 2è paramètre exclut le suffixe .html + $timestamp = basename($this->files[$fileNumber], '.html'); + return getdate($timestamp); + }*/ + + // update + public function updateVignette() + {} + + // delete + public function delete() + { + unlink($this->fileName); + } +} diff --git a/model/Classes.php b/model/Classes.php deleted file mode 100644 index 97a137a..0000000 --- a/model/Classes.php +++ /dev/null @@ -1,201 +0,0 @@ -page = $page; - $this->time = time(); - if($this->page == 'discographie') - { - $this->format = 'json'; - } - } - - // GET - public function getPage() - { - return($this->page); - } - - public function getNbArticles() - { - return($this->nbArticles); - } - public function getFileList() - { - return($this->files); - } - - // SET - public function setFormat($format) - { - $this->format = $format; - } - - // tableaux des noms des fichiers - public function makeFileList() - { - $this->files = glob('data/' . $this->page . '/' . $this->format . '/*.' . $this->format); - //$this->files = glob('*.' . $this->format); - } - /*public function makeFilePath() - {}*/ - - // fonctions CRUD (create - read - update - delete) - - // create - - // read - public function readAll() - { - $i = 0; - $articles = array(); - foreach ($this->files as $oneFile) - { - $articles[$i] = file_get_contents($oneFile); - $i++; - } - //print_r($articles); - return $articles; - } - - // update - - // delete -} - -// article créé ou ciblé pour modification/suppression -class OneArticle extends AllArticles -{ - private $fileName; // correspond à $_SESSION['nomFichier'] - - // GET - public function getFileName() - { - return($this->fileName); - } - - // SET - public function setFileName($nomFichier) // modification - { - $this->fileName = $nomFichier; - } - - public function findFileName($numArticle) // nouvel article - { - $this->fileName = $this->files[$numArticle - 1]; - } - - // fonctions CRUD (create - read - update - delete) - - // create - public function create($content) - { - $format = 'html'; - - // nommer les fichiers avec le timestamp pour: - // - les trier par ordre chronologique - // - rendre quasi impossible d'avoir deux fois le même nom (à la condition de gérer la "concurrence") - $nom_fichier = 'data/' . $this->page . '/' . $format . '/' . $this->time . '.' . $format; - - $fichier = fopen($nom_fichier, 'w'); // w pour créer ou écraser - fputs($fichier, $content); - fclose($fichier); - chmod($nom_fichier, 0666); - } - - // read - public function readOne() - { - return(file_get_contents($this->fileName)); - } - public static function readOneAlbum($albumCode) - { - return(file_get_contents('data/discographie/html/' . $albumCode . '.html')); - } - - // pour afficher des dates - /*public function getDate($fileNumber) - { - // le 2è paramètre exclut le suffixe .html - $timestamp = basename($this->files[$fileNumber], '.html'); - return getdate($timestamp); - }*/ - - // update - public function update($content) - { - $file = fopen($this->fileName, 'w'); // crée ou écrase - fputs($file, $content); - fclose($file); - //chown($this->fileName, 'http'); - chmod($this->fileName, 0666); - } - - // delete - public function delete() - { - unlink($this->fileName); - } -} - - -class Album extends OneArticle -{ - // variables - //private $fileNameJSON; // même nom en .json - - // GET - - // SET - - // fonctions CRUD - // create - public function createVignette($titre, $annee, $pochette) - { - $this->format = 'json'; - - if($pochette != '') - { - // télécharger la pochette - require('model/Image.php'); - $Image = new Image(false); - $Image->upload(); - - /*$erreur = $Image->getError(); - if(!empty($erreur)) - {}*/ - } - - $albumJSON = json_encode([$titre, $annee, $pochette]); - - $nom_fichier = 'data/' . $this->page . '/' . $this->format . '/' . $this->time . '.' . $this->format; - - $fichier = fopen($nom_fichier, 'w'); // w pour créer ou écraser - fputs($fichier, $albumJSON); - fclose($fichier); - chmod($nom_fichier, 0666); - } - - // read - public function read() - {} - - // update - public function updateVignette($titre, $annee, $pochette) - {} - - // delete - public function delete() - {} -} \ No newline at end of file diff --git a/model/Image.php b/model/Image.php index 0070b70..efd75cc 100644 --- a/model/Image.php +++ b/model/Image.php @@ -6,7 +6,7 @@ class Image private const MAX_WEIGHT = 2000000; // taille max des images (par défaut 2Mo dans php.ini) private $page; private $ajax = false; - private $erreur = ''; + public $erreur = ''; public function __construct($ajax) { @@ -16,14 +16,11 @@ class Image } // GET - public function getError() - { - return($this->erreur); - } + + // SET public function upload() { - // traitement et enregistrement de l'image if (isset($_FILES['upload']) AND $_FILES['upload']['error'] == 0) // 0 signifie ok { diff --git a/model/Page.php b/model/Page.php new file mode 100644 index 0000000..e03efe1 --- /dev/null +++ b/model/Page.php @@ -0,0 +1,97 @@ +page = $page; + $this->format = $format; + $this->time = time(); + $this->makeFileList(); + } + + // tableaux des noms des fichiers + public function makeFileList() + { + $this->fileList = glob('data/' . $this->page . '/' . $this->format . '/*.' . $this->format); + //$this->files = glob('*.' . $this->format); + } + /*public function makeFilePath() + {}*/ + + // nom d'un fichier + public function findFileName($numArticle) + { + if($numArticle > 0) + { + $this->fileName = $this->fileList[$numArticle - 1]; + } + } + + // GET + + // SET + + // fonctions CRUD (create - read - update - delete) + + // create + public function create($content) + { + $format = 'html'; + + // nommer les fichiers avec le timestamp pour: + // - les trier par ordre chronologique + // - rendre quasi impossible d'avoir deux fois le même nom (à la condition de gérer la "concurrence") + $nom_fichier = 'data/' . $this->page . '/' . $format . '/' . $this->time . '.' . $format; + + $fichier = fopen($nom_fichier, 'w'); // w pour créer ou écraser + fputs($fichier, $content); + fclose($fichier); + chmod($nom_fichier, 0666); + } + + // read + public function readAll() + { + $i = 0; + $articles = array(); + foreach ($this->fileList as $oneFile) + { + $articles[$i] = file_get_contents($oneFile); + $i++; + } + //print_r($articles); + return $articles; + } + public function readOne() + { + return(file_get_contents($this->fileName)); + } + + // update + public function update($content) + { + $file = fopen($this->fileName, 'w'); // crée ou écrase + fputs($file, $content); + fclose($file); + //chown($this->fileName, 'http'); + chmod($this->fileName, 0666); + } + + // delete + public function delete() + { + unlink($this->fileName); + } +} \ No newline at end of file -- cgit v1.2.3