diff options
Diffstat (limited to 'controller/admin.php')
| -rw-r--r-- | controller/admin.php | 92 |
1 files changed, 42 insertions, 50 deletions
diff --git a/controller/admin.php b/controller/admin.php index 90924e0..e319c80 100644 --- a/controller/admin.php +++ b/controller/admin.php | |||
| @@ -1,15 +1,15 @@ | |||
| 1 | <?php | 1 | <?php |
| 2 | // controller/admin.php | 2 | // controller/admin.php |
| 3 | // | 3 | // |
| 4 | // utilisation du site en écriture | 4 | // utilisation du site en écriture (admin uniquement) |
| 5 | // version des pages en mode admin lorsque celui-ci crée ou modifie quelque chose | 5 | // l'éditeur ouvert ou demande de suppression d'un élément |
| 6 | 6 | ||
| 7 | function melaineEdit($numArticle, $suppression) | 7 | function melaineEdit($numArticle, $suppression) |
| 8 | { | 8 | { |
| 9 | $page_actuelle = "melaine"; | 9 | $page_actuelle = "melaine"; |
| 10 | 10 | ||
| 11 | // modèle | 11 | // modèle |
| 12 | $Article = new Page($page_actuelle, 'html'); | 12 | $Article = new Page($page_actuelle); |
| 13 | 13 | ||
| 14 | // nouvel article | 14 | // nouvel article |
| 15 | if($numArticle == 0) | 15 | if($numArticle == 0) |
| @@ -21,7 +21,7 @@ function melaineEdit($numArticle, $suppression) | |||
| 21 | { | 21 | { |
| 22 | // nom de l'article ciblé (objet et session) | 22 | // nom de l'article ciblé (objet et session) |
| 23 | $Article->findFileName($numArticle); | 23 | $Article->findFileName($numArticle); |
| 24 | $_SESSION['nomFichier'] = $Article->fileName; | 24 | $_SESSION['target'] = $Article->fileName; |
| 25 | 25 | ||
| 26 | // suppression | 26 | // suppression |
| 27 | if($suppression) | 27 | if($suppression) |
| @@ -42,10 +42,10 @@ function melaineEdit($numArticle, $suppression) | |||
| 42 | $articles = array_reverse($Article->readAll()); // lourd | 42 | $articles = array_reverse($Article->readAll()); // lourd |
| 43 | 43 | ||
| 44 | // sécurisation du contenu pré-existant inséré dans l'éditeur | 44 | // sécurisation du contenu pré-existant inséré dans l'éditeur |
| 45 | if($numArticle >= 0 && !$suppression) | 45 | if($numArticle > 0 && !$suppression) |
| 46 | { | 46 | { |
| 47 | require('controller/ckeditor.php'); | 47 | require('controller/ckeditor.php'); |
| 48 | $texte = preparationCKeditor($numArticle, $texte); | 48 | $texte = preparationCKeditor($texte); |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | // NB: penser à ajouter au template la fonctionnalité "autosave" | 51 | // NB: penser à ajouter au template la fonctionnalité "autosave" |
| @@ -61,104 +61,96 @@ function melaineEdit($numArticle, $suppression) | |||
| 61 | require('view/template.php'); | 61 | require('view/template.php'); |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | function discoEdit($numArticle, $albumCode, $suppression) | 64 | function discoEdit($albumCode, $suppression) |
| 65 | { | 65 | { |
| 66 | $page_actuelle = "discographie"; | 66 | $page_actuelle = "discographie"; |
| 67 | $title = "Discographie"; | 67 | $title = "Discographie"; |
| 68 | 68 | ||
| 69 | // modèle | 69 | // modèle |
| 70 | $Album = new Album($page_actuelle); | 70 | $Albums = new Album($page_actuelle); |
| 71 | $Album->makeFileList(); | 71 | $Albums->makeFileList(); |
| 72 | 72 | ||
| 73 | // nouvel album | 73 | // nouvel album |
| 74 | if($numArticle == 0) | 74 | if($albumCode == '') |
| 75 | { | 75 | { |
| 76 | unset($_SESSION['target']); | ||
| 76 | $title = "Ajouter un album"; | 77 | $title = "Ajouter un album"; |
| 78 | |||
| 79 | // formulaires vides | ||
| 80 | $vignette = ['', '', '']; | ||
| 77 | $texte = ''; | 81 | $texte = ''; |
| 78 | } | 82 | } |
| 79 | else | 83 | else |
| 80 | { | 84 | { |
| 81 | // nom de l'article ciblé (objet et session) | 85 | // album ciblé |
| 82 | $Album->findFileName($numArticle); | 86 | $Albums->albumCode = $albumCode; |
| 83 | $_SESSION['nomFichier'] = $Album->fileName; | ||
| 84 | 87 | ||
| 85 | // suppression | 88 | // suppression |
| 86 | if($suppression) | 89 | if($suppression) |
| 87 | { | 90 | { |
| 88 | $Album->delete(); | 91 | $Albums->delete(); |
| 89 | header('Location: index.php?page=' . $page_actuelle); | 92 | header('Location: index.php?page=' . $page_actuelle); |
| 90 | exit(); | 93 | exit(); |
| 91 | } | 94 | } |
| 92 | // modification | 95 | // modification |
| 93 | else | 96 | else |
| 94 | { | 97 | { |
| 98 | $_SESSION['target'] = $Albums->albumCode; | ||
| 95 | $title = "Modifier un album"; | 99 | $title = "Modifier un album"; |
| 96 | $texte = $Album->readOneAlbum($albumCode); | 100 | $texte = $Albums->readOneHTML($albumCode); |
| 97 | $vignette = json_decode($Album->getVignette(), true); | 101 | $vignette = $Albums->getVignetteJSON(); |
| 98 | } | 102 | } |
| 99 | } | 103 | } |
| 100 | 104 | ||
| 101 | // traitements PHP pour l'éditeur | 105 | // traitements PHP pour l'éditeur |
| 102 | // sécurisation du contenu pré-existant inséré dans l'éditeur | 106 | // sécurisation du contenu pré-existant inséré dans l'éditeur |
| 103 | if($numArticle >= 0 && !$suppression) | 107 | if(!empty($albumCode) && !$suppression && !empty($texte)) |
| 104 | { | 108 | { |
| 105 | require('controller/ckeditor.php'); | 109 | require('controller/ckeditor.php'); |
| 106 | $texte = preparationCKeditor($numArticle, $texte); | 110 | $texte = preparationCKeditor($texte); |
| 107 | } | 111 | } |
| 108 | 112 | ||
| 113 | // préremplir le champ <input type="file" > | ||
| 114 | // c'est normallement impossible | ||
| 115 | |||
| 109 | // contenu de tous les fichiers JSON (= tableau de chaines) | 116 | // contenu de tous les fichiers JSON (= tableau de chaines) |
| 110 | $albumsJSON = $Album->readAll(); | 117 | $albumsJSON = $Albums->readAll(); |
| 111 | // noms des fichiers JSON | 118 | // noms des fichiers JSON |
| 112 | $albumNamesJSON = $Album->fileList; | 119 | $albumNamesJSON = $Albums->fileList; |
| 113 | 120 | ||
| 114 | // changer les chaines JSON en tableaux: titre, année, pochette | 121 | $annees = []; |
| 115 | $i = 0; | 122 | for($i = 0; $i < count($albumsJSON); $i++) |
| 116 | $annees = array(); | ||
| 117 | foreach($albumsJSON as $oneAlbum) | ||
| 118 | { | 123 | { |
| 119 | $albumsJSON[$i] = json_decode($oneAlbum, true); | 124 | // une case supplémentaire contient le "albumCode" |
| 125 | $albumsJSON[$i][3] = pathinfo($albumNamesJSON[$i])['filename']; | ||
| 120 | 126 | ||
| 121 | // ajout des noms des fichiers JSON | ||
| 122 | $albumsJSON[$i][3] = $albumNamesJSON[$i]; | ||
| 123 | $annees[$i] = $albumsJSON[$i][1]; | 127 | $annees[$i] = $albumsJSON[$i][1]; |
| 124 | $i++; | ||
| 125 | } | 128 | } |
| 126 | print_r($albumsJSON); | 129 | |
| 127 | //exit(); | ||
| 128 | // tri d'un tableau multidimensionnel | 130 | // tri d'un tableau multidimensionnel |
| 129 | array_multisort($annees, $albumsJSON); | 131 | array_multisort($annees, $albumsJSON); |
| 130 | 132 | ||
| 131 | // on passe maintenant au contenu HTML | ||
| 132 | $Album->format = 'html'; | ||
| 133 | $Album->makeFileList(); | ||
| 134 | $albumNamesHTML = $Album->fileList; | ||
| 135 | |||
| 136 | // lien vers le HTML ou ancre? | 133 | // lien vers le HTML ou ancre? |
| 137 | // pour chaque album, détecter le fichier html | ||
| 138 | // si non, ne fournir qu'un lien d'ancre pour la liste d'album | ||
| 139 | $i = 0; | ||
| 140 | $avecLien = []; | 134 | $avecLien = []; |
| 141 | foreach($albumsJSON as $oneAlbum) | 135 | $linkDiscoChrono = []; |
| 136 | for($i = 0; $i < count($albumsJSON); $i++) | ||
| 142 | { | 137 | { |
| 143 | // nom sans extension | 138 | // cas particulier où le dossier "html" est vide |
| 144 | $chemin = pathinfo($oneAlbum[3]); | 139 | if(!empty($Albums->fileList)) |
| 145 | $nomJSONsansExt = $chemin['filename']; | ||
| 146 | |||
| 147 | // au cas où la discographie ne contient aucun html | ||
| 148 | if(!empty($albumNamesHTML)) | ||
| 149 | { | 140 | { |
| 150 | if(file_exists('data/discographie/html/' . $nomJSONsansExt . '.html')) | 141 | if(file_exists('data/discographie/html/' . $albumsJSON[$i][3] . '.html')) |
| 151 | { | 142 | { |
| 152 | $lienAlbum[$i] = 'album&album_code=' . $nomJSONsansExt . '&album_name=' . $albumsJSON[$i][0]; | 143 | $lienAlbum[$i] = 'page=album&album_name=' . $albumsJSON[$i][0] . '&album_code=' . $albumsJSON[$i][3]; |
| 153 | $lienBoutonModif[$i] = 'discographie&action=edition&album_code=' . $nomJSONsansExt; | ||
| 154 | $avecLien[$i] = true; | 144 | $avecLien[$i] = true; |
| 145 | $linkDiscoChrono[$i] = 'linkChrono'; // css | ||
| 155 | } | 146 | } |
| 156 | else | 147 | else |
| 157 | { | 148 | { |
| 158 | $lienAlbum[$i] = 'discographie#' . $albumsJSON[$i][0]; | 149 | $lienAlbum[$i] = 'page=discographie#' . $albumsJSON[$i][0]; |
| 159 | $avecLien[$i] = false; | 150 | $avecLien[$i] = false; |
| 151 | $linkDiscoChrono[$i] = 'noLinkChrono'; // css | ||
| 160 | } | 152 | } |
| 161 | $i++; | 153 | $lienBoutonModif[$i] = 'page=discographie&action=edition&album_code=' . $albumsJSON[$i][3]; |
| 162 | } | 154 | } |
| 163 | } | 155 | } |
| 164 | 156 | ||
