diff options
-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 | ||||
-rw-r--r-- | index.php | 72 | ||||
-rw-r--r-- | model/Album.php | 22 | ||||
-rw-r--r-- | model/Article.php | 40 | ||||
-rw-r--r-- | model/Image.php | 22 | ||||
-rw-r--r-- | view/album.php | 48 | ||||
-rw-r--r-- | view/discographie.php | 8 | ||||
-rw-r--r-- | view/template-formulaires.php | 6 | ||||
-rw-r--r-- | à faire après 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 | |||
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')) |
@@ -40,7 +40,7 @@ if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 | |||
40 | require('controller/Security.php'); // sécurité des chaines | 40 | require('controller/Security.php'); // sécurité des chaines |
41 | require('model/Article.php'); | 41 | require('model/Article.php'); |
42 | 42 | ||
43 | if($_GET['page'] == 'discographie') | 43 | if($_GET['page'] === 'discographie' || $_GET['page'] === 'album') |
44 | { | 44 | { |
45 | require('model/Album.php'); | 45 | require('model/Album.php'); |
46 | } | 46 | } |
@@ -174,31 +174,28 @@ if(isset($_GET['page'])) | |||
174 | $fonctionVisitor(); | 174 | $fonctionVisitor(); |
175 | } | 175 | } |
176 | 176 | ||
177 | if($_GET['page'] == 'melaine') | 177 | //if($_GET['page'] === 'melaine'){} |
178 | {} | ||
179 | } | 178 | } |
180 | // page discographie (avec albums et articles) | 179 | // page discographie (avec albums et articles) |
181 | elseif($_GET['page'] == 'discographie') | 180 | elseif($_GET['page'] === 'discographie') |
182 | { | 181 | { |
183 | // rédaction | 182 | // nouvel album |
184 | if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'edition') | 183 | if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'edition') |
185 | { | 184 | { |
186 | // modification | 185 | if(!isset($_GET['file_code']) || empty($_GET['file_code'])) |
187 | if(isset($_GET['file_code']) || !empty($_GET['file_code'])) | ||
188 | { | ||
189 | discoEdit($_GET['file_code'], 0); | ||
190 | } | ||
191 | // nouvel article | ||
192 | else | ||
193 | { | 186 | { |
194 | // par sécurité | 187 | // par sécurité |
195 | unset($_GET['file_code']); | 188 | unset($_GET['file_code']); |
196 | 189 | ||
197 | discoEdit('', 0); | 190 | albumEdit('', 0); |
191 | } | ||
192 | else | ||
193 | { | ||
194 | discoVisitor(); | ||
198 | } | 195 | } |
199 | } | 196 | } |
200 | // modification d'un positions.json (version sans JS) | 197 | // modification d'un positions.json (version sans JS) |
201 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'monter') | 198 | elseif($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] === 'monter') |
202 | { | 199 | { |
203 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) | 200 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) |
204 | { | 201 | { |
@@ -211,11 +208,11 @@ if(isset($_GET['page'])) | |||
211 | discoVisitor(); | 208 | discoVisitor(); |
212 | } | 209 | } |
213 | } | 210 | } |
214 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'descendre') | 211 | elseif($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] === 'descendre') |
215 | { | 212 | { |
216 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) | 213 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) |
217 | { | 214 | { |
218 | // 0 pour descendre | 215 | // -1 pour descendre |
219 | inversionPositions($_GET['page'], $_GET['file_code'], 'Album', -1); | 216 | inversionPositions($_GET['page'], $_GET['file_code'], 'Album', -1); |
220 | discoVisitor(); | 217 | discoVisitor(); |
221 | } | 218 | } |
@@ -227,7 +224,14 @@ if(isset($_GET['page'])) | |||
227 | // suppression | 224 | // suppression |
228 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') | 225 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') |
229 | { | 226 | { |
230 | discoEdit($_GET['file_code'], 1); | 227 | if(isset($_GET['file_code']) && !empty($_GET['file_code'])) |
228 | { | ||
229 | albumEdit($_GET['file_code'], 1); | ||
230 | } | ||
231 | else | ||
232 | { | ||
233 | discoVisitor(); | ||
234 | } | ||
231 | } | 235 | } |
232 | else | 236 | else |
233 | { | 237 | { |
@@ -235,10 +239,40 @@ if(isset($_GET['page'])) | |||
235 | } | 239 | } |
236 | } | 240 | } |
237 | // page d'un album de la discographie | 241 | // page d'un album de la discographie |
238 | // page visiteur uniquement | ||
239 | elseif($_GET['page'] == 'album') | 242 | elseif($_GET['page'] == 'album') |
240 | { | 243 | { |
241 | album($_GET['file_code']); | 244 | // page d'aucun album |
245 | if(!isset($_GET['file_code']) || $_GET['file_code'] == '') | ||
246 | { | ||
247 | header('Location: index.php?page=discographie'); | ||
248 | } | ||
249 | |||
250 | if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'edition') | ||
251 | { | ||
252 | // modification | ||
253 | if(isset($_GET['file_code']) || !empty($_GET['file_code'])) | ||
254 | { | ||
255 | albumEdit($_GET['file_code'], 0); | ||
256 | } | ||
257 | // suppression | ||
258 | else if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'suppression') | ||
259 | { | ||
260 | albumEdit($_GET['file_code'], 1); | ||
261 | } | ||
262 | // on fait rien | ||
263 | else | ||
264 | { | ||
265 | // par sécurité | ||
266 | unset($_GET['file_code']); | ||
267 | |||
268 | //albumEdit('', 0); | ||
269 | discoVisitor(); | ||
270 | } | ||
271 | } | ||
272 | else | ||
273 | { | ||
274 | albumVisitor($_GET['file_code']); | ||
275 | } | ||
242 | } | 276 | } |
243 | // page connexion | 277 | // page connexion |
244 | elseif($_GET['page'] == 'connexion') | 278 | 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 | |||
5 | { | 5 | { |
6 | public $oneAlbum; | 6 | public $oneAlbum; |
7 | 7 | ||
8 | public function __construct($page) | 8 | public function __construct(string $page, string $folder) |
9 | { | 9 | { |
10 | $this->format = 'json'; // vaut 'html' dans la classe mère | 10 | $this->format = 'json'; // vaut 'html' dans la classe mère |
11 | 11 | ||
12 | // pour: page, fileCode, time et makeFileList() | 12 | // pour: page, fileCode, time et makeFileList() |
13 | parent::__construct($page); | 13 | parent::__construct($page, $folder); |
14 | } | 14 | } |
15 | 15 | ||
16 | // GET | 16 | // GET |
@@ -49,7 +49,7 @@ class Album extends Article | |||
49 | 49 | ||
50 | // télécharger la pochette | 50 | // télécharger la pochette |
51 | require('model/Image.php'); | 51 | require('model/Image.php'); |
52 | $Image = new Image(false); | 52 | $Image = new Image($this->page, $this->folder, false); |
53 | $Image->upload(); | 53 | $Image->upload(); |
54 | $Image->makeThumbnail(201); | 54 | $Image->makeThumbnail(201); |
55 | 55 | ||
@@ -61,7 +61,7 @@ class Album extends Article | |||
61 | $albumJSON = json_encode([$titre, $annee, $pochette, $pochetteMini]); | 61 | $albumJSON = json_encode([$titre, $annee, $pochette, $pochetteMini]); |
62 | //var_dump($albumJSON); die(); | 62 | //var_dump($albumJSON); die(); |
63 | 63 | ||
64 | $nom_fichier = 'data/' . $this->page . '/' . $this->format . '/' . $this->time . '.' . $this->format; | 64 | $nom_fichier = 'data/' . $this->folder . '/' . $this->format . '/' . $this->time . '.' . $this->format; |
65 | 65 | ||
66 | $fichier = fopen($nom_fichier, 'w'); // w pour créer ou écraser | 66 | $fichier = fopen($nom_fichier, 'w'); // w pour créer ou écraser |
67 | fputs($fichier, $albumJSON); | 67 | fputs($fichier, $albumJSON); |
@@ -95,9 +95,9 @@ class Album extends Article | |||
95 | $this->fileList[$i]['pochetteMini'] = $content[3]; | 95 | $this->fileList[$i]['pochetteMini'] = $content[3]; |
96 | 96 | ||
97 | // ajout du HTML si il existe | 97 | // ajout du HTML si il existe |
98 | if(file_exists('data/' . $this->page . '/' . $this->format . '/' . $this->fileList[$i]['fileCode'] . '.' . $this->format)) | 98 | if(file_exists('data/' . $this->folder . '/' . $this->format . '/' . $this->fileList[$i]['fileCode'] . '.' . $this->format)) |
99 | { | 99 | { |
100 | $this->fileList[$i]['HTMLfileName'] = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileList[$i]['fileCode'] . '.' . $this->format; | 100 | $this->fileList[$i]['HTMLfileName'] = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileList[$i]['fileCode'] . '.' . $this->format; |
101 | $this->fileList[$i]['HTMLcontent'] = file_get_contents($this->fileList[$i]['HTMLfileName']); | 101 | $this->fileList[$i]['HTMLcontent'] = file_get_contents($this->fileList[$i]['HTMLfileName']); |
102 | } | 102 | } |
103 | // utile? | 103 | // utile? |
@@ -120,7 +120,7 @@ class Album extends Article | |||
120 | { | 120 | { |
121 | // json | 121 | // json |
122 | $this->oneAlbum['fileCode'] = $this->fileList[$i]['fileCode']; | 122 | $this->oneAlbum['fileCode'] = $this->fileList[$i]['fileCode']; |
123 | $this->oneAlbum['fileName'] = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; | 123 | $this->oneAlbum['fileName'] = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; |
124 | $this->oneAlbum['content'] = file_get_contents($this->fileList[$i]['fileName']); | 124 | $this->oneAlbum['content'] = file_get_contents($this->fileList[$i]['fileName']); |
125 | $content = json_decode($this->oneAlbum['content']); | 125 | $content = json_decode($this->oneAlbum['content']); |
126 | $this->oneAlbum['titre'] = $content[0]; | 126 | $this->oneAlbum['titre'] = $content[0]; |
@@ -130,9 +130,9 @@ class Album extends Article | |||
130 | 130 | ||
131 | // html | 131 | // html |
132 | $this->format = 'html'; | 132 | $this->format = 'html'; |
133 | if(file_exists('data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)) | 133 | if(file_exists('data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)) |
134 | { | 134 | { |
135 | $this->oneAlbum['HTMLfileName'] = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; | 135 | $this->oneAlbum['HTMLfileName'] = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; |
136 | $this->oneAlbum['HTMLcontent'] = file_get_contents($this->oneAlbum['HTMLfileName']); | 136 | $this->oneAlbum['HTMLcontent'] = file_get_contents($this->oneAlbum['HTMLfileName']); |
137 | } | 137 | } |
138 | } | 138 | } |
@@ -175,7 +175,7 @@ class Album extends Article | |||
175 | { | 175 | { |
176 | // télécharger la pochette | 176 | // télécharger la pochette |
177 | require('model/Image.php'); | 177 | require('model/Image.php'); |
178 | $Image = new Image(false); | 178 | $Image = new Image($this->page, $this->folder, false); |
179 | $Image->upload(); | 179 | $Image->upload(); |
180 | $Image->makeThumbnail(201); | 180 | $Image->makeThumbnail(201); |
181 | $erreur = $Image->erreur; | 181 | $erreur = $Image->erreur; |
@@ -203,7 +203,7 @@ class Album extends Article | |||
203 | { | 203 | { |
204 | parent::delete(); // json | 204 | parent::delete(); // json |
205 | 205 | ||
206 | if(file_exists('data/' . $this->page . '/html/' . $this->fileCode . '.' . $this->format)); | 206 | if(file_exists('data/' . $this->folder . '/html/' . $this->fileCode . '.' . $this->format)); |
207 | { | 207 | { |
208 | $this->format = 'html'; | 208 | $this->format = 'html'; |
209 | parent::delete(); // html | 209 | 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 @@ | |||
9 | class Article | 9 | class Article |
10 | { | 10 | { |
11 | // pour tous les articles | 11 | // pour tous les articles |
12 | public $page; // page et donc dossier concerné | 12 | public $page; // page du site |
13 | public $folder; // dossier des données (vaut souvent $page) | ||
13 | public $format = 'html'; // 'html' ou 'json' | 14 | public $format = 'html'; // 'html' ou 'json' |
14 | public $fileListCount; // pour les boucles "for" | 15 | public $fileListCount; // pour les boucles "for" |
15 | // pas de "foreach", on a besoin des compteurs $i | 16 | // pas de "foreach", on a besoin des compteurs $i |
@@ -20,20 +21,29 @@ class Article | |||
20 | public $fileCode = ''; // $_SESSION['target'] | 21 | public $fileCode = ''; // $_SESSION['target'] |
21 | protected $time; // timestamp pour noms des fichiers créés | 22 | protected $time; // timestamp pour noms des fichiers créés |
22 | 23 | ||
23 | public function __construct($page) | 24 | public function __construct(string $page, string $folder) |
24 | { | 25 | { |
25 | $this->page = $page; | 26 | $this->page = $page; |
27 | $this->folder = $folder; | ||
26 | $this->time = time(); | 28 | $this->time = time(); |
27 | $this->makeFileList(); | 29 | $this->makeFileList(); |
28 | } | 30 | } |
29 | 31 | ||
32 | // GET | ||
33 | |||
34 | // SET | ||
35 | public function setFolder(string $folder) | ||
36 | { | ||
37 | $this->folder = $folder; | ||
38 | } | ||
39 | |||
30 | // tableaux des noms des fichiers | 40 | // tableaux des noms des fichiers |
31 | // noter que le chemin et l'extension ne varient pas | 41 | // noter que le chemin et l'extension ne varient pas |
32 | public function makeFileList() | 42 | public function makeFileList() |
33 | { | 43 | { |
34 | // noms des fichiers | 44 | // noms des fichiers |
35 | // globbing = utiliser un pattern pour cibler des fichiers | 45 | // globbing = utiliser un pattern pour cibler des fichiers |
36 | $nameList = glob('data/' . $this->page . '/' . $this->format . '/*.' . $this->format); | 46 | $nameList = glob('data/' . $this->folder . '/' . $this->format . '/*.' . $this->format); |
37 | 47 | ||
38 | $this->fileListCount = count($nameList); | 48 | $this->fileListCount = count($nameList); |
39 | 49 | ||
@@ -77,10 +87,10 @@ class Article | |||
77 | 87 | ||
78 | private function readPositionsJSON() // retourne array ou NULL | 88 | private function readPositionsJSON() // retourne array ou NULL |
79 | { | 89 | { |
80 | if(file_exists('data/' . $this->page . '/positions.json')) | 90 | if(file_exists('data/' . $this->folder . '/positions.json')) |
81 | { | 91 | { |
82 | // "true" pour retourner un tableau et non un objet | 92 | // "true" pour retourner un tableau et non un objet |
83 | $positions = json_decode(file_get_contents('data/' . $this->page . '/positions.json'), true); | 93 | $positions = json_decode(file_get_contents('data/' . $this->folder . '/positions.json'), true); |
84 | } | 94 | } |
85 | return $positions; | 95 | return $positions; |
86 | } | 96 | } |
@@ -105,7 +115,7 @@ class Article | |||
105 | $positions[$this->fileList[$i]['fileCode']] = $this->fileList[$i]['position']; | 115 | $positions[$this->fileList[$i]['fileCode']] = $this->fileList[$i]['position']; |
106 | } | 116 | } |
107 | 117 | ||
108 | file_put_contents('data/' . $this->page . '/positions.json', json_encode($positions)); | 118 | file_put_contents('data/' . $this->folder . '/positions.json', json_encode($positions)); |
109 | } | 119 | } |
110 | 120 | ||
111 | private function sortFileListByPositions() | 121 | private function sortFileListByPositions() |
@@ -157,10 +167,6 @@ class Article | |||
157 | 167 | ||
158 | return $content; | 168 | return $content; |
159 | } | 169 | } |
160 | |||
161 | // GET | ||
162 | |||
163 | // SET | ||
164 | 170 | ||
165 | // fonctions CRUD (create - read - update - delete) | 171 | // fonctions CRUD (create - read - update - delete) |
166 | 172 | ||
@@ -177,7 +183,7 @@ class Article | |||
177 | { | 183 | { |
178 | // html version images normales | 184 | // html version images normales |
179 | $contentMaxi = $content; | 185 | $contentMaxi = $content; |
180 | $fileName = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->time . '.' . $this->format; | 186 | $fileName = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->time . '.' . $this->format; |
181 | $file = fopen($fileName, 'w'); // w pour créer ou écraser | 187 | $file = fopen($fileName, 'w'); // w pour créer ou écraser |
182 | fputs($file, $contentMaxi); | 188 | fputs($file, $contentMaxi); |
183 | fclose($file); | 189 | fclose($file); |
@@ -187,7 +193,7 @@ class Article | |||
187 | $content = self::makeHtmlMiniImages($content); | 193 | $content = self::makeHtmlMiniImages($content); |
188 | } | 194 | } |
189 | 195 | ||
190 | $fileName = 'data/' . $this->page . '/' . $this->format . '/' . $this->time . '.' . $this->format; | 196 | $fileName = 'data/' . $this->folder . '/' . $this->format . '/' . $this->time . '.' . $this->format; |
191 | $file = fopen($fileName, 'w'); // w pour créer ou écraser | 197 | $file = fopen($fileName, 'w'); // w pour créer ou écraser |
192 | fputs($file, $content); | 198 | fputs($file, $content); |
193 | fclose($file); | 199 | fclose($file); |
@@ -207,7 +213,7 @@ class Article | |||
207 | } | 213 | } |
208 | public function readOne() | 214 | public function readOne() |
209 | { | 215 | { |
210 | return(file_get_contents('data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)); | 216 | return(file_get_contents('data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format)); |
211 | } | 217 | } |
212 | 218 | ||
213 | // update | 219 | // update |
@@ -217,7 +223,7 @@ class Article | |||
217 | { | 223 | { |
218 | // html version images normales | 224 | // html version images normales |
219 | $contentMaxi = $content; | 225 | $contentMaxi = $content; |
220 | $fileName = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; | 226 | $fileName = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; |
221 | if(file_exists($fileName) && empty($content)) | 227 | if(file_exists($fileName) && empty($content)) |
222 | { | 228 | { |
223 | $this->delete(); | 229 | $this->delete(); |
@@ -235,7 +241,7 @@ class Article | |||
235 | } | 241 | } |
236 | 242 | ||
237 | // json ou html version petites images | 243 | // json ou html version petites images |
238 | $fileName = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; | 244 | $fileName = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; |
239 | if(file_exists($fileName) && empty($content)) | 245 | if(file_exists($fileName) && empty($content)) |
240 | { | 246 | { |
241 | $this->delete(); | 247 | $this->delete(); |
@@ -252,11 +258,11 @@ class Article | |||
252 | // delete | 258 | // delete |
253 | public function delete() | 259 | public function delete() |
254 | { | 260 | { |
255 | $path = 'data/' . $this->page . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; | 261 | $path = 'data/' . $this->folder . '/' . $this->format . '/' . $this->fileCode . '.' . $this->format; |
256 | unlink($path); | 262 | unlink($path); |
257 | 263 | ||
258 | // fichiers html dans html-maxi-images | 264 | // fichiers html dans html-maxi-images |
259 | $path_maxi = 'data/' . $this->page . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; | 265 | $path_maxi = 'data/' . $this->folder . '/' . $this->format . '-maxi-images/' . $this->fileCode . '.' . $this->format; |
260 | if(file_exists($path_maxi)) | 266 | if(file_exists($path_maxi)) |
261 | { | 267 | { |
262 | unlink($path_maxi); | 268 | 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 @@ | |||
4 | class Image | 4 | class Image |
5 | { | 5 | { |
6 | private $page; | 6 | private $page; |
7 | private $folder; | ||
7 | 8 | ||
8 | private $ajax; // vaut true avec le ckeditor | 9 | private $ajax; // vaut true avec le ckeditor |
9 | public $reponseAjax; | 10 | public $reponseAjax; |
@@ -13,18 +14,25 @@ class Image | |||
13 | public $pathInfos; | 14 | public $pathInfos; |
14 | public $erreur; | 15 | public $erreur; |
15 | 16 | ||
16 | public function __construct($ajax) | 17 | public function __construct(string $page, string $folder, bool $ajax) |
17 | { | 18 | { |
18 | // get envoyé avec le javascript | ||
19 | $this->ajax = $ajax; | 19 | $this->ajax = $ajax; |
20 | $this->page = $_GET['page']; | 20 | $this->page = $page; |
21 | $this->path = 'data/' . $this->page . '/images/'; | 21 | $this->folder = $folder; |
22 | $this->pathMini = 'data/' . $this->page . '/images-mini/'; | 22 | $this->path = 'data/' . $this->folder . '/images/'; |
23 | $this->pathMini = 'data/' . $this->folder . '/images-mini/'; | ||
23 | } | 24 | } |
24 | 25 | ||
25 | // GET | 26 | // GET |
26 | 27 | ||
27 | // SET | 28 | // SET |
29 | public function setFolder(string $folder) | ||
30 | { | ||
31 | $this->folder = $folder; | ||
32 | $this->path = 'data/' . $this->folder . '/images/'; | ||
33 | $this->pathMini = 'data/' . $this->folder . '/images-mini/'; | ||
34 | } | ||
35 | |||
28 | 36 | ||
29 | public function upload() | 37 | public function upload() |
30 | { | 38 | { |
@@ -55,7 +63,7 @@ class Image | |||
55 | if($this->ajax && empty($Image->erreur)) | 63 | if($this->ajax && empty($Image->erreur)) |
56 | { | 64 | { |
57 | // chemin en JSON attendu par l'éditeur | 65 | // chemin en JSON attendu par l'éditeur |
58 | $this->reponseAjax = '{"url": "data/' . $this->page . '/images/' . $_FILES['upload']['name'] . '"}'; | 66 | $this->reponseAjax = '{"url": "data/' . $this->folder . '/images/' . $_FILES['upload']['name'] . '"}'; |
59 | } | 67 | } |
60 | } | 68 | } |
61 | 69 | ||
@@ -108,7 +116,7 @@ class Image | |||
108 | 116 | ||
109 | // message d'erreur | 117 | // message d'erreur |
110 | $_SESSION['erreur'] = addslashes("Echec de la création d'une miniature. Vérifier le fichier config.php"); | 118 | $_SESSION['erreur'] = addslashes("Echec de la création d'une miniature. Vérifier le fichier config.php"); |
111 | header('Location: index.php?page=' . $this->page . '&erreur=dependance_bibli_images'); | 119 | header('Location: index.php?page=' . $this->folder . '&erreur=dependance_bibli_images'); |
112 | exit(); | 120 | exit(); |
113 | } | 121 | } |
114 | } | 122 | } |
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(); | |||
15 | ?> | 15 | ?> |
16 | <script type="text/javascript" src="public/main.js" ></script> | 16 | <script type="text/javascript" src="public/main.js" ></script> |
17 | <?php | 17 | <?php |
18 | if(isset($_GET['action']) && $_GET['action'] === 'edition') | ||
19 | { | ||
20 | |||
21 | // bibliothèques JS ckeditor | ||
22 | ?> | ||
23 | <script src="lib/ckeditor5/build/ckeditor.js"></script> | ||
24 | <?php | ||
25 | } | ||
18 | $js = ob_get_clean(); | 26 | $js = ob_get_clean(); |
19 | 27 | ||
20 | // variable $header | 28 | // variable $header |
@@ -52,18 +60,50 @@ for($i = 0; $i < $Albums->fileListCount; $i++) | |||
52 | </div> | 60 | </div> |
53 | </div> | 61 | </div> |
54 | </aside> | 62 | </aside> |
55 | <article id="albumHTML" > | 63 | <?php |
64 | |||
65 | // formulaires et éditeur à la place de l'article à modifier | ||
66 | if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 | ||
67 | && isset($_GET['action']) && $_GET['action'] === 'edition') | ||
68 | { | ||
69 | $style = 'class="articleAvecEditeur"'; | ||
70 | ?> | ||
71 | <article id="albumHTML" <?= $style ?> > | ||
72 | <h3>Modifier cet album</h3> | ||
73 | <?= $editeurHTML ?> | ||
74 | <?php | ||
75 | } | ||
76 | // affichage normal | ||
77 | else | ||
78 | { | ||
79 | ?> | ||
80 | <article id="albumHTML" > | ||
56 | <?= $album ?> | 81 | <?= $album ?> |
82 | <?php | ||
83 | } | ||
84 | ?> | ||
57 | </article> | 85 | </article> |
58 | <?php | 86 | <?php |
59 | // boutons | 87 | // boutons modifier et supprimer, mais pas monter ni descendre |
60 | if($_SESSION['admin'] == 1) | 88 | // modifier ouvre l'éditeur, supprimer renvoie vers la discographie |
89 | if($_SESSION['admin'] == 1 && (!isset($_GET['action']) || $_GET['action'] !== 'edition')) | ||
61 | { | 90 | { |
62 | ?> | 91 | ?> |
63 | <p> | 92 | <p> |
64 | <a href="index.php?page=discographie&action=edition&file_code=<?= $fileCode ?>#<?= $fileCode ?>" > | 93 | <a href="index.php?page=album&action=edition&file_code=<?= $fileCode ?>" > |
65 | <img src="public/icone_modifier.png" > | 94 | <img src="public/icone_modifier.png" > |
66 | </a> | 95 | </a> |
96 | <a href="index.php?page=discographie&action=suppression&file_code=<?= $fileCode ?>" onclick="confirmerSuppression()" > | ||
97 | <img src="public/icone_supprimer.png" > | ||
98 | </a> | ||
99 | <a class="linkAlbumHTML" href="index.php?page=discographie" >Retour à la discographie</a> | ||
100 | </p> | ||
101 | <?php | ||
102 | } | ||
103 | else | ||
104 | { | ||
105 | ?> | ||
106 | <p> | ||
67 | <a class="linkAlbumHTML" href="index.php?page=discographie" >Retour à la discographie</a> | 107 | <a class="linkAlbumHTML" href="index.php?page=discographie" >Retour à la discographie</a> |
68 | </p> | 108 | </p> |
69 | <?php | 109 | <?php |
diff --git a/view/discographie.php b/view/discographie.php index 1660b0c..206a9b8 100644 --- a/view/discographie.php +++ b/view/discographie.php | |||
@@ -15,7 +15,7 @@ ob_start(); | |||
15 | ?> | 15 | ?> |
16 | <script type="text/javascript" src="public/main.js" ></script> | 16 | <script type="text/javascript" src="public/main.js" ></script> |
17 | <?php | 17 | <?php |
18 | if(isset($_GET['action']) && $_GET['action'] == 'edition') | 18 | if(isset($_GET['action']) && $_GET['action'] === 'edition') |
19 | { | 19 | { |
20 | 20 | ||
21 | // bibliothèques JS ckeditor | 21 | // bibliothèques JS ckeditor |
@@ -67,7 +67,7 @@ for($i = 0; $i < $Albums->fileListCount; $i++) | |||
67 | // éditeur ou bouton "Nouvel album" | 67 | // éditeur ou bouton "Nouvel album" |
68 | if($_SESSION['admin'] == 1) | 68 | if($_SESSION['admin'] == 1) |
69 | { | 69 | { |
70 | if(isset($_GET['action']) && $_GET['action'] == 'edition' && $fileCode == '') | 70 | if(isset($_GET['action']) && $_GET['action'] === 'edition' && $fileCode === '') |
71 | { | 71 | { |
72 | $style = 'class="articleAvecEditeur"'; | 72 | $style = 'class="articleAvecEditeur"'; |
73 | ?> | 73 | ?> |
@@ -112,9 +112,9 @@ for($i = 0; $i < $Albums->fileListCount; $i++) | |||
112 | ?> | 112 | ?> |
113 | <article id="<?= $Albums->fileList[$i]['fileCode'] ?>" <?= $style ?>> | 113 | <article id="<?= $Albums->fileList[$i]['fileCode'] ?>" <?= $style ?>> |
114 | <?php | 114 | <?php |
115 | // formulaires et éditeur | 115 | // formulaires et éditeur à la place de l'article à modifier |
116 | if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 | 116 | if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 |
117 | && isset($_GET['action']) && $_GET['action'] == 'edition' | 117 | && isset($_GET['action']) && $_GET['action'] === 'edition' |
118 | && $Albums->fileList[$i]['fileCode'] == $fileCode) | 118 | && $Albums->fileList[$i]['fileCode'] == $fileCode) |
119 | { | 119 | { |
120 | ?> | 120 | ?> |
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(); | |||
43 | ?> | 43 | ?> |
44 | 44 | ||
45 | <div class="conteneur_article" > | 45 | <div class="conteneur_article" > |
46 | <form action="index.php?page=<?= $page ?><?= $fileCodeArgument ?>&action=submit" method="post" enctype="multipart/form-data" > | 46 | <form action="index.php?page=<?= $page ?>&action=submit<?= $fileCodeArgument ?>" method="post" enctype="multipart/form-data" > |
47 | <?php | 47 | <?php |
48 | if($page == 'discographie') | 48 | if($page === 'discographie' || $page === 'album') |
49 | { | 49 | { |
50 | echo($inputsAlbum . "<p><i>Infos qui seront affichées dans la page spécifique à cet album:</i></p>"); | 50 | echo($inputsAlbum . "<p><i>Infos qui seront affichées dans la page spécifique à cet album:</i></p>"); |
51 | } | 51 | } |
@@ -53,7 +53,7 @@ if($page == 'discographie') | |||
53 | 53 | ||
54 | <textarea id="editor" name="contenu" ></textarea> | 54 | <textarea id="editor" name="contenu" ></textarea> |
55 | <input class="boutonSubmitEditeur" type="submit" value="Valider" /> | 55 | <input class="boutonSubmitEditeur" type="submit" value="Valider" /> |
56 | <a class="boutonAnnuler" href="index.php?page=<?= $page ?>" > | 56 | <a class="boutonAnnuler" href="index.php?page=<?= $lienBoutonAnnuler ?>" > |
57 | <input type="button" value="Annuler" /> | 57 | <input type="button" value="Annuler" /> |
58 | </a> | 58 | </a> |
59 | 59 | ||
diff --git a/à faire après livraison.txt b/à faire après livraison.txt index 5037312..8c95b2f 100644 --- a/à faire après livraison.txt +++ b/à faire après livraison.txt | |||
@@ -1,6 +1,13 @@ | |||
1 | empêcher de monter ou descendre à nouveau un élément en rechargeant la page | ||
2 | -> solution 1: rediriger vers la même page sans action dans l'url après le déplacement | ||
3 | -> solution 2: déplacement AJAX avec javascript | ||
4 | ne remplace pas la solution 1 qui doit toujours fonctionner | ||
5 | |||
6 | infobulles en mode admin | ||
7 | |||
1 | bouton partage et lien d'encre sur tous les articles | 8 | bouton partage et lien d'encre sur tous les articles |
2 | 9 | ||
3 | barre de défilement au menu déroulant de la discographie (penser aussi à le rendre moins moche) | 10 | menu déroulant de la discographie de longueur fixe et avec barre de défilement en CSS (penser aussi à le rendre moins moche) |
4 | 11 | ||
5 | 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 | 12 | 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 |
6 | (problème: les dimensions des deux miniatures sont censées être différentes) | 13 | (problème: les dimensions des deux miniatures sont censées être différentes) |
@@ -11,13 +18,15 @@ images d'en-tête svg? | |||
11 | 18 | ||
12 | trouver mieux que la police "comic sans MS" dans les images de BD | 19 | trouver mieux que la police "comic sans MS" dans les images de BD |
13 | 20 | ||
21 | quand un article ou album est ajouté, le mentionner pendant une semaine dans la section actualité de la page menu | ||
22 | |||
14 | images des articles en grand et miniature, Zoom sur images (articles) | 23 | images des articles en grand et miniature, Zoom sur images (articles) |
15 | affichage avec javascript OU au moins dans une "page" dotée d'un bouton pour sortir (avec GD? avec imagemagick?) | 24 | affichage avec javascript OU au moins dans une "page" dotée d'un bouton pour sortir (avec GD? avec imagemagick?) |
16 | 25 | ||
17 | galerie en css (ou/et en javascript) pour les peintures de bateau | 26 | galerie en css (ou/et en javascript) pour les peintures de bateau |
18 | https://www.guyom-design.com/blog/astuces/css/tuto_diapo_css/ | 27 | https://www.guyom-design.com/blog/astuces/css/tuto_diapo_css/ |
19 | 28 | ||
20 | hyperlien avec liens relatifs (par exemple dans emoi des mots) | 29 | hyperlien avec liens relatifs (par exemple dans emoi des mots qui doit pointer vers la presse) |
21 | 30 | ||
22 | créer page musique | 31 | créer page musique |
23 | 32 | ||