diff options
author | polo <contact@ordipolo.fr> | 2023-04-13 03:02:57 +0200 |
---|---|---|
committer | polo <contact@ordipolo.fr> | 2023-04-13 03:02:57 +0200 |
commit | 90b3efeeb9d939303ff80b180725e06e2e57af79 (patch) | |
tree | 5e7de4e34d37988aae95ab26d876faf06d37eedb /controller | |
parent | 95ffc4febd33918a78a65053ee3d39cb19b259b2 (diff) | |
download | melaine-90b3efeeb9d939303ff80b180725e06e2e57af79.zip |
éditeur page album
Diffstat (limited to 'controller')
-rw-r--r-- | controller/admin.php | 60 | ||||
-rw-r--r-- | controller/ajax.php | 10 | ||||
-rw-r--r-- | controller/ckeditor.php | 80 | ||||
-rw-r--r-- | controller/visitor.php | 19 |
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 |
160 | function 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 | ||
169 | function 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) |
274 | function inversionPositions(string $page, $fileCode, string $class, int $direction) | 304 | function 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() | |||
21 | function pageArticlesSimplesVisitor(string $page, string $title, string $headerPaintedTitle) | 21 | function 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 | ||
119 | function discoVisitor() | 121 | function 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 |
161 | function album($fileCode) | 163 | function 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')) |