summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--controller/config.php5
-rw-r--r--public/css/discographie.css10
-rw-r--r--public/css/main.css9
-rw-r--r--public/css/pages_articles_simples.css6
-rw-r--r--public/icone_modifier.pngbin8809 -> 8960 bytes
-rw-r--r--public/icone_partager.pngbin0 -> 4778 bytes
-rw-r--r--public/main.js13
-rw-r--r--view/album.php15
-rw-r--r--view/articlesContent.php13
-rw-r--r--view/courriel.php2
-rw-r--r--view/discographie.php13
-rw-r--r--view/template-formulaires.php1
-rw-r--r--à faire après livraison.txt22
13 files changed, 64 insertions, 45 deletions
diff --git a/controller/config.php b/controller/config.php
index 47b85f9..067d89b 100644
--- a/controller/config.php
+++ b/controller/config.php
@@ -15,8 +15,9 @@ $storage = 'files';
15// Racine du site (inutile pour l'instant) 15// Racine du site (inutile pour l'instant)
16//$root = getcwd(); 16//$root = getcwd();
17 17
18// nom de domaine (inutile pour l'instant) 18// nom de domaine (utilisé pour créer des liens absolus)
19//$host = $_SERVER['HTTP_HOST']; 19// depuis une fonction, faire un: 'global $host;'
20$host = 'http://' . $_SERVER['HTTP_HOST'];
20 21
21// bibliothèque utilisée pour créer les miniatures 22// bibliothèque utilisée pour créer les miniatures
22if(extension_loaded("imagick")) // on préfère imagemagick 23if(extension_loaded("imagick")) // on préfère imagemagick
diff --git a/public/css/discographie.css b/public/css/discographie.css
index 2aae57e..7fb48df 100644
--- a/public/css/discographie.css
+++ b/public/css/discographie.css
@@ -120,12 +120,6 @@ input
120 padding-bottom: 20px; 120 padding-bottom: 20px;
121 border-bottom: 1px black solid; 121 border-bottom: 1px black solid;
122} 122}
123/* mêmes règles que .boutonArticle dans main.css */
124.boutonAlbum span
125{
126 padding: 2px;
127 border: 4px black groove;
128}
129 123
130#articles 124#articles
131{ 125{
@@ -209,10 +203,10 @@ a:hover figure figcaption
209{ 203{
210 width: 100%; 204 width: 100%;
211} 205}
212.linkAlbumHTML 206/*.linkAlbumHTML
213{ 207{
214 color: blue; 208 color: blue;
215} 209}*/
216 210
217 211
218@media screen and (min-width: 700px) 212@media screen and (min-width: 700px)
diff --git a/public/css/main.css b/public/css/main.css
index 77ab7ff..4017e31 100644
--- a/public/css/main.css
+++ b/public/css/main.css
@@ -87,11 +87,12 @@ img
87 vertical-align: bottom; 87 vertical-align: bottom;
88} 88}
89 89
90.boutonArticle span 90button a
91{ 91{
92 padding: 2px; 92 color: black;
93 border: 4px black groove; 93 text-decoration: none;
94} 94}
95
95.boutonSubmitEditeur 96.boutonSubmitEditeur
96{ 97{
97 margin-top: 5px; 98 margin-top: 5px;
@@ -144,8 +145,6 @@ form
144#courriel * 145#courriel *
145{ 146{
146 max-width: 220px; 147 max-width: 220px;
147 color: black;
148 text-decoration: none;
149} 148}
150 149
151#courriel>button /* bouton pour remonter */ 150#courriel>button /* bouton pour remonter */
diff --git a/public/css/pages_articles_simples.css b/public/css/pages_articles_simples.css
index 2f3e901..ec8e665 100644
--- a/public/css/pages_articles_simples.css
+++ b/public/css/pages_articles_simples.css
@@ -29,11 +29,7 @@ figure
29 /* comme "article" dans main.css */ 29 /* comme "article" dans main.css */
30 font-size: 90%; 30 font-size: 90%;
31} 31}
32.boutonArticle span 32
33{
34 position: relative;
35 bottom: 6px;
36}
37@media screen and (min-width: 700px) 33@media screen and (min-width: 700px)
38{ 34{
39 #titre 35 #titre
diff --git a/public/icone_modifier.png b/public/icone_modifier.png
index 3691389..aa5304c 100644
--- a/public/icone_modifier.png
+++ b/public/icone_modifier.png
Binary files differ
diff --git a/public/icone_partager.png b/public/icone_partager.png
new file mode 100644
index 0000000..ab3b829
--- /dev/null
+++ b/public/icone_partager.png
Binary files differ
diff --git a/public/main.js b/public/main.js
index ede1a30..4080832 100644
--- a/public/main.js
+++ b/public/main.js
@@ -40,15 +40,20 @@ function clientCourriel()
40 document.location.href = link; 40 document.location.href = link;
41} 41}
42 42
43// bouton pour "copier" dans le presse-papier 43// pour "cacher" l'adresse du HTML
44function copierAdresse() 44// inutile -> nécessite une requête AJAX
45function copierCourriel()
45{ 46{
46 var adresse = "melaine.favennec@wanadoo.fr"; 47 var adresse = "melaine.favennec@wanadoo.fr";
48 copierDansPressePapier(adresse);
49}
47 50
51function copierDansPressePapier(chaine)
52{
48 // une balise <input> avec des attributs 53 // une balise <input> avec des attributs
49 var element = document.createElement("input"); 54 var element = document.createElement("input");
50 element.setAttribute("id", "copyMe"); 55 element.setAttribute("id", "copyMe");
51 element.setAttribute("value", adresse); 56 element.setAttribute("value", chaine);
52 57
53 // placement dans la page (= le "document") 58 // placement dans la page (= le "document")
54 document.body.appendChild(element); 59 document.body.appendChild(element);
@@ -65,6 +70,8 @@ function copierAdresse()
65 // test optionnel 70 // test optionnel
66 // essayer un document.execCommand("paste"); dans une variable 71 // essayer un document.execCommand("paste"); dans une variable
67 // mais depuis une deuxième fonction 72 // mais depuis une deuxième fonction
73
74 alert('Cette adresse a été copiée dans le presse-papier:\n\n' + chaine);
68} 75}
69 76
70// cacher le lien #nouvelArticle quand le ckeditor est appelé 77// cacher le lien #nouvelArticle quand le ckeditor est appelé
diff --git a/view/album.php b/view/album.php
index e2989dc..f0fd807 100644
--- a/view/album.php
+++ b/view/album.php
@@ -88,23 +88,20 @@ else
88// modifier ouvre l'éditeur, supprimer renvoie vers la discographie 88// modifier ouvre l'éditeur, supprimer renvoie vers la discographie
89if($_SESSION['admin'] == 1 && (!isset($_GET['action']) || $_GET['action'] !== 'edition')) 89if($_SESSION['admin'] == 1 && (!isset($_GET['action']) || $_GET['action'] !== 'edition'))
90{ 90{
91 $lien_partage = 'index.php?page=' . $page . '&file_code=' . $fileCode;
92 global $host;
91?> 93?>
92 <p> 94 <p>
95 <a href="<?= $lien_partage ?>" >
96 <img src="public/icone_partager.png" onclick="copierDansPressePapier('<?= $host ?>/<?= $lien_partage ?>')" >
97 </a>
93 <a href="index.php?page=album&action=edition&file_code=<?= $fileCode ?>" > 98 <a href="index.php?page=album&action=edition&file_code=<?= $fileCode ?>" >
94 <img src="public/icone_modifier.png" > 99 <img src="public/icone_modifier.png" >
95 </a> 100 </a>
96 <a href="index.php?page=discographie&action=suppression&file_code=<?= $fileCode ?>" onclick="confirmerSuppression()" > 101 <a href="index.php?page=discographie&action=suppression&file_code=<?= $fileCode ?>" onclick="confirmerSuppression()" >
97 <img src="public/icone_supprimer.png" > 102 <img src="public/icone_supprimer.png" >
98 </a> 103 </a>
99 <a class="linkAlbumHTML" href="index.php?page=discographie" >Retour à la discographie</a> 104 <button><a href="index.php?page=discographie" >Retour page discographie</a></button>
100 </p>
101<?php
102}
103else
104{
105?>
106 <p>
107 <a class="linkAlbumHTML" href="index.php?page=discographie" >Retour à la discographie</a>
108 </p> 105 </p>
109<?php 106<?php
110} 107}
diff --git a/view/articlesContent.php b/view/articlesContent.php
index c07ba75..4762f8e 100644
--- a/view/articlesContent.php
+++ b/view/articlesContent.php
@@ -22,9 +22,11 @@ if($_SESSION['admin'] == 1)
22?> 22?>
23 <div> 23 <div>
24 <p class="boutonArticle boutonNouvelArticle" > 24 <p class="boutonArticle boutonNouvelArticle" >
25 <a href="index.php?page=<?= $page ?>&action=editor" > 25 <button>
26 <span>Nouvel article</span> 26 <a href="index.php?page=<?= $page ?>&action=editor" >
27 </a> 27 Nouvel article
28 </a>
29 </button>
28 </p> 30 </p>
29<?php 31<?php
30 } 32 }
@@ -81,9 +83,14 @@ for($i = 0; $i < $Articles->fileListCount; $i++)
81 // bouton 83 // bouton
82 if($_SESSION['admin'] == 1) 84 if($_SESSION['admin'] == 1)
83 { 85 {
86 $lien_partage = 'index.php?page=' . $page . '#' . $Articles->fileList[$i]['fileCode'];
87 global $host;
84 ?> 88 ?>
85 </div> 89 </div>
86 <p class="boutonArticle" > 90 <p class="boutonArticle" >
91 <a href="<?= $lien_partage ?>" >
92 <img src="public/icone_partager.png" onclick="copierDansPressePapier('<?= $host ?>/<?= $lien_partage ?>')" >
93 </a>
87 <a href="index.php?page=<?= $page ?>&action=editor&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" > 94 <a href="index.php?page=<?= $page ?>&action=editor&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" >
88 <img src="public/icone_modifier.png" ></a> 95 <img src="public/icone_modifier.png" ></a>
89 <a href="index.php?page=<?= $page ?>&action=monter&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>&position=<?= $Articles->fileList[$i]['position'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" > 96 <a href="index.php?page=<?= $page ?>&action=monter&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>&position=<?= $Articles->fileList[$i]['position'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" >
diff --git a/view/courriel.php b/view/courriel.php
index 7dd7ba4..8934461 100644
--- a/view/courriel.php
+++ b/view/courriel.php
@@ -6,6 +6,6 @@
6 6
7 <div id="courrielJS" > 7 <div id="courrielJS" >
8 <button onclick="clientCourriel();" >Avec mon logiciel<br />de messagerie</button> 8 <button onclick="clientCourriel();" >Avec mon logiciel<br />de messagerie</button>
9 <button onclick="copierAdresse();" >Copier l'adresse dans<br />le presse-papier</button> 9 <button onclick="copierCourriel();" >Copier l'adresse dans<br />le presse-papier</button>
10 </div> 10 </div>
11 </div> \ No newline at end of file 11 </div> \ No newline at end of file
diff --git a/view/discographie.php b/view/discographie.php
index 206a9b8..c5c9135 100644
--- a/view/discographie.php
+++ b/view/discographie.php
@@ -84,9 +84,11 @@ if($_SESSION['admin'] == 1)
84 <!-- le bouton Nouvel album est considéré comme un article --> 84 <!-- le bouton Nouvel album est considéré comme un article -->
85 <article> 85 <article>
86 <p class="boutonAlbum" > 86 <p class="boutonAlbum" >
87 <a href="index.php?page=discographie&action=edition" > 87 <button>
88 <span>Nouvel album</span> 88 <a href="index.php?page=discographie&action=edition" >
89 </a> 89 Nouvel album
90 </a>
91 </button>
90 </p> 92 </p>
91 </article> 93 </article>
92<?php 94<?php
@@ -147,8 +149,13 @@ for($i = 0; $i < $Albums->fileListCount; $i++)
147 // boutons 149 // boutons
148 if($_SESSION['admin'] == 1) 150 if($_SESSION['admin'] == 1)
149 { 151 {
152 /*$lien_partage = 'index.php?page=' . $page . '#' . $Albums->fileList[$i]['fileCode'];
153 global $host;*/
150 ?> 154 ?>
151 <p> 155 <p>
156 <!-- <a href="<?= $lien_partage ?>" >
157 <img src="public/icone_partager.png" onclick="copierDansPressePapier('<?= $host ?>/<?= $lien_partage ?>')" >
158 </a> -->
152 <a href="index.php?<?= $lienBoutonModif[$i] ?>" > 159 <a href="index.php?<?= $lienBoutonModif[$i] ?>" >
153 <img src="public/icone_modifier.png" > 160 <img src="public/icone_modifier.png" >
154 </a> 161 </a>
diff --git a/view/template-formulaires.php b/view/template-formulaires.php
index be51df6..e7c7470 100644
--- a/view/template-formulaires.php
+++ b/view/template-formulaires.php
@@ -56,6 +56,7 @@ if($page === 'discographie' || $page === 'album')
56 <a class="boutonAnnuler" href="index.php?page=<?= $lienBoutonAnnuler ?>" > 56 <a class="boutonAnnuler" href="index.php?page=<?= $lienBoutonAnnuler ?>" >
57 <input type="button" value="Annuler" /> 57 <input type="button" value="Annuler" />
58 </a> 58 </a>
59 <button><a href="index.php?page=discographie" >Retour page discographie</a></button>
59 60
60 <script> 61 <script>
61 let editor; // variable utilisable depuis une fonction 62 let editor; // variable utilisable depuis une fonction
diff --git a/à faire après livraison.txt b/à faire après livraison.txt
index e86aec3..9fd5345 100644
--- a/à faire après livraison.txt
+++ b/à faire après livraison.txt
@@ -1,11 +1,21 @@
1barre de progression au téléchargement d'un melaineDATA
2-> permettra de savoir aussi si la limite de 30s d'un script PHP a une importance
3
1empêcher de monter ou descendre à nouveau un élément en rechargeant la page 4empêcher de monter ou descendre à nouveau un élément en rechargeant la page
2-> solution 1: rediriger vers la même page sans action dans l'url après le déplacement 5-> solution 1: rediriger vers la même page sans action dans l'url après le déplacement
3-> solution 2: déplacement AJAX avec javascript 6-> solution 2: déplacement AJAX avec javascript
4ne remplace pas la solution 1 qui doit toujours fonctionner 7ne remplace pas la solution 1 qui doit toujours fonctionner
5 8
6infobulles en mode admin 9gérer le cas où l'éditeur est ouvert et qu'on clique sur un bouton monter ou descendre
10-> solution 1: cacher les boutons (et bloquer la fonctionnalité!)
11-> solution 2: changement de position en JS ET version non JS en enregistrant le contenu en cours dans 'data/tmp'
12(c'est lourd, mais on évite de dérouter l'utilisateur)
13
14trouver une solution au problème du cache du visiteur (surtout Melaine) lorsque le site est mis à jour
15
16infobulles sur les boutons d'action (seul le mode admin est concerné à moins de proposer un bouton partager au visiteur)
7 17
8bouton partage et lien d'encre sur tous les articles 18Actualité: remplacer le mot "actualité" (page menu) par un logo sur le côté du genre panneau Attention!
9 19
10rendre le menu chronologie moins moche 20rendre le menu chronologie moins moche
11 21
@@ -26,9 +36,9 @@ affichage avec javascript OU au moins dans une "page" dotée d'un bouton pour so
26galerie en css (ou/et en javascript) pour les peintures de bateau 36galerie en css (ou/et en javascript) pour les peintures de bateau
27https://www.guyom-design.com/blog/astuces/css/tuto_diapo_css/ 37https://www.guyom-design.com/blog/astuces/css/tuto_diapo_css/
28 38
29hyperlien avec liens relatifs (par exemple dans emoi des mots qui doit pointer vers la presse) 39Explorateur de fichiers pour les images
30 40
31créer page musique 41page musique avec vidéos embarquées
32 42
33n'utiliser que les grandes images dans le menu 43n'utiliser que les grandes images dans le menu
34 44
@@ -50,8 +60,6 @@ ajouter d'autres format de sauvegarde (il parait que zip se fait vieux)
50 60
51Identification avec deux codes (login + mot de passe) 61Identification avec deux codes (login + mot de passe)
52 62
53Explorateur de fichiers pour les images
54
55pagination (ex: max 10 articles par page) 63pagination (ex: max 10 articles par page)
56à voir selon le volume, c'est mieux avec de l'AJAX 64à voir selon le volume, c'est mieux avec de l'AJAX
57 65
@@ -64,6 +72,8 @@ plugin autosave de l'éditeur
64Editeur "inline" ou "balloon block" 72Editeur "inline" ou "balloon block"
65 73
66défense aux attaques par force brute quand l'attaquant multiplie les connexions au site 74défense aux attaques par force brute quand l'attaquant multiplie les connexions au site
75-> limiter le nombre de connexions simultanées, exemple 3
76-> une fonction "déconnecter tous les appareils"
67 77
68Protection contre les falsifications de requête inter-site - CSRF 78Protection contre les falsifications de requête inter-site - CSRF
69connexion avec un jeton 79connexion avec un jeton