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 | ||