summaryrefslogtreecommitdiff
path: root/controller
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2021-09-08 02:09:34 +0200
committerpolo <ordipolo@gmx.fr>2021-09-08 02:09:34 +0200
commitcdf1bda847edd3e22e9fe817a802219ad8e0f626 (patch)
treeadbe2b35e9741a5db74491c85914f4c03d3d4c99 /controller
parent9a552c6b751f25bac9e816cf605fb972da8b9e27 (diff)
downloadmelaine-cdf1bda847edd3e22e9fe817a802219ad8e0f626.zip
vignette
Diffstat (limited to 'controller')
-rw-r--r--controller/admin.php51
-rw-r--r--controller/ckeditor.php44
-rw-r--r--controller/visitor.php54
3 files changed, 77 insertions, 72 deletions
diff --git a/controller/admin.php b/controller/admin.php
index 3c2b613..ba6fd83 100644
--- a/controller/admin.php
+++ b/controller/admin.php
@@ -98,11 +98,6 @@ function discoEdit($numArticle, $suppression)
98 } 98 }
99 } 99 }
100 100
101 $albumsJSON = array_reverse($Album->readAll()); // lourd
102
103 // $albums contient un tableau de chaines JSON,
104 // on extrait de chacune 3 variables: titre, année, pochette
105
106 // traitements PHP pour l'éditeur 101 // traitements PHP pour l'éditeur
107 // sécurisation du contenu pré-existant inséré dans l'éditeur 102 // sécurisation du contenu pré-existant inséré dans l'éditeur
108 if($numArticle >= 0 && !$suppression) 103 if($numArticle >= 0 && !$suppression)
@@ -111,44 +106,58 @@ function discoEdit($numArticle, $suppression)
111 $texte = preparationCKeditor($numArticle, $texte); 106 $texte = preparationCKeditor($numArticle, $texte);
112 } 107 }
113 108
114 // changer les chaines JSON en tableaux 109
110 // contenu de tous les fichiers JSON (= tableau de chaines)
111 $albumsJSON = $Album->readAll();
112 // noms des fichiers JSON
113 $albumNamesJSON = $Album->getFileList();
114
115 // changer les chaines JSON en tableaux: titre, année, pochette
115 $i = 0; 116 $i = 0;
117 $annees = array();
116 foreach($albumsJSON as $oneAlbum) 118 foreach($albumsJSON as $oneAlbum)
117 { 119 {
118 $albumsJSON[$i] = json_decode($oneAlbum, true); 120 $albumsJSON[$i] = json_decode($oneAlbum, true);
121
122 // ajout des noms des fichiers JSON
123 $albumsJSON[$i][3] = $albumNamesJSON[$i];
124 $annees[$i] = $albumsJSON[$i][1];
119 $i++; 125 $i++;
120 } 126 }
127 // tri d'un tableau multidimensionnel
128 array_multisort($annees, $albumsJSON);
121 129
122 // on passe maintenant au contenu HTML 130 // on passe maintenant au contenu HTML
123 $albumNamesJSON = array_reverse($Album->getFileNames());
124 $Album->setFormat('html'); 131 $Album->setFormat('html');
125 $Album->makeFileList(); 132 $Album->makeFileList();
126 $albumNamesHTML = array_reverse($Album->getFileNames()); 133 $albumNamesHTML = $Album->getFileList();
127 134
128 // lien vers le HTML ou ancre? 135 // lien vers le HTML ou ancre?
129 // pour chaque album, détecter le fichier html 136 // pour chaque album, détecter le fichier html
130 // si non, ne fournir qu'un lien d'ancre pour la liste d'album 137 // si non, ne fournir qu'un lien d'ancre pour la liste d'album
131 $i = 0; 138 $i = 0;
132 $avecLien = []; 139 $avecLien = [];
133 foreach($albumNamesJSON as $oneAlbum) 140 foreach($albumsJSON as $oneAlbum)
134 { 141 {
135 // nom sans extension 142 // nom sans extension
136 $chemin = pathinfo($oneAlbum); 143 $chemin = pathinfo($oneAlbum[3]);
137 $nomJSONsansExt = $chemin['filename']; 144 $nomJSONsansExt = $chemin['filename'];
138 $chemin = pathinfo($albumNamesHTML[0]);
139 145
140 // détection 146 // au cas où la discographie ne contient aucun html
141 if(file_exists($chemin['dirname'] . '/' . $nomJSONsansExt . '.html')) 147 if(!empty($albumNamesHTML))
142 { 148 {
143 $lienAlbum[$i] = 'album&album_code=' . $nomJSONsansExt . '&album_name=' . $albumsJSON[$i][0]; 149 if(file_exists('data/discographie/html/' . $nomJSONsansExt . '.html'))
144 $avecLien[$i] = true; 150 {
151 $lienAlbum[$i] = 'album&album_code=' . $nomJSONsansExt . '&album_name=' . $albumsJSON[$i][0];
152 $avecLien[$i] = true;
153 }
154 else
155 {
156 $lienAlbum[$i] = 'discographie#' . $albumsJSON[$i][0];
157 $avecLien[$i] = false;
158 }
159 $i++;
145 } 160 }
146 else
147 {
148 $lienAlbum[$i] = 'discographie#' . $albumsJSON[$i][0];
149 $avecLien[$i] = false;
150 }
151 $i++;
152 } 161 }
153 162
154 // morceaux en HTML à assembler 163 // morceaux en HTML à assembler
diff --git a/controller/ckeditor.php b/controller/ckeditor.php
index 2e72be2..d07f2a2 100644
--- a/controller/ckeditor.php
+++ b/controller/ckeditor.php
@@ -87,7 +87,7 @@ function submitCKeditor($nomFichier)
87 { 87 {
88 $titre = $_POST['titre']; 88 $titre = $_POST['titre'];
89 $annee = $_POST['annee']; 89 $annee = $_POST['annee'];
90 $pochette = $_POST['pochette']; // une image 90 $pochette = $_FILES['upload']['name'];
91 91
92 // des formulaires simples 92 // des formulaires simples
93 $titre = htmLawed($titre, $configHtmLawed, $specHtmLawed); 93 $titre = htmLawed($titre, $configHtmLawed, $specHtmLawed);
@@ -95,36 +95,8 @@ function submitCKeditor($nomFichier)
95 $annee = htmLawed($annee, $configHtmLawed, $specHtmLawed); 95 $annee = htmLawed($annee, $configHtmLawed, $specHtmLawed);
96 $annee = trim($annee); 96 $annee = trim($annee);
97 97
98 // pochette
99 // Album->imageUpload();
100 // test formats jpg, jpeg, png, gif, tiff
101 // enregistrement du fichier
102 }
103
104 // lien sans http://
105 // un clic sur un lien dans l'éditeur affiche une infobulle montrant l'adresse cible du lien si celle-ci a déjà été précisée
106 // il est possible de cliquer sur ce lien, ce qui ouvre un onglet avec le site demandé
107 // toutefois si cette adresse est de type "domaine.fr" (sans http:// devant), le navigateur ne va pas rechercher un site mais un fichier comme si mon adresse était de type file:///fichier
108 // tomber ainsi sur une page d'erreur est déroutant:
109 // "ai-je perdu le texte que j'étais en train de taper?""
110 // solution 1 (mauvaise): activer la redirection en cas d'erreur 404 dans le .htaccess
111 // solution 2 (façon pop-up): fermer ce nouvel onglet avec echo '<SCRIPT>javascript:window.close()</SCRIPT>';
112 // pour faire passer par le .htaccess l'info comme quoi la page précédente comportait un éditeur ouvert...
113
114
115 // enregistrement
116 // var_dump($titre, $annee, $pochette, $contenu);
117 // die();
118
119 // modèle
120 if($page == 'discographie')
121 {
122 // on instancie avec l'enfant de OneArticle 98 // on instancie avec l'enfant de OneArticle
123 $Album = new Album($page); 99 $Album = new Album($page);
124
125 //var_dump($_GET['article']);
126 //var_dump($_POST);
127 //exit();
128 100
129 // enregistrement 101 // enregistrement
130 if($_GET['article'] == 0) 102 if($_GET['article'] == 0)
@@ -132,7 +104,7 @@ function submitCKeditor($nomFichier)
132 // page disco 104 // page disco
133 $Album->createVignette($titre, $annee, $pochette); 105 $Album->createVignette($titre, $annee, $pochette);
134 106
135 // page détail de l'album 107 // page de l'album
136 if(!empty($_POST['contenu'])) 108 if(!empty($_POST['contenu']))
137 { 109 {
138 $Album->create($contenu); 110 $Album->create($contenu);
@@ -143,7 +115,7 @@ function submitCKeditor($nomFichier)
143 // page disco 115 // page disco
144 $Album->updateVignette($titre, $annee, $pochette); 116 $Album->updateVignette($titre, $annee, $pochette);
145 117
146 // page détail de l'album 118 // page de l'album
147 if(isset($_POST['contenu'])) 119 if(isset($_POST['contenu']))
148 { 120 {
149 $Album->update($content); 121 $Album->update($content);
@@ -167,5 +139,15 @@ function submitCKeditor($nomFichier)
167 } 139 }
168} 140}
169 141
142// lien sans http://
143// un clic sur un lien dans l'éditeur affiche une infobulle montrant l'adresse cible du lien si celle-ci a déjà été précisée
144// il est possible de cliquer sur ce lien, ce qui ouvre un onglet avec le site demandé
145// toutefois si cette adresse est de type "domaine.fr" (sans http:// devant), le navigateur ne va pas rechercher un site mais un fichier comme si mon adresse était de type file:///fichier
146// tomber ainsi sur une page d'erreur est déroutant:
147// "ai-je perdu le texte que j'étais en train de taper?""
148// solution 1 (mauvaise): activer la redirection en cas d'erreur 404 dans le .htaccess
149// solution 2 (façon pop-up): fermer ce nouvel onglet avec echo '<SCRIPT>javascript:window.close()</SCRIPT>';
150// pour faire passer par le .htaccess l'info comme quoi la page précédente comportait un éditeur ouvert...
151
170function cleanHTML($contenu) 152function cleanHTML($contenu)
171{} 153{}
diff --git a/controller/visitor.php b/controller/visitor.php
index 239c139..a5bf538 100644
--- a/controller/visitor.php
+++ b/controller/visitor.php
@@ -51,49 +51,62 @@ function discoVisitor()
51 // modèle 51 // modèle
52 $AllAlbums = new Album($page_actuelle); 52 $AllAlbums = new Album($page_actuelle);
53 $AllAlbums->makeFileList(); 53 $AllAlbums->makeFileList();
54 $albumsJSON = array_reverse($AllAlbums->readAll()); // lourd
55 54
56 // $albums est un tableau de chaines JSON, 55 // contenu de tous les fichiers JSON (= tableau de chaines)
57 // chacune renferme 3 variables: titre, année, pochette 56 $albumsJSON = $AllAlbums->readAll();
57 // noms des fichiers JSON
58 $albumNamesJSON = $AllAlbums->getFileList();
58 59
59 // changer les chaines JSON en tableaux 60 // changer les chaines JSON en tableaux: titre, année, pochette
60 $i = 0; 61 $i = 0;
62 $annees = array();
61 foreach($albumsJSON as $oneAlbum) 63 foreach($albumsJSON as $oneAlbum)
62 { 64 {
63 $albumsJSON[$i] = json_decode($oneAlbum, true); 65 $albumsJSON[$i] = json_decode($oneAlbum, true);
66 $annees[$i] = $albumsJSON[$i][1];
67
68 // ajout des noms des fichiers JSON
69 $albumsJSON[$i][3] = $albumNamesJSON[$i];
70
64 $i++; 71 $i++;
65 } 72 }
73 // tri d'un tableau multidimensionnel
74 array_multisort($annees, $albumsJSON);
66 75
67 // on passe maintenant au contenu HTML 76 // on passe maintenant au contenu HTML
68 $albumNamesJSON = array_reverse($AllAlbums->getFileNames());
69 $AllAlbums->setFormat('html'); 77 $AllAlbums->setFormat('html');
70 $AllAlbums->makeFileList(); 78 $AllAlbums->makeFileList();
71 $albumNamesHTML = array_reverse($AllAlbums->getFileNames()); 79 $albumNamesHTML = $AllAlbums->getFileList();
72 80
73 // lien vers le HTML ou ancre? 81 // lien vers le HTML ou ancre?
74 // pour chaque album, détecter le fichier html 82 // pour chaque album, détecter le fichier html
75 // si non, ne fournir qu'un lien d'ancre pour la liste d'album 83 // si non, ne fournir qu'un lien d'ancre pour la liste d'album
76 $i = 0; 84 $i = 0;
77 $avecLien = []; 85 $avecLien = [];
78 foreach($albumNamesJSON as $oneAlbum) 86 $linkDiscoChrono = [];
87 foreach($albumsJSON as $oneAlbum)
79 { 88 {
80 // nom sans extension 89 // nom sans extension
81 $chemin = pathinfo($oneAlbum); 90 $chemin = pathinfo($oneAlbum[3]);
82 $nomJSONsansExt = $chemin['filename']; 91 $nomJSONsansExt = $chemin['filename'];
83 $chemin = pathinfo($albumNamesHTML[0]);
84 92
85 // détection 93 // au cas où la discographie ne contient aucun html
86 if(file_exists($chemin['dirname'] . '/' . $nomJSONsansExt . '.html')) 94 if(!empty($albumNamesHTML))
87 { 95 {
88 $lienAlbum[$i] = 'album&album_code=' . $nomJSONsansExt . '&album_name=' . $albumsJSON[$i][0]; 96 if(file_exists('data/discographie/html/' . $nomJSONsansExt . '.html'))
89 $avecLien[$i] = true; 97 {
98 $lienAlbum[$i] = 'album&album_code=' . $nomJSONsansExt . '&album_name=' . $albumsJSON[$i][0];
99 $avecLien[$i] = true;
100 $linkDiscoChrono[$i] = 'linkChrono'; // css
101 }
102 else
103 {
104 $lienAlbum[$i] = 'discographie#' . $albumsJSON[$i][0];
105 $avecLien[$i] = false;
106 $linkDiscoChrono[$i] = 'noLinkChrono'; // css
107 }
108 $i++;
90 } 109 }
91 else
92 {
93 $lienAlbum[$i] = 'discographie#' . $albumsJSON[$i][0];
94 $avecLien[$i] = false;
95 }
96 $i++;
97 } 110 }
98 111
99 // variables $css, $js et $content 112 // variables $css, $js et $content
@@ -102,6 +115,7 @@ function discoVisitor()
102 require('view/template.php'); 115 require('view/template.php');
103} 116}
104 117
118// page d'un album
105function album($albumCode, $albumName) 119function album($albumCode, $albumName)
106{ 120{
107 $page_actuelle = 'discographie'; 121 $page_actuelle = 'discographie';