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.tar.gz melaine-90b3efeeb9d939303ff80b180725e06e2e57af79.tar.bz2 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')) |
