summaryrefslogtreecommitdiff
path: root/controller
diff options
context:
space:
mode:
authorpolo <contact@ordipolo.fr>2023-04-13 03:02:57 +0200
committerpolo <contact@ordipolo.fr>2023-04-13 03:02:57 +0200
commit90b3efeeb9d939303ff80b180725e06e2e57af79 (patch)
tree5e7de4e34d37988aae95ab26d876faf06d37eedb /controller
parent95ffc4febd33918a78a65053ee3d39cb19b259b2 (diff)
downloadmelaine-90b3efeeb9d939303ff80b180725e06e2e57af79.zip
éditeur page album
Diffstat (limited to 'controller')
-rw-r--r--controller/admin.php60
-rw-r--r--controller/ajax.php10
-rw-r--r--controller/ckeditor.php80
-rw-r--r--controller/visitor.php19
4 files changed, 114 insertions, 55 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
19 } 19 }
20 20
21 // infos sur les fichiers 21 // infos sur les fichiers
22 $Articles = new Article($page); 22 $Articles = new Article($page, $page);
23 23
24 // nouvel article 24 // nouvel article
25 if($fileCode == '') 25 if($fileCode == '')
@@ -47,6 +47,7 @@ function pageArticlesSimplesAdmin(string $page, string $title, string $headerPai
47 $texte = $Articles->readOne(); // entrée de l'éditeur 47 $texte = $Articles->readOne(); // entrée de l'éditeur
48 } 48 }
49 } 49 }
50 $lienBoutonAnnuler = $page;
50 51
51 // ajout des données dans $Articles->fileList['content'] 52 // ajout des données dans $Articles->fileList['content']
52 if(!empty($Articles->fileList)) 53 if(!empty($Articles->fileList))
@@ -58,7 +59,7 @@ function pageArticlesSimplesAdmin(string $page, string $title, string $headerPai
58 // sécurisation du contenu pré-existant inséré dans l'éditeur 59 // sécurisation du contenu pré-existant inséré dans l'éditeur
59 if(!empty($fileCode) && !$suppression) 60 if(!empty($fileCode) && !$suppression)
60 { 61 {
61 $fileCodeArgument = '&article=' . $fileCode; 62 $fileCodeArgument = '&file_code=' . $fileCode;
62 require('controller/ckeditor.php'); 63 require('controller/ckeditor.php');
63 $texte = preparationCKeditor($texte); 64 $texte = preparationCKeditor($texte);
64 } 65 }
@@ -156,15 +157,23 @@ function legalEdit($fileCode, int $suppression)
156} 157}
157 158
158 159
159// page plus complexe que les autres 160// l'éditeur est ouvert dans la page album
160function discoEdit($fileCode, int $suppression) 161// ne servirait que pour les positions
162/*function discoEdit()
161{ 163{
162 $page = "discographie"; 164 inversionPositions();
165}*/
166
167// page complexe avec albums et articles
168// cas où on fait quelque chose: ouvrir l'éditeur, monter, descendre, supprimer
169function albumEdit($fileCode, int $suppression)
170{
171 $page = $_GET['page'];
163 $title = "Discographie"; 172 $title = "Discographie";
164 173
165 // modèle 174 // modèle
166 $Albums = new Album($page); 175 $Albums = new Album($page, 'discographie');
167 $Albums->makeFileList(); 176 //$Albums->makeFileList();
168 177
169 // contenu: JSON, HTML, noms et chemins des fichiers 178 // contenu: JSON, HTML, noms et chemins des fichiers
170 $Albums->readAll(); 179 $Albums->readAll();
@@ -177,6 +186,8 @@ function discoEdit($fileCode, int $suppression)
177 // nouvel album 186 // nouvel album
178 if($fileCode == '') 187 if($fileCode == '')
179 { 188 {
189 $page = 'discographie';
190 $lienBoutonAnnuler = $page;
180 $title = "Ajouter un album"; 191 $title = "Ajouter un album";
181 $imageFormulaire = ''; 192 $imageFormulaire = '';
182 193
@@ -189,9 +200,9 @@ function discoEdit($fileCode, int $suppression)
189 // album ciblé 200 // album ciblé
190 $Albums->fileCode = $fileCode; 201 $Albums->fileCode = $fileCode;
191 202
192 // suppression
193 if($suppression) 203 if($suppression)
194 { 204 {
205 $page = 'discographie';
195 $Albums->delete(); 206 $Albums->delete();
196 header('Location: index.php?page=' . $page); 207 header('Location: index.php?page=' . $page);
197 exit(); 208 exit();
@@ -199,6 +210,8 @@ function discoEdit($fileCode, int $suppression)
199 // modification 210 // modification
200 else 211 else
201 { 212 {
213 $page = 'album';
214 $Albums->readOne();
202 $_SESSION['target'] = $fileCode; 215 $_SESSION['target'] = $fileCode;
203 $title = "Modifier un album"; 216 $title = "Modifier un album";
204 217
@@ -216,7 +229,11 @@ function discoEdit($fileCode, int $suppression)
216 // image affichée à côté des formulaires 229 // image affichée à côté des formulaires
217 if(!empty($vignette[2])) 230 if(!empty($vignette[2]))
218 { 231 {
219 $imageFormulaire = '<img class="imageFormulaire" src="data/' . $page . '/images/' . $vignette[2] . '" ><br/>'; 232 if($page == 'album')
233 {
234 $dossier = 'discographie';
235 }
236 $imageFormulaire = '<img class="imageFormulaire" src="data/' . $dossier . '/images/' . $vignette[2] . '" ><br/>';
220 } 237 }
221 else 238 else
222 { 239 {
@@ -232,7 +249,7 @@ function discoEdit($fileCode, int $suppression)
232 if(!empty($fileCode) && !$suppression && !empty($texte)) 249 if(!empty($fileCode) && !$suppression && !empty($texte))
233 { 250 {
234 // dans l'adresse dans la balise <form> 251 // dans l'adresse dans la balise <form>
235 $fileCodeArgument = '&article=' . $fileCode; 252 $fileCodeArgument = '&file_code=' . $fileCode;
236 253
237 require('controller/ckeditor.php'); 254 require('controller/ckeditor.php');
238 $texte = preparationCKeditor($texte); 255 $texte = preparationCKeditor($texte);
@@ -242,10 +259,16 @@ function discoEdit($fileCode, int $suppression)
242 $fileCodeArgument = ''; 259 $fileCodeArgument = '';
243 } 260 }
244 261
262 // création des liens: menu disco
263 $lienBoutonAnnuler = 'discographie';
245 for($i = 0; $i < $Albums->fileListCount; $i++) 264 for($i = 0; $i < $Albums->fileListCount; $i++)
246 { 265 {
247 if(file_exists('data/discographie/html/' . $Albums->fileList[$i]['fileCode'] . '.html')) 266 if(file_exists('data/discographie/html/' . $Albums->fileList[$i]['fileCode'] . '.html'))
248 { 267 {
268 if($Albums->fileList[$i]['fileCode'] === $fileCode)
269 {
270 $lienBoutonAnnuler = $page . '&file_code=' . $fileCode;
271 }
249 $lienAlbum[$i] = 'page=album&file_code=' . $Albums->fileList[$i]['fileCode']; 272 $lienAlbum[$i] = 'page=album&file_code=' . $Albums->fileList[$i]['fileCode'];
250 $avecLien[$i] = true; 273 $avecLien[$i] = true;
251 $linkDiscoChrono[$i] = 'linkChrono'; // css 274 $linkDiscoChrono[$i] = 'linkChrono'; // css
@@ -256,7 +279,7 @@ function discoEdit($fileCode, int $suppression)
256 $avecLien[$i] = false; 279 $avecLien[$i] = false;
257 $linkDiscoChrono[$i] = 'noLinkChrono'; // css 280 $linkDiscoChrono[$i] = 'noLinkChrono'; // css
258 } 281 }
259 $lienBoutonModif[$i] = 'page=discographie&action=edition&file_code=' . $Albums->fileList[$i]['fileCode'] . '#' . $Albums->fileList[$i]['fileCode']; 282 $lienBoutonModif[$i] = 'page=album&action=edition&file_code=' . $Albums->fileList[$i]['fileCode'];
260 } 283 }
261 284
262 // morceaux en HTML à assembler 285 // morceaux en HTML à assembler
@@ -264,7 +287,14 @@ function discoEdit($fileCode, int $suppression)
264 require('view/template-formulaires.php'); 287 require('view/template-formulaires.php');
265 // variables $css, $js, $header et $content, 288 // variables $css, $js, $header et $content,
266 // $content contient ???? et $editeurHTML 289 // $content contient ???? et $editeurHTML
267 require('view/discographie.php'); 290 if($page === 'discographie')
291 {
292 require('view/discographie.php');
293 }
294 elseif($page === 'album')
295 {
296 require('view/album.php');
297 }
268 // fin de l'assemblage 298 // fin de l'assemblage
269 require('view/template.php'); 299 require('view/template.php');
270} 300}
@@ -273,7 +303,11 @@ function discoEdit($fileCode, int $suppression)
273// version sans JS (l'autre est dans ajax.php) 303// version sans JS (l'autre est dans ajax.php)
274function inversionPositions(string $page, $fileCode, string $class, int $direction) 304function inversionPositions(string $page, $fileCode, string $class, int $direction)
275{ 305{
276 $Object = new $class($page); 306 $Object = new $class($page, $page);
307 if($page === 'album')
308 {
309 $Object->setFolder('discographie');
310 }
277 $Object->fileCode = $fileCode; 311 $Object->fileCode = $fileCode;
278 // direction: 1 = monter, -1 = descendre 312 // direction: 1 = monter, -1 = descendre
279 $Object->inversionPositions($direction); 313 $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_
17 else 17 else
18 { 18 {
19 require('model/Image.php'); 19 require('model/Image.php');
20 // paramètre "true" parce qu'on reçoit une requête AJAX 20 // vaut "true" parce qu'on reçoit une requête AJAX
21 $Image = new Image(true); 21 $Image = new Image($_GET['page'], $_GET['page'], true);
22 // les données des albums sont dans le dossier discographie
23 if($_GET['page'] === 'album')
24 {
25 $Image->setFolder('discographie');
26 }
27
22 $Image->upload(); 28 $Image->upload();
23 29
24 echo($Image->reponseAjax); // attendu par l'éditeur 30 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()
44 // POST de l'éditeur 44 // POST de l'éditeur
45 if(isset($_POST['contenu'])) // optionnel pour discographie 45 if(isset($_POST['contenu'])) // optionnel pour discographie
46 { 46 {
47 $contenu = Security::secureString($_POST['contenu']); 47 $html = Security::secureString($_POST['contenu']);
48 48
49 // liens sans http:// devant 49 // liens sans http:// devant
50 $contenu = fixLinks($contenu); 50 $html = fixLinks($html);
51 51
52 // récupérer les liens multimedia 52 // récupérer les liens multimedia
53 //require("media.php"); 53 //require("media.php");
54 //$contenu = mediaSubmit($contenu); 54 //$html = mediaSubmit($html);
55 55
56 // ne pas continuer si la variable est vide (javascript mal supporté ou utilisation de IE, bug?, erreur de l'utilisateur), risque perte de contenu !! 56 // ne pas continuer si la variable est vide (javascript mal supporté ou utilisation de IE, bug?, erreur de l'utilisateur), risque perte de contenu !!
57 if($_GET['page'] != 'discographie' && $contenu == '') 57 if($_GET['page'] != 'discographie' && $_GET['page'] != 'album' && $html == '')
58 { 58 {
59 header('Location: index.php?page=' . $_GET['page'] . '&erreur=contenu_vide'); 59 header('Location: index.php?page=' . $_GET['page'] . '&erreur=contenu_editeur_vide');
60 exit(); 60 exit();
61 } 61 }
62 } 62 }
63 63
64 // pages avec des articles simples (melaine...) 64
65 if($_GET['page'] != 'discographie')
66 {
67 $Article = new Article($_GET['page']);
68
69 if(!isset($_SESSION['target']) || $_SESSION['target'] == '')
70 {
71 $Article->create($contenu);
72
73 // create html-mini
74 }
75 else
76 {
77 $Article->fileCode = $_SESSION['target']; // erreur ici?
78 $Article->update($contenu);
79
80 // update html-mini
81 }
82 }
83 // page discographie 65 // page discographie
84 else if($_GET['page'] == 'discographie') 66 if($_GET['page'] === 'discographie' || $_GET['page'] === 'album')
85 { 67 {
86 $Album = new Album($_GET['page']); 68 $Album = new Album($_GET['page'], 'discographie');
87 69
88 // on retrouve les données si nécessaire 70 // on retrouve les données si nécessaire
89 if(isset($_SESSION['target']) && $_SESSION['target'] != '') 71 if(isset($_SESSION['target']) && $_SESSION['target'] != '')
@@ -117,7 +99,7 @@ function submitCKeditor()
117 if(!empty($_POST['contenu'])) 99 if(!empty($_POST['contenu']))
118 { 100 {
119 $Album->format = 'html'; 101 $Album->format = 'html';
120 $Album->create($contenu); 102 $Album->create($html);
121 } 103 }
122 } 104 }
123 // modification 105 // modification
@@ -131,16 +113,50 @@ function submitCKeditor()
131 $Album->updateVignetteJSON($nouveauTitre, $nouvelleAnnee, $nouvellePochette, $nouvellePochetteMini); 113 $Album->updateVignetteJSON($nouveauTitre, $nouvelleAnnee, $nouvellePochette, $nouvellePochetteMini);
132 114
133 // page de l'album 115 // page de l'album
134 // si $contenu est vide, le fichier est supprimé 116 // si $html est vide, le fichier est supprimé
135 $Album->format = 'html'; 117 $Album->format = 'html';
136 $Album->update($contenu); 118 $Album->update($html);
119 }
120 }
121 // pages avec des articles simples (melaine...)
122 //if($_GET['page'] != 'discographie')
123 else
124 {
125 $Article = new Article($_GET['page'], $_GET['page']);
126
127 if(!isset($_SESSION['target']) || $_SESSION['target'] === '')
128 {
129 $Article->create($html);
130
131 // create html-mini
132 }
133 else
134 {
135 $Article->fileCode = $_SESSION['target']; // erreur ici?
136 $Article->update($html);
137
138 // update html-mini
137 } 139 }
138 } 140 }
139 141
140 // nettoyage 142 // nettoyage
141 unset($_SESSION['target']); 143 unset($_SESSION['target']);
142 unset($_GET['action']); 144
143 unset($_POST['contenu']); 145 if($_GET['page'] === 'discographie' || $_GET['page'] === 'album')
144 header('Location: index.php?page=' . $_GET['page']); 146 {
147 if($html === '')
148 {
149 $redirection = 'index.php?page=discographie';
150 }
151 else
152 {
153 $redirection = 'index.php?page=album&file_code=' . $Album->fileCode;
154 }
155 }
156 else
157 {
158 $redirection = 'index.php?page=' . $_GET['page'];
159 }
160 header('Location: ' . $redirection);
145 exit(); 161 exit();
146} 162}
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()
21function pageArticlesSimplesVisitor(string $page, string $title, string $headerPaintedTitle) 21function pageArticlesSimplesVisitor(string $page, string $title, string $headerPaintedTitle)
22{ 22{
23 // infos sur les fichiers $Articles->fileList 23 // infos sur les fichiers $Articles->fileList
24 $Articles = new Article($page); 24 $Articles = new Article($page, $page);
25 25
26 // données des dates 26 // données des dates
27 //print_r($Articles->fileList[$i]['date']); 27 //print_r($Articles->fileList[$i]['date']);
@@ -115,14 +115,16 @@ function legalVisitor()
115} 115}
116 116
117 117
118// page plus complexe que les autres 118
119// page complexe avec albums et articles
120// cas où on ne fait rien, même en en mode admin
119function discoVisitor() 121function discoVisitor()
120{ 122{
121 $page = "discographie"; 123 $page = $_GET['page'];
122 $title = "Discographie"; 124 $title = "Discographie";
123 125
124 // modèle 126 // modèle
125 $Albums = new Album($page); 127 $Albums = new Album($page, $page);
126 //var_dump($Albums->fileList); die(); 128 //var_dump($Albums->fileList); die();
127 129
128 // on récupère tout: JSON, HTML, noms et chemins des fichiers 130 // on récupère tout: JSON, HTML, noms et chemins des fichiers
@@ -148,7 +150,7 @@ function discoVisitor()
148 $avecLien[$i] = false; 150 $avecLien[$i] = false;
149 $linkDiscoChrono[$i] = 'noLinkChrono'; // pour le css 151 $linkDiscoChrono[$i] = 'noLinkChrono'; // pour le css
150 } 152 }
151 $lienBoutonModif[$i] = 'page=discographie&action=edition&file_code=' . $Albums->fileList[$i]['fileCode'] . '#' . $Albums->fileList[$i]['fileCode']; 153 $lienBoutonModif[$i] = 'page=album&action=edition&file_code=' . $Albums->fileList[$i]['fileCode'];
152 } 154 }
153 155
154 // variables $css, $js et $content 156 // variables $css, $js et $content
@@ -158,11 +160,11 @@ function discoVisitor()
158} 160}
159 161
160// page d'un album 162// page d'un album
161function album($fileCode) 163function albumVisitor($fileCode)
162{ 164{
163 $page = 'discographie'; // = nom du dossier où sont les données 165 $page = $_GET['page'];
166 $Albums = new Album($page, 'discographie');
164 167
165 $Albums = new Album($page);
166 $Albums->getAllJSON(); 168 $Albums->getAllJSON();
167 if(!empty($Albums->fileList)) 169 if(!empty($Albums->fileList))
168 { 170 {
@@ -174,6 +176,7 @@ function album($fileCode)
174 $title = $Albums->oneAlbum['titre']; 176 $title = $Albums->oneAlbum['titre'];
175 $album = $Albums->oneAlbum['HTMLcontent']; 177 $album = $Albums->oneAlbum['HTMLcontent'];
176 178
179 // création des liens: menu déroulant et section principale
177 for($i = 0; $i < $Albums->fileListCount; $i++) 180 for($i = 0; $i < $Albums->fileListCount; $i++)
178 { 181 {
179 if(file_exists('data/discographie/html/' . $Albums->fileList[$i]['fileCode'] . '.html')) 182 if(file_exists('data/discographie/html/' . $Albums->fileList[$i]['fileCode'] . '.html'))