From 90b3efeeb9d939303ff80b180725e06e2e57af79 Mon Sep 17 00:00:00 2001 From: polo Date: Thu, 13 Apr 2023 03:02:57 +0200 Subject: =?UTF-8?q?=C3=A9diteur=20page=20album?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/admin.php | 60 +++++++++++++++++----- controller/ajax.php | 10 +++- controller/ckeditor.php | 80 +++++++++++++++++------------ controller/visitor.php | 19 ++++--- index.php | 72 +++++++++++++++++++------- model/Album.php | 22 ++++---- model/Article.php | 40 +++++++++------ model/Image.php | 22 +++++--- view/album.php | 48 +++++++++++++++-- view/discographie.php | 8 +-- view/template-formulaires.php | 6 +-- "\303\240 faire apr\303\250s livraison.txt" | 13 ++++- 12 files changed, 278 insertions(+), 122 deletions(-) diff --git a/controller/admin.php b/controller/admin.php index 845fab1..f3eeeca 100644 --- a/controller/admin.php +++ b/controller/admin.php @@ -19,7 +19,7 @@ function pageArticlesSimplesAdmin(string $page, string $title, string $headerPai } // infos sur les fichiers - $Articles = new Article($page); + $Articles = new Article($page, $page); // nouvel article if($fileCode == '') @@ -47,6 +47,7 @@ function pageArticlesSimplesAdmin(string $page, string $title, string $headerPai $texte = $Articles->readOne(); // entrée de l'éditeur } } + $lienBoutonAnnuler = $page; // ajout des données dans $Articles->fileList['content'] if(!empty($Articles->fileList)) @@ -58,7 +59,7 @@ function pageArticlesSimplesAdmin(string $page, string $title, string $headerPai // sécurisation du contenu pré-existant inséré dans l'éditeur if(!empty($fileCode) && !$suppression) { - $fileCodeArgument = '&article=' . $fileCode; + $fileCodeArgument = '&file_code=' . $fileCode; require('controller/ckeditor.php'); $texte = preparationCKeditor($texte); } @@ -156,15 +157,23 @@ function legalEdit($fileCode, int $suppression) } -// page plus complexe que les autres -function discoEdit($fileCode, int $suppression) +// l'éditeur est ouvert dans la page album +// ne servirait que pour les positions +/*function discoEdit() { - $page = "discographie"; + inversionPositions(); +}*/ + +// page complexe avec albums et articles +// cas où on fait quelque chose: ouvrir l'éditeur, monter, descendre, supprimer +function albumEdit($fileCode, int $suppression) +{ + $page = $_GET['page']; $title = "Discographie"; // modèle - $Albums = new Album($page); - $Albums->makeFileList(); + $Albums = new Album($page, 'discographie'); + //$Albums->makeFileList(); // contenu: JSON, HTML, noms et chemins des fichiers $Albums->readAll(); @@ -177,6 +186,8 @@ function discoEdit($fileCode, int $suppression) // nouvel album if($fileCode == '') { + $page = 'discographie'; + $lienBoutonAnnuler = $page; $title = "Ajouter un album"; $imageFormulaire = ''; @@ -189,9 +200,9 @@ function discoEdit($fileCode, int $suppression) // album ciblé $Albums->fileCode = $fileCode; - // suppression if($suppression) { + $page = 'discographie'; $Albums->delete(); header('Location: index.php?page=' . $page); exit(); @@ -199,6 +210,8 @@ function discoEdit($fileCode, int $suppression) // modification else { + $page = 'album'; + $Albums->readOne(); $_SESSION['target'] = $fileCode; $title = "Modifier un album"; @@ -216,7 +229,11 @@ function discoEdit($fileCode, int $suppression) // image affichée à côté des formulaires if(!empty($vignette[2])) { - $imageFormulaire = '
'; + if($page == 'album') + { + $dossier = 'discographie'; + } + $imageFormulaire = '
'; } else { @@ -232,7 +249,7 @@ function discoEdit($fileCode, int $suppression) if(!empty($fileCode) && !$suppression && !empty($texte)) { // dans l'adresse dans la balise
- $fileCodeArgument = '&article=' . $fileCode; + $fileCodeArgument = '&file_code=' . $fileCode; require('controller/ckeditor.php'); $texte = preparationCKeditor($texte); @@ -242,10 +259,16 @@ function discoEdit($fileCode, int $suppression) $fileCodeArgument = ''; } + // création des liens: menu disco + $lienBoutonAnnuler = 'discographie'; for($i = 0; $i < $Albums->fileListCount; $i++) { if(file_exists('data/discographie/html/' . $Albums->fileList[$i]['fileCode'] . '.html')) { + if($Albums->fileList[$i]['fileCode'] === $fileCode) + { + $lienBoutonAnnuler = $page . '&file_code=' . $fileCode; + } $lienAlbum[$i] = 'page=album&file_code=' . $Albums->fileList[$i]['fileCode']; $avecLien[$i] = true; $linkDiscoChrono[$i] = 'linkChrono'; // css @@ -256,7 +279,7 @@ function discoEdit($fileCode, int $suppression) $avecLien[$i] = false; $linkDiscoChrono[$i] = 'noLinkChrono'; // css } - $lienBoutonModif[$i] = 'page=discographie&action=edition&file_code=' . $Albums->fileList[$i]['fileCode'] . '#' . $Albums->fileList[$i]['fileCode']; + $lienBoutonModif[$i] = 'page=album&action=edition&file_code=' . $Albums->fileList[$i]['fileCode']; } // morceaux en HTML à assembler @@ -264,7 +287,14 @@ function discoEdit($fileCode, int $suppression) require('view/template-formulaires.php'); // variables $css, $js, $header et $content, // $content contient ???? et $editeurHTML - require('view/discographie.php'); + if($page === 'discographie') + { + require('view/discographie.php'); + } + elseif($page === 'album') + { + require('view/album.php'); + } // fin de l'assemblage require('view/template.php'); } @@ -273,7 +303,11 @@ function discoEdit($fileCode, int $suppression) // version sans JS (l'autre est dans ajax.php) function inversionPositions(string $page, $fileCode, string $class, int $direction) { - $Object = new $class($page); + $Object = new $class($page, $page); + if($page === 'album') + { + $Object->setFolder('discographie'); + } $Object->fileCode = $fileCode; // direction: 1 = monter, -1 = descendre $Object->inversionPositions($direction); diff --git a/controller/ajax.php b/controller/ajax.php index 188b01f..26aa9c6 100644 --- a/controller/ajax.php +++ b/controller/ajax.php @@ -17,8 +17,14 @@ if(isset($_GET['action']) && isset($_GET['page']) && $_GET['action'] == 'upload_ else { require('model/Image.php'); - // paramètre "true" parce qu'on reçoit une requête AJAX - $Image = new Image(true); + // vaut "true" parce qu'on reçoit une requête AJAX + $Image = new Image($_GET['page'], $_GET['page'], true); + // les données des albums sont dans le dossier discographie + if($_GET['page'] === 'album') + { + $Image->setFolder('discographie'); + } + $Image->upload(); echo($Image->reponseAjax); // attendu par l'éditeur diff --git a/controller/ckeditor.php b/controller/ckeditor.php index 3e14494..f73107d 100644 --- a/controller/ckeditor.php +++ b/controller/ckeditor.php @@ -44,46 +44,28 @@ function submitCKeditor() // POST de l'éditeur if(isset($_POST['contenu'])) // optionnel pour discographie { - $contenu = Security::secureString($_POST['contenu']); + $html = Security::secureString($_POST['contenu']); // liens sans http:// devant - $contenu = fixLinks($contenu); + $html = fixLinks($html); // récupérer les liens multimedia //require("media.php"); - //$contenu = mediaSubmit($contenu); + //$html = mediaSubmit($html); // ne pas continuer si la variable est vide (javascript mal supporté ou utilisation de IE, bug?, erreur de l'utilisateur), risque perte de contenu !! - if($_GET['page'] != 'discographie' && $contenu == '') + if($_GET['page'] != 'discographie' && $_GET['page'] != 'album' && $html == '') { - header('Location: index.php?page=' . $_GET['page'] . '&erreur=contenu_vide'); + header('Location: index.php?page=' . $_GET['page'] . '&erreur=contenu_editeur_vide'); exit(); } } - // pages avec des articles simples (melaine...) - if($_GET['page'] != 'discographie') - { - $Article = new Article($_GET['page']); - - if(!isset($_SESSION['target']) || $_SESSION['target'] == '') - { - $Article->create($contenu); - - // create html-mini - } - else - { - $Article->fileCode = $_SESSION['target']; // erreur ici? - $Article->update($contenu); - - // update html-mini - } - } + // page discographie - else if($_GET['page'] == 'discographie') + if($_GET['page'] === 'discographie' || $_GET['page'] === 'album') { - $Album = new Album($_GET['page']); + $Album = new Album($_GET['page'], 'discographie'); // on retrouve les données si nécessaire if(isset($_SESSION['target']) && $_SESSION['target'] != '') @@ -117,7 +99,7 @@ function submitCKeditor() if(!empty($_POST['contenu'])) { $Album->format = 'html'; - $Album->create($contenu); + $Album->create($html); } } // modification @@ -131,16 +113,50 @@ function submitCKeditor() $Album->updateVignetteJSON($nouveauTitre, $nouvelleAnnee, $nouvellePochette, $nouvellePochetteMini); // page de l'album - // si $contenu est vide, le fichier est supprimé + // si $html est vide, le fichier est supprimé $Album->format = 'html'; - $Album->update($contenu); + $Album->update($html); + } + } + // pages avec des articles simples (melaine...) + //if($_GET['page'] != 'discographie') + else + { + $Article = new Article($_GET['page'], $_GET['page']); + + if(!isset($_SESSION['target']) || $_SESSION['target'] === '') + { + $Article->create($html); + + // create html-mini + } + else + { + $Article->fileCode = $_SESSION['target']; // erreur ici? + $Article->update($html); + + // update html-mini } } // nettoyage unset($_SESSION['target']); - unset($_GET['action']); - unset($_POST['contenu']); - header('Location: index.php?page=' . $_GET['page']); + + if($_GET['page'] === 'discographie' || $_GET['page'] === 'album') + { + if($html === '') + { + $redirection = 'index.php?page=discographie'; + } + else + { + $redirection = 'index.php?page=album&file_code=' . $Album->fileCode; + } + } + else + { + $redirection = 'index.php?page=' . $_GET['page']; + } + header('Location: ' . $redirection); exit(); } diff --git a/controller/visitor.php b/controller/visitor.php index d03197d..92f3db7 100644 --- a/controller/visitor.php +++ b/controller/visitor.php @@ -21,7 +21,7 @@ function accueil() function pageArticlesSimplesVisitor(string $page, string $title, string $headerPaintedTitle) { // infos sur les fichiers $Articles->fileList - $Articles = new Article($page); + $Articles = new Article($page, $page); // données des dates //print_r($Articles->fileList[$i]['date']); @@ -115,14 +115,16 @@ function legalVisitor() } -// page plus complexe que les autres + +// page complexe avec albums et articles +// cas où on ne fait rien, même en en mode admin function discoVisitor() { - $page = "discographie"; + $page = $_GET['page']; $title = "Discographie"; // modèle - $Albums = new Album($page); + $Albums = new Album($page, $page); //var_dump($Albums->fileList); die(); // on récupère tout: JSON, HTML, noms et chemins des fichiers @@ -148,7 +150,7 @@ function discoVisitor() $avecLien[$i] = false; $linkDiscoChrono[$i] = 'noLinkChrono'; // pour le css } - $lienBoutonModif[$i] = 'page=discographie&action=edition&file_code=' . $Albums->fileList[$i]['fileCode'] . '#' . $Albums->fileList[$i]['fileCode']; + $lienBoutonModif[$i] = 'page=album&action=edition&file_code=' . $Albums->fileList[$i]['fileCode']; } // variables $css, $js et $content @@ -158,11 +160,11 @@ function discoVisitor() } // page d'un album -function album($fileCode) +function albumVisitor($fileCode) { - $page = 'discographie'; // = nom du dossier où sont les données + $page = $_GET['page']; + $Albums = new Album($page, 'discographie'); - $Albums = new Album($page); $Albums->getAllJSON(); if(!empty($Albums->fileList)) { @@ -174,6 +176,7 @@ function album($fileCode) $title = $Albums->oneAlbum['titre']; $album = $Albums->oneAlbum['HTMLcontent']; + // création des liens: menu déroulant et section principale for($i = 0; $i < $Albums->fileListCount; $i++) { if(file_exists('data/discographie/html/' . $Albums->fileList[$i]['fileCode'] . '.html')) diff --git a/index.php b/index.php index 66b2f89..14371e5 100644 --- a/index.php +++ b/index.php @@ -40,7 +40,7 @@ if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 require('controller/Security.php'); // sécurité des chaines require('model/Article.php'); - if($_GET['page'] == 'discographie') + if($_GET['page'] === 'discographie' || $_GET['page'] === 'album') { require('model/Album.php'); } @@ -174,31 +174,28 @@ if(isset($_GET['page'])) $fonctionVisitor(); } - if($_GET['page'] == 'melaine') - {} + //if($_GET['page'] === 'melaine'){} } // page discographie (avec albums et articles) - elseif($_GET['page'] == 'discographie') + elseif($_GET['page'] === 'discographie') { - // rédaction + // nouvel album if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'edition') { - // modification - if(isset($_GET['file_code']) || !empty($_GET['file_code'])) - { - discoEdit($_GET['file_code'], 0); - } - // nouvel article - else + if(!isset($_GET['file_code']) || empty($_GET['file_code'])) { // par sécurité unset($_GET['file_code']); - discoEdit('', 0); + albumEdit('', 0); + } + else + { + discoVisitor(); } } // modification d'un positions.json (version sans JS) - else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'monter') + elseif($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] === 'monter') { if(isset($_GET['file_code']) && !empty($_GET['file_code'])) { @@ -211,11 +208,11 @@ if(isset($_GET['page'])) discoVisitor(); } } - else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'descendre') + elseif($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] === 'descendre') { if(isset($_GET['file_code']) && !empty($_GET['file_code'])) { - // 0 pour descendre + // -1 pour descendre inversionPositions($_GET['page'], $_GET['file_code'], 'Album', -1); discoVisitor(); } @@ -227,7 +224,14 @@ if(isset($_GET['page'])) // suppression else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') { - discoEdit($_GET['file_code'], 1); + if(isset($_GET['file_code']) && !empty($_GET['file_code'])) + { + albumEdit($_GET['file_code'], 1); + } + else + { + discoVisitor(); + } } else { @@ -235,10 +239,40 @@ if(isset($_GET['page'])) } } // page d'un album de la discographie - // page visiteur uniquement elseif($_GET['page'] == 'album') { - album($_GET['file_code']); + // page d'aucun album + if(!isset($_GET['file_code']) || $_GET['file_code'] == '') + { + header('Location: index.php?page=discographie'); + } + + if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'edition') + { + // modification + if(isset($_GET['file_code']) || !empty($_GET['file_code'])) + { + albumEdit($_GET['file_code'], 0); + } + // suppression + else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') + { + albumEdit($_GET['file_code'], 1); + } + // on fait rien + else + { + // par sécurité + unset($_GET['file_code']); + + //albumEdit('', 0); + discoVisitor(); + } + } + else + { + albumVisitor($_GET['file_code']); + } } // page connexion elseif($_GET['page'] == 'connexion') diff --git a/model/Album.php b/model/Album.php index b4b7afe..d2537f7 100644 --- a/model/Album.php +++ b/model/Album.php @@ -5,12 +5,12 @@ class Album extends Article { public $oneAlbum; - public function __construct($page) + public function __construct(string $page, string $folder) { $this->format = 'json'; // vaut 'html' dans la classe mère // pour: page, fileCode, time et makeFileList() - parent::__construct($page); + parent::__construct($page, $folder); } // GET @@ -49,7 +49,7 @@ class Album extends Article // télécharger la pochette require('model/Image.php'); - $Image = new Image(false); + $Image = new Image($this->page, $this->folder, false); $Image->upload(); $Image->makeThumbnail(201); @@ -61,7 +61,7 @@ class Album extends Article $albumJSON = json_encode([$titre, $annee, $pochette, $pochetteMini]); //var_dump($albumJSON); die(); - $nom_fichier = 'data/' . $this->page . '/' . $this->format . '/' . $this->time . '.' . $this->format; + $nom_fichier = 'data/' . $this->folder . '/' . $this->format . '/' . $this->time . '.' . $this->format; $fichier = fopen($nom_fichier, 'w'); // w pour créer ou écraser fputs($fichier, $albumJSON); @@ -95,9 +95,9 @@ class Album extends Article $this->fileList[$i]['pochetteMini'] = $content[3]; // ajout du HTML si il existe - if(file_exists('data/' . $this->page . '/' . $this->format . '/' . $this->fileList[$i]['fileCode'] . '.' . $this->format)) + if(file_exists('data/' . $this->folder . '/' . $this->format . '/' . $this->fileList[$i]['fileCode'] . '.' . $this->format)) { - $this->fileList[$i]['HTMLfileName'] = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileList[$i]['fileCode'] . '.' . $this->format; + $this->fileList[$i]['HTMLfileName'] = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileList[$i]['fileCode'] . '.' . $this->format; $this->fileList[$i]['HTMLcontent'] = file_get_contents($this->fileList[$i]['HTMLfileName']); } // utile? @@ -120,7 +120,7 @@ class Album extends Article { // json $this->oneAlbum['fileCode'] = $this->fileList[$i]['fileCode']; - $this->oneAlbum['fileName'] = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; + $this->oneAlbum['fileName'] = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; $this->oneAlbum['content'] = file_get_contents($this->fileList[$i]['fileName']); $content = json_decode($this->oneAlbum['content']); $this->oneAlbum['titre'] = $content[0]; @@ -130,9 +130,9 @@ class Album extends Article // html $this->format = 'html'; - if(file_exists('data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)) + if(file_exists('data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)) { - $this->oneAlbum['HTMLfileName'] = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; + $this->oneAlbum['HTMLfileName'] = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; $this->oneAlbum['HTMLcontent'] = file_get_contents($this->oneAlbum['HTMLfileName']); } } @@ -175,7 +175,7 @@ class Album extends Article { // télécharger la pochette require('model/Image.php'); - $Image = new Image(false); + $Image = new Image($this->page, $this->folder, false); $Image->upload(); $Image->makeThumbnail(201); $erreur = $Image->erreur; @@ -203,7 +203,7 @@ class Album extends Article { parent::delete(); // json - if(file_exists('data/' . $this->page . '/html/' . $this->fileCode . '.' . $this->format)); + if(file_exists('data/' . $this->folder . '/html/' . $this->fileCode . '.' . $this->format)); { $this->format = 'html'; parent::delete(); // html diff --git a/model/Article.php b/model/Article.php index 33848bb..2ea80f8 100644 --- a/model/Article.php +++ b/model/Article.php @@ -9,7 +9,8 @@ class Article { // pour tous les articles - public $page; // page et donc dossier concerné + public $page; // page du site + public $folder; // dossier des données (vaut souvent $page) public $format = 'html'; // 'html' ou 'json' public $fileListCount; // pour les boucles "for" // pas de "foreach", on a besoin des compteurs $i @@ -20,20 +21,29 @@ class Article public $fileCode = ''; // $_SESSION['target'] protected $time; // timestamp pour noms des fichiers créés - public function __construct($page) + public function __construct(string $page, string $folder) { $this->page = $page; + $this->folder = $folder; $this->time = time(); $this->makeFileList(); } + // GET + + // SET + public function setFolder(string $folder) + { + $this->folder = $folder; + } + // tableaux des noms des fichiers // noter que le chemin et l'extension ne varient pas public function makeFileList() { // noms des fichiers // globbing = utiliser un pattern pour cibler des fichiers - $nameList = glob('data/' . $this->page . '/' . $this->format . '/*.' . $this->format); + $nameList = glob('data/' . $this->folder . '/' . $this->format . '/*.' . $this->format); $this->fileListCount = count($nameList); @@ -77,10 +87,10 @@ class Article private function readPositionsJSON() // retourne array ou NULL { - if(file_exists('data/' . $this->page . '/positions.json')) + if(file_exists('data/' . $this->folder . '/positions.json')) { // "true" pour retourner un tableau et non un objet - $positions = json_decode(file_get_contents('data/' . $this->page . '/positions.json'), true); + $positions = json_decode(file_get_contents('data/' . $this->folder . '/positions.json'), true); } return $positions; } @@ -105,7 +115,7 @@ class Article $positions[$this->fileList[$i]['fileCode']] = $this->fileList[$i]['position']; } - file_put_contents('data/' . $this->page . '/positions.json', json_encode($positions)); + file_put_contents('data/' . $this->folder . '/positions.json', json_encode($positions)); } private function sortFileListByPositions() @@ -157,10 +167,6 @@ class Article return $content; } - - // GET - - // SET // fonctions CRUD (create - read - update - delete) @@ -177,7 +183,7 @@ class Article { // html version images normales $contentMaxi = $content; - $fileName = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->time . '.' . $this->format; + $fileName = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->time . '.' . $this->format; $file = fopen($fileName, 'w'); // w pour créer ou écraser fputs($file, $contentMaxi); fclose($file); @@ -187,7 +193,7 @@ class Article $content = self::makeHtmlMiniImages($content); } - $fileName = 'data/' . $this->page . '/' . $this->format . '/' . $this->time . '.' . $this->format; + $fileName = 'data/' . $this->folder . '/' . $this->format . '/' . $this->time . '.' . $this->format; $file = fopen($fileName, 'w'); // w pour créer ou écraser fputs($file, $content); fclose($file); @@ -207,7 +213,7 @@ class Article } public function readOne() { - return(file_get_contents('data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)); + return(file_get_contents('data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)); } // update @@ -217,7 +223,7 @@ class Article { // html version images normales $contentMaxi = $content; - $fileName = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; + $fileName = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; if(file_exists($fileName) && empty($content)) { $this->delete(); @@ -235,7 +241,7 @@ class Article } // json ou html version petites images - $fileName = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; + $fileName = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; if(file_exists($fileName) && empty($content)) { $this->delete(); @@ -252,11 +258,11 @@ class Article // delete public function delete() { - $path = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; + $path = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; unlink($path); // fichiers html dans html-maxi-images - $path_maxi = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; + $path_maxi = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; if(file_exists($path_maxi)) { unlink($path_maxi); diff --git a/model/Image.php b/model/Image.php index 1cc0e22..d71b96a 100644 --- a/model/Image.php +++ b/model/Image.php @@ -4,6 +4,7 @@ class Image { private $page; + private $folder; private $ajax; // vaut true avec le ckeditor public $reponseAjax; @@ -13,18 +14,25 @@ class Image public $pathInfos; public $erreur; - public function __construct($ajax) + public function __construct(string $page, string $folder, bool $ajax) { - // get envoyé avec le javascript $this->ajax = $ajax; - $this->page = $_GET['page']; - $this->path = 'data/' . $this->page . '/images/'; - $this->pathMini = 'data/' . $this->page . '/images-mini/'; + $this->page = $page; + $this->folder = $folder; + $this->path = 'data/' . $this->folder . '/images/'; + $this->pathMini = 'data/' . $this->folder . '/images-mini/'; } // GET // SET + public function setFolder(string $folder) + { + $this->folder = $folder; + $this->path = 'data/' . $this->folder . '/images/'; + $this->pathMini = 'data/' . $this->folder . '/images-mini/'; + } + public function upload() { @@ -55,7 +63,7 @@ class Image if($this->ajax && empty($Image->erreur)) { // chemin en JSON attendu par l'éditeur - $this->reponseAjax = '{"url": "data/' . $this->page . '/images/' . $_FILES['upload']['name'] . '"}'; + $this->reponseAjax = '{"url": "data/' . $this->folder . '/images/' . $_FILES['upload']['name'] . '"}'; } } @@ -108,7 +116,7 @@ class Image // message d'erreur $_SESSION['erreur'] = addslashes("Echec de la création d'une miniature. Vérifier le fichier config.php"); - header('Location: index.php?page=' . $this->page . '&erreur=dependance_bibli_images'); + header('Location: index.php?page=' . $this->folder . '&erreur=dependance_bibli_images'); exit(); } } diff --git a/view/album.php b/view/album.php index 47d771f..e2989dc 100644 --- a/view/album.php +++ b/view/album.php @@ -15,6 +15,14 @@ ob_start(); ?> + +fileListCount; $i++) -
+ +
> +

Modifier cet album

+ + +
+

- + + + + + Retour à la discographie +

+ +

Retour à la discographie

fileListCount; $i++) // éditeur ou bouton "Nouvel album" if($_SESSION['admin'] == 1) { - if(isset($_GET['action']) && $_GET['action'] == 'edition' && $fileCode == '') + if(isset($_GET['action']) && $_GET['action'] === 'edition' && $fileCode === '') { $style = 'class="articleAvecEditeur"'; ?> @@ -112,9 +112,9 @@ for($i = 0; $i < $Albums->fileListCount; $i++) ?>
> fileList[$i]['fileCode'] == $fileCode) { ?> diff --git a/view/template-formulaires.php b/view/template-formulaires.php index 01f86c2..be51df6 100644 --- a/view/template-formulaires.php +++ b/view/template-formulaires.php @@ -43,9 +43,9 @@ ob_start(); ?>
- + Infos qui seront affichées dans la page spécifique à cet album:

"); } @@ -53,7 +53,7 @@ if($page == 'discographie') - + diff --git "a/\303\240 faire apr\303\250s livraison.txt" "b/\303\240 faire apr\303\250s livraison.txt" index 5037312..8c95b2f 100644 --- "a/\303\240 faire apr\303\250s livraison.txt" +++ "b/\303\240 faire apr\303\250s livraison.txt" @@ -1,6 +1,13 @@ +empêcher de monter ou descendre à nouveau un élément en rechargeant la page +-> solution 1: rediriger vers la même page sans action dans l'url après le déplacement +-> solution 2: déplacement AJAX avec javascript +ne remplace pas la solution 1 qui doit toujours fonctionner + +infobulles en mode admin + bouton partage et lien d'encre sur tous les articles -barre de défilement au menu déroulant de la discographie (penser aussi à le rendre moins moche) +menu déroulant de la discographie de longueur fixe et avec barre de défilement en CSS (penser aussi à le rendre moins moche) miniatures albums, le même fichier est utilisé pour la pochette et dans la page album, la miniature de l'une écrase celle de l'autre (problème: les dimensions des deux miniatures sont censées être différentes) @@ -11,13 +18,15 @@ images d'en-tête svg? trouver mieux que la police "comic sans MS" dans les images de BD +quand un article ou album est ajouté, le mentionner pendant une semaine dans la section actualité de la page menu + images des articles en grand et miniature, Zoom sur images (articles) affichage avec javascript OU au moins dans une "page" dotée d'un bouton pour sortir (avec GD? avec imagemagick?) galerie en css (ou/et en javascript) pour les peintures de bateau https://www.guyom-design.com/blog/astuces/css/tuto_diapo_css/ -hyperlien avec liens relatifs (par exemple dans emoi des mots) +hyperlien avec liens relatifs (par exemple dans emoi des mots qui doit pointer vers la presse) créer page musique -- cgit v1.2.3