From 66ee0f5f5416aed9f7a7264f18ae6bdf4c8ed50f Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 19 Jul 2022 13:43:33 +0200 Subject: miniatures articles 1 --- controller/ajax.php | 7 ++++++- controller/ckeditor.php | 20 +++++++++++--------- controller/installation.php | 9 +++++++++ model/Article.php | 29 ++++++----------------------- model/Image.php | 10 ++++++++-- public/css/menu.css | 32 ++++++++++++++++++++++++-------- view/articlesContent.php | 20 ++++++++++---------- 7 files changed, 74 insertions(+), 53 deletions(-) diff --git a/controller/ajax.php b/controller/ajax.php index 489e814..13f5c08 100644 --- a/controller/ajax.php +++ b/controller/ajax.php @@ -19,10 +19,15 @@ if(isset($_GET['action']) && isset($_GET['page']) && $_GET['action'] == 'upload_ $Image = new Image(true); $Image->upload(); echo($Image->reponseAjax); // attendu par l'éditeur + + $Image->makeThumbnail(630); // => taille de la
+ // on pourra l'agrandir en cliquant dessus + // code exécuté alors que l'utilisateur récupère la main } - exit; // stop !! + exit(); // stop !! } + // page restauration quand le fichier zip est lourd // -> input file onchange if(isset($_GET['action']) && $_GET['action'] == 'restauration' diff --git a/controller/ckeditor.php b/controller/ckeditor.php index 43fd2e2..3e14494 100644 --- a/controller/ckeditor.php +++ b/controller/ckeditor.php @@ -34,12 +34,10 @@ function preparationCKeditor($html) // réception du HTML créé par l'éditeur function submitCKeditor() { - $page = $_GET['page']; - // déjà fait mais on ne sait jamais if(!isset($_SESSION['admin']) || $_SESSION['admin'] != 1) { - header('Location: index.php?page=' . $page . '&erreur=connexion'); + header('Location: index.php?page=' . $_GET['page'] . '&erreur=connexion'); exit(); } @@ -56,32 +54,36 @@ function submitCKeditor() //$contenu = mediaSubmit($contenu); // 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($page != 'discographie' && $contenu == '') + if($_GET['page'] != 'discographie' && $contenu == '') { - header('Location: index.php?page=' . $page . '&erreur=contenu_vide'); + header('Location: index.php?page=' . $_GET['page'] . '&erreur=contenu_vide'); exit(); } } // pages avec des articles simples (melaine...) - if($page != 'discographie') + if($_GET['page'] != 'discographie') { - $Article = new Article($page); + $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($page == 'discographie') + else if($_GET['page'] == 'discographie') { - $Album = new Album($page); + $Album = new Album($_GET['page']); // on retrouve les données si nécessaire if(isset($_SESSION['target']) && $_SESSION['target'] != '') diff --git a/controller/installation.php b/controller/installation.php index b2a687c..3745189 100644 --- a/controller/installation.php +++ b/controller/installation.php @@ -77,6 +77,15 @@ function installation() { createIndexPHP('data/' . $page . '/html/index.php', $droitsFichiers); } + if(!file_exists('data/' . $page . '/html-mini-images')) + { + mkdir('data/' . $page . '/html-mini-images'); + chmod('data/' . $page . '/html-mini-images', $droitsDossiers); + } + if(!file_exists('data/' . $page . '/html-mini-images/index.php')) + { + createIndexPHP('data/' . $page . '/html-mini-images/index.php', $droitsFichiers); + } if(!file_exists('data/' . $page . '/images')) { mkdir('data/' . $page . '/images'); diff --git a/model/Article.php b/model/Article.php index 4063feb..f9c5b89 100644 --- a/model/Article.php +++ b/model/Article.php @@ -1,27 +1,9 @@ [$fileCode => 'code', $fileName => 'nom, $content => 'contenu'], - -// - un tableau associatif contenant des tableaux simples -// les catégories sont au premier niveau -// mauvaise idée, risque de croiser les fichiers -// $fileList['fileCode'] => [$fileCode1, $fileCode2] -// $fileList['fileName'] => [$fileName1, $fileName2], etc - -// - un tableau associatif contenant des tableaux associatifs -// les catégories sont au deuxième niveau -// $fileList[$fileCode] => [$fileName => 'code', $content => 'contenu'], etc - - -// ma struture est mauvaise, elle n'est pas très orientée objet -// créer une classe structure de données -// celle-ci sera instanciée dans la première (ou pas du tout) -// et accesssible avec des GET et des SET +// éventuellement: utiliser une classe structure de données +// accesssible avec des GET et des SET +// à voir alors si on utilise des variables statiques class Article @@ -70,13 +52,13 @@ class Article // GET // SET - public function setFileName() + /*public function setFileName() { if(file_exists('data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)) { $this->fileName = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; } - } + }*/ // fonctions CRUD (create - read - update - delete) @@ -103,6 +85,7 @@ class Article { $this->fileList[$i]['content'] = file_get_contents($this->fileList[$i]['fileName']); } + //var_dump($this->fileList); die(); } public function readOne() { diff --git a/model/Image.php b/model/Image.php index 59665e9..61f25c6 100644 --- a/model/Image.php +++ b/model/Image.php @@ -67,8 +67,14 @@ class Image if($imageLibrary == 'imagick') { $Image = new Imagick($this->path . $_FILES['upload']['name']); - // 0 signifie qu'on conserve les proportions - $Image->thumbnailImage($largeur, 0); + + $source = $Image->getImageGeometry(); + if($source['width'] > $largeur) + { + // 0 signifie qu'on conserve les proportions + $Image->thumbnailImage($largeur, 0); + } + // écriture dans un fichier $Image->writeImage($this->pathMini . $this->pathInfos['filename'] . '-mini.' . $this->pathInfos['extension']); } diff --git a/public/css/menu.css b/public/css/menu.css index 559a594..28cba08 100644 --- a/public/css/menu.css +++ b/public/css/menu.css @@ -27,9 +27,10 @@ header h3 text-align: center; } -.articleActu > *:not(.boutonArticle) +/*.articleActu > *:not(.boutonArticle)*/ +.articleActu { - max-width: 50%; + /*max-width: 50%;*/ margin: auto; } @@ -75,6 +76,11 @@ header h3 background-image: url("../mouette.png"); } + .articleActu + { + max-width: 50%; + } + #contenu { position: relative; @@ -86,8 +92,8 @@ header h3 height: 588px; } - /* pour IE, - indique la bonne taille du bloc pour que la colonne 2 se place correctement */ + /* pour IE, indique la bonne taille du bloc + pour que la colonne 2 se place correctement */ #colonne1 { min-width: 310px; @@ -175,6 +181,11 @@ header h3 margin: auto; } + .articleActu + { + max-width: 65%; + } + #contenu { position: relative; @@ -186,8 +197,8 @@ header h3 height: 447px; } - /* pour IE, - indique la bonne taille du bloc pour que la colonne 2 se place correctement */ + /* pour IE, indique la bonne taille du bloc + pour que la colonne 2 se place correctement */ #colonne1 { min-width: 237px; @@ -275,6 +286,11 @@ header h3 margin: auto; } + .articleActu + { + max-width: 90%; + } + #contenu { position: relative; @@ -286,8 +302,8 @@ header h3 height: 298px; } - /* pour IE, - indique la bonne taille du bloc pour que la colonne 2 se place correctement */ + /* pour IE, indique la bonne taille du bloc + pour que la colonne 2 se place correctement */ #colonne1 { min-width: 158px; diff --git a/view/articlesContent.php b/view/articlesContent.php index fe71204..5f6b587 100644 --- a/view/articlesContent.php +++ b/view/articlesContent.php @@ -82,20 +82,20 @@ for($i = 0; $i < $Articles->fileListCount; $i++) if($_SESSION['admin'] == 1) { ?> -

- - Modifier cet article - -   - - Supprimer cet article - -

+
+

+ + Modifier cet article + +   + + Supprimer cet article + +

-