summaryrefslogtreecommitdiff
path: root/controller/admin.php
diff options
context:
space:
mode:
Diffstat (limited to 'controller/admin.php')
-rw-r--r--controller/admin.php92
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
7function melaineEdit($numArticle, $suppression) 7function 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
64function discoEdit($numArticle, $albumCode, $suppression) 64function 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