summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2022-02-24 02:29:14 +0100
committerpolo <ordipolo@gmx.fr>2022-02-24 02:29:14 +0100
commitf19db76cc3b21785619ffd24bfb34692a3aaa66a (patch)
tree7a715c3bc89232a981f3150caa46e61cba7850f2
parent2c5dc14a9cd8bd847c724c0d43ddce8be0069013 (diff)
downloadmelaine-f19db76cc3b21785619ffd24bfb34692a3aaa66a.zip
recursiveIterator
-rw-r--r--controller/backup.php105
-rw-r--r--controller/installation.php30
-rw-r--r--index.php42
-rw-r--r--model/Album.php17
-rw-r--r--public/css/accueil.css (renamed from public/accueil.css)10
-rw-r--r--public/css/discographie.css (renamed from public/discographie.css)6
-rw-r--r--public/css/donnees_hors_editeur.css (renamed from public/donnees_hors_editeur.css)6
-rw-r--r--public/css/melaine.css (renamed from public/melaine.css)12
-rw-r--r--public/css/menu.css (renamed from public/menu.css)0
-rw-r--r--public/css/normalize.css (renamed from public/normalize.css)0
-rw-r--r--view/album.php4
-rw-r--r--view/backup.php86
-rw-r--r--view/discographie.php4
-rw-r--r--view/melaine.php4
-rw-r--r--view/password.php4
-rw-r--r--view/template-formulaires.php14
-rw-r--r--view/template.php9
-rw-r--r--à faire après livraison.txt2
-rw-r--r--à faire avant livraison.txt11
19 files changed, 258 insertions, 108 deletions
diff --git a/controller/backup.php b/controller/backup.php
index d0060c9..13b68df 100644
--- a/controller/backup.php
+++ b/controller/backup.php
@@ -1,10 +1,12 @@
1<?php 1<?php
2// controller/backup.php 2// controller/backup.php
3 3
4function extraction($from) 4function sauvegarder($from)
5{ 5{
6 $title = 'extraction des données';
7
6 $chemin = "data/"; 8 $chemin = "data/";
7 $nomFichier = "sauvegarde_site_melaine.zip"; 9 $nomFichier = "melaineDATA.zip";
8 10
9 // création ou remplacement d'une archive zip 11 // création ou remplacement d'une archive zip
10 // une erreur est jetée si l'extension zip n'est pas activée 12 // une erreur est jetée si l'extension zip n'est pas activée
@@ -14,10 +16,7 @@ function extraction($from)
14 } 16 }
15 catch (Throwable $e) 17 catch (Throwable $e)
16 { 18 {
17 echo('Erreur: la classe ZipArchive est introuvable, la sauvegarde est impossible. L\'extension ZIP de PHP est-elle activée dans le fichier php.ini?<br/> 19 echo($erreur);
18 Veuillez prévenir l\'administrateur.<br/>
19 Vous pouvez aussi récupérer manuellement les fichiers en vous connectant au serveur avec un client FTP, il suffit de récupérer tout le dossier "data".<br/><br/>
20 <a href="index.php" >Retour au site</a>');
21 die(); 20 die();
22 } 21 }
23 22
@@ -36,45 +35,65 @@ function extraction($from)
36 // pour pouvoir manipuler le fichier depuis filezilla ou ssh 35 // pour pouvoir manipuler le fichier depuis filezilla ou ssh
37 chmod($chemin . $nomFichier, 0666); // écriture 4 chiffres 36 chmod($chemin . $nomFichier, 0666); // écriture 4 chiffres
38 37
39?> 38 require('view/backup.php');
40<head>
41 <meta charset="utf-8" />
42 <title>extraction des données</title>
43 <link rel="stylesheet" type="text/css" href="public/accueil.css" />
44</head>
45<body>
46 <div id="bloc_page" style="padding: 5px;">
47 Toutes les données du sites ont été rassemblées dans un gros fichier que vous pouvez garder par exemple sur votre ordinateur.<br/>
48 Vous pourrez l'utiliser plus tard pour restaurer le site dans l'état où il se trouve aujourd'hui. Ceci est utile dans le cas d'un changement d'hébergement ou dans le cas d'un problème affectant le serveur.<br/>
49 Ce fichier se nomme <i>sauvegarde_site_melaine.zip</i>.<br/><br/>
50 <a href="data/sauvegarde_site_melaine.zip" style="border: 2px black ridge;" >Cliquez ici pour télécharger</a><br/><br/>
51 <a href="index.php?page=<?= $from ?>" >Retour au site</a>
52 </div>
53</body>
54<?php
55} 39}
56 40
57function insertion($from) 41function restaurer($from)
58{ 42{
59?> 43 $title = 'Restauration des données';
60<head>
61 <meta charset="utf-8" />
62 <title>Restauration des données avec un backup</title>
63 <link rel="stylesheet" type="text/css" href="public/accueil.css" />
64</head>
65<body>
66 <div id="bloc_page" style="padding: 5px;">
67 Restauration des données à partir d'une sauvegarde.<br/><br/>
68 Vous devez avoir créé un fichier nommé <i>sauvegarde_site_melaine.zip</i><br/>
69 en cliquant sur <i>Extraire les données</i>.<br/><br/>
70 44
71 <form action="index.php?from=<?= $from ?>&action=insertion" method="post" > 45 $chemin = "data/";
72 <input type="file" accept=".zip" ><br/> 46 $nomFichier = "melaineDATA.zip";
73 <!-- ajouter une demande de confirmation en JS au submit --> 47
74 <input type="submit" ><br/><br/> 48 require('view/backup.php');
75 <a href="index.php?page=<?= $from ?>" >Retour au site</a> 49}
76 </form> 50
77 </div> 51// inutile
78</body> 52function creerMelainePHP()
79<?php 53{
54 $nomFichier = "melainePHP.zip";
55
56 try
57 {
58 $Zip = new ZipArchive();
59 }
60 catch (Throwable $e) // absence de l'extension zip
61 {
62 echo($erreur);
63 die();
64 }
65
66 if ($Zip->open('data/' . $nomFichier, ZipArchive::CREATE | ZipArchive::OVERWRITE)!==TRUE)
67 {
68 exit("Impossible d'ouvrir le fichier <i>" . $nomFichier . "</i>.\n");
69 }
70
71 // fichiers à la racine
72 $Zip->addGlob('*.php', 0, array(''));
73 $Zip->addGlob('.htaccess', 0, array(''));
74 $Zip->addGlob('*.txt', 0, array(''));
75
76 // tous les dossiers sauf data et .git
77 $listeDossiers = array('model', 'view', 'controller', 'public', 'lib');
78 foreach($listeDossiers as $path)
79 {
80 // les deux lignes suivantes me dépassent un peu,
81 // mais ça marche et c'est comme ça qu'il faut faire
82 $directory = new RecursiveDirectoryIterator($path);
83 $iterator = new RecursiveIteratorIterator($directory);
84
85 foreach ($iterator as $info)
86 {
87 // chemins inutiles . et ..
88 if($info->getFilename() != "." && $info->getFilename() != "..")
89 {
90 //var_dump($info->getPathname());
91 $Zip->addGlob($info->getPathname(), 0, array(''));
92 }
93 }
94 }
95
96 $Zip->close();
97
98 chmod('data/' . $nomFichier, 0644); // écriture 4 chiffres (octal)
80} \ No newline at end of file 99} \ No newline at end of file
diff --git a/controller/installation.php b/controller/installation.php
index 9d612dd..6037e17 100644
--- a/controller/installation.php
+++ b/controller/installation.php
@@ -45,11 +45,28 @@ function installation()
45 45
46 // créer les dossiers (fait également à l'extraction du zip de données) 46 // créer les dossiers (fait également à l'extraction du zip de données)
47 // attention: ne fonctionne pas sans une manipulation préalable 47 // attention: ne fonctionne pas sans une manipulation préalable
48 // - modifier soit-même les droits du dossier data (777), quoique 111 serait pas mal non plus 48 // - modifier soit-même les droits du dossier data pour 777
49 // - modifier ceux du dossier parent (nom du site) avec son client FTP à la mise en ligne chez l'hébergeur et ensuite remettre tout comme avant 49 // - modifier ceux du dossier parent (nom du site) avec son client FTP à la mise en ligne chez l'hébergeur et ensuite remettre tout comme avant
50 50
51 // le 0 devant signifie que le nombre est en octal 51 // création des dossiers
52 $droitsDossiers = 0777; // mettre 0700 à la fin 52
53 // valeur en octal
54 $droitsDossiers = 0777; // mettre 0755 en production
55
56 if(!file_exists('data') && !mkdir('data'))
57 {
58 $erreur = 'data';
59 $title = 'Dossier data absent';
60 require('view/backup.php');
61 exit();
62 }
63 if(!touch('data'))
64 {
65 $erreur = 'data';
66 $title = 'Écriture non autorisée dans le dossier data';
67 require('view/backup.php');
68 exit();
69 }
53 70
54 $listePages = array('melaine', 'discographie', 'concerts', 'presse', 'ateliers', 'liens', 'peinture', 'archives'); 71 $listePages = array('melaine', 'discographie', 'concerts', 'presse', 'ateliers', 'liens', 'peinture', 'archives');
55 foreach ($listePages as $page) 72 foreach ($listePages as $page)
@@ -93,6 +110,13 @@ function installation()
93 chmod('data/password.txt', 0600); 110 chmod('data/password.txt', 0600);
94 } 111 }
95 112
113 // créer le melainePHP.zip
114 if(!file_exists("data/melainePHP.zip"))
115 {
116 require('controller/backup.php');
117 creerMelainePHP();
118 }
119
96 // le modèle donnera les droits 0666 (octal) aux nouveaux fichiers à l'intérieur des dossiers 120 // le modèle donnera les droits 0666 (octal) aux nouveaux fichiers à l'intérieur des dossiers
97 121
98 // création d'un mot de passe si password.txt est vide 122 // création d'un mot de passe si password.txt est vide
diff --git a/index.php b/index.php
index 0b2a950..73bfb66 100644
--- a/index.php
+++ b/index.php
@@ -12,7 +12,7 @@ if(!empty($_SESSION['erreur']))
12 unset($_SESSION['erreur']); 12 unset($_SESSION['erreur']);
13} 13}
14 14
15// à modifier par l'utilisateur 15// fichier destiné à l'utilisateur
16require('config.php'); 16require('config.php');
17 17
18// au premier démarrage du site 18// au premier démarrage du site
@@ -208,7 +208,8 @@ if(isset($_GET['page']))
208} 208}
209 209
210 210
211// actions en mode admin, recharger une des pages principales 211// actions en mode admin depuis le menu orange
212// recharger une des pages principales
212elseif($_SESSION['admin'] == 1 && isset($_GET['action'])) 213elseif($_SESSION['admin'] == 1 && isset($_GET['action']))
213{ 214{
214 if($_GET['action'] == 'modif_mdp') 215 if($_GET['action'] == 'modif_mdp')
@@ -216,24 +217,33 @@ elseif($_SESSION['admin'] == 1 && isset($_GET['action']))
216 //changePassword($secret); 217 //changePassword($secret);
217 changePassword(); 218 changePassword();
218 } 219 }
219 // extraction du contenu du dossier data
220 else if($_GET['action'] == 'extraction')
221 {
222 require('controller/backup.php');
223 extraction($_GET['from']);
224 }
225 // l'inverse, insertion des données d'une sauvegarde
226 else if($_GET['action'] == 'insertion')
227 {
228 require('controller/backup.php');
229 insertion($_GET['from']);
230 }
231 else 220 else
232 { 221 {
233 accueil(); 222 require_once('controller/backup.php');
223
224 // extraction du contenu du dossier data
225 if($_GET['action'] == 'sauvegarde')
226 {
227 sauvegarder($_GET['from']);
228 }
229 // insertion des données d'une sauvegarde
230 elseif($_GET['action'] == 'restauration')
231 {
232 restaurer($_GET['from']);
233 }
234 // tout sauf le dossier data
235 /*elseif($_GET['action'] == 'extrairePHP')
236 {
237 extrairePHP($_GET['from']);
238 }*/
239 else
240 {
241 accueil();
242 }
234 } 243 }
235} 244}
236 245
246// à supprimer, on utilisera plutôt une variable de session
237// renvoi ici par le .htaccess si lien mort ou sans http:// au début 247// renvoi ici par le .htaccess si lien mort ou sans http:// au début
238elseif(isset($_GET['erreur'])) 248elseif(isset($_GET['erreur']))
239{ 249{
@@ -253,4 +263,4 @@ elseif(isset($_GET['erreur']))
253else 263else
254{ 264{
255 accueil(); 265 accueil();
256} 266} \ No newline at end of file
diff --git a/model/Album.php b/model/Album.php
index 5e93d05..9c90a6b 100644
--- a/model/Album.php
+++ b/model/Album.php
@@ -7,11 +7,13 @@ class Album extends Article
7 7
8 public function __construct($page) 8 public function __construct($page)
9 { 9 {
10 $this->page = $page; 10 // pour: page, fileCode, time et makeFileList()
11 $this->fileCode = ''; // désigne un fichier json et un html 11 parent::__construct($page);
12 //$this->page = $page;
13 //$this->fileCode = ''; // désigne un fichier json et un html
12 $this->format = 'json'; // vaut 'html' dans la classe mère 14 $this->format = 'json'; // vaut 'html' dans la classe mère
13 $this->time = time(); 15 //$this->time = time();
14 $this->makeFileList(); 16 //$this->makeFileList();
15 } 17 }
16 18
17 // GET 19 // GET
@@ -58,10 +60,14 @@ class Album extends Article
58 } 60 }
59 61
60 // read 62 // read
63
64 // hydratation
61 public function readAll() 65 public function readAll()
62 { 66 {
63 // mettre le JSON dans fileList[$i]['content'] 67 // mettre le JSON dans fileList[$i]['content']
64 parent::readAll(); 68 parent::readAll();
69 // = surcharge, appeler la méthode de la classe mère
70 // permet de ne pas la remplacer par la nouvelle
65 71
66 $this->format = 'html'; 72 $this->format = 'html';
67 for($i = 0; $i < $this->fileListCount; $i++) 73 for($i = 0; $i < $this->fileListCount; $i++)
@@ -92,6 +98,7 @@ class Album extends Article
92 $this->format = 'json'; 98 $this->format = 'json';
93 } 99 }
94 100
101 // hydratation
95 public function readOne() 102 public function readOne()
96 { 103 {
97 for($i = 0; $i < $this->fileListCount; $i++) 104 for($i = 0; $i < $this->fileListCount; $i++)
diff --git a/public/accueil.css b/public/css/accueil.css
index f951334..622ce1f 100644
--- a/public/accueil.css
+++ b/public/css/accueil.css
@@ -3,11 +3,11 @@
3@font-face /* pour .police_titre */ 3@font-face /* pour .police_titre */
4{ 4{
5 font-family: "you_are_loved"; 5 font-family: "you_are_loved";
6 src: url('fonts/you_are_loved.ttf') format('truetype'), 6 src: url('../fonts/you_are_loved.ttf') format('truetype'),
7 url('fonts/you_are_loved.eot'), 7 url('../fonts/you_are_loved.eot'),
8 url('fonts/you_are_loved.eot?#iefix') format('embedded-opentype'), 8 url('../fonts/you_are_loved.eot?#iefix') format('embedded-opentype'),
9 url('fonts/you_are_loved.woff2') format('woff2'), 9 url('../fonts/you_are_loved.woff2') format('woff2'),
10 url('fonts/you_are_loved.woff') format('woff'); 10 url('../fonts/you_are_loved.woff') format('woff');
11} 11}
12 12
13.no_underline 13.no_underline
diff --git a/public/discographie.css b/public/css/discographie.css
index 65ae2c3..8ed3700 100644
--- a/public/discographie.css
+++ b/public/css/discographie.css
@@ -215,7 +215,7 @@ a:hover figure figcaption
215 { 215 {
216 width: 630px; 216 width: 630px;
217 height: 171px; 217 height: 171px;
218 background-image: url("mouette.png"); 218 background-image: url("../mouette.png");
219 } 219 }
220 220
221 #contenu 221 #contenu
@@ -237,7 +237,7 @@ a:hover figure figcaption
237 { 237 {
238 width: 480px; 238 width: 480px;
239 height: 131px; 239 height: 131px;
240 background-image: url("mouette_petit.png"); 240 background-image: url("../mouette_petit.png");
241 margin: auto; 241 margin: auto;
242 } 242 }
243 243
@@ -264,7 +264,7 @@ a:hover figure figcaption
264 { 264 {
265 width: 320px; 265 width: 320px;
266 height: 88px; 266 height: 88px;
267 background-image: url("mouette_mini.png"); 267 background-image: url("../mouette_mini.png");
268 margin: auto; 268 margin: auto;
269 } 269 }
270 270
diff --git a/public/donnees_hors_editeur.css b/public/css/donnees_hors_editeur.css
index 4a8d49e..7b377ea 100644
--- a/public/donnees_hors_editeur.css
+++ b/public/css/donnees_hors_editeur.css
@@ -24,8 +24,8 @@ input[type="checkbox"]:checked{border: none; background: #26ab33;}
24.table td{border: 1px grey solid; padding: 7px; min-width: 30px;} 24.table td{border: 1px grey solid; padding: 7px; min-width: 30px;}
25td p{margin: 0px;} 25td p{margin: 0px;}
26 26
27.image{margin: 0px; margin: auto;} 27.image{margin: 0px;text-align: center;margin: auto;height: 100%;}
28.image img{max-width: 100%;} 28.image img{width: 100%;}
29.image-style-side{float: right;} 29.image-style-side{float: right;}
30.image-style-side:not(.image_resized){max-width: 50%;} 30.image-style-side:not(.image_resized){max-width: 50%;}
31.image>figcaption{padding: 7px; text-align: center; font-size: small; background-color: #f0f0f0;} 31.image>figcaption{padding: 7px; text-align: center; font-size: small; background-color: #f0f0f0;}
@@ -42,7 +42,7 @@ iframe{min-width: 400px; min-height: 300px; max-width: 1200px; max-height: 900px
42 42
43@media screen and (min-width: 700px) 43@media screen and (min-width: 700px)
44{ 44{
45 .image{max-width: 630px;} 45 .image{/*max-width: 630px;*/width: auto;}
46} 46}
47 47
48@media screen and (max-width: 699px) 48@media screen and (max-width: 699px)
diff --git a/public/melaine.css b/public/css/melaine.css
index 09f38aa..429ccec 100644
--- a/public/melaine.css
+++ b/public/css/melaine.css
@@ -36,14 +36,14 @@ figure
36 { 36 {
37 width: 630px; 37 width: 630px;
38 height: 171px; 38 height: 171px;
39 background-image: url("mouette.png"); 39 background-image: url("../mouette.png");
40 } 40 }
41 41
42 #photo 42 #photo
43 { 43 {
44 width: 630px; 44 width: 630px;
45 height: 230px; 45 height: 230px;
46 background-image: url("melaine/photo.png"); 46 background-image: url("../melaine/photo.png");
47 position: relative; 47 position: relative;
48 bottom: 30px; 48 bottom: 30px;
49 } 49 }
@@ -60,7 +60,7 @@ figure
60 { 60 {
61 width: 480px; 61 width: 480px;
62 height: 131px; 62 height: 131px;
63 background-image: url("mouette_petit.png"); 63 background-image: url("../mouette_petit.png");
64 margin: auto; 64 margin: auto;
65 } 65 }
66 66
@@ -68,7 +68,7 @@ figure
68 { 68 {
69 width: 480px; 69 width: 480px;
70 height: 191px; 70 height: 191px;
71 background-image: url("melaine/photo_petit.png"); 71 background-image: url("../melaine/photo_petit.png");
72 margin: auto; 72 margin: auto;
73 position: relative; 73 position: relative;
74 bottom: 24px; 74 bottom: 24px;
@@ -86,7 +86,7 @@ figure
86 { 86 {
87 width: 320px; 87 width: 320px;
88 height: 88px; 88 height: 88px;
89 background-image: url("mouette_mini.png"); 89 background-image: url("../mouette_mini.png");
90 margin: auto; 90 margin: auto;
91 } 91 }
92 92
@@ -94,7 +94,7 @@ figure
94 { 94 {
95 width: 320px; 95 width: 320px;
96 height: 127px; 96 height: 127px;
97 background-image: url("melaine/photo_mini.png"); 97 background-image: url("../melaine/photo_mini.png");
98 margin: auto; 98 margin: auto;
99 position: relative; 99 position: relative;
100 bottom: 17px; 100 bottom: 17px;
diff --git a/public/menu.css b/public/css/menu.css
index 0e17e34..0e17e34 100644
--- a/public/menu.css
+++ b/public/css/menu.css
diff --git a/public/normalize.css b/public/css/normalize.css
index 784422c..784422c 100644
--- a/public/normalize.css
+++ b/public/css/normalize.css
diff --git a/view/album.php b/view/album.php
index 783cfab..e2731a1 100644
--- a/view/album.php
+++ b/view/album.php
@@ -5,8 +5,8 @@
5// utilise discographie.css 5// utilise discographie.css
6ob_start(); 6ob_start();
7?> 7?>
8 <link rel="stylesheet" type="text/css" href="public/discographie.css" /> 8 <link rel="stylesheet" type="text/css" href="public/css/discographie.css" />
9 <link rel="stylesheet" type="text/css" href="public/donnees_hors_editeur.css" /> 9 <link rel="stylesheet" type="text/css" href="public/css/donnees_hors_editeur.css" />
10<?php 10<?php
11$css = ob_get_clean(); 11$css = ob_get_clean();
12 12
diff --git a/view/backup.php b/view/backup.php
new file mode 100644
index 0000000..b4339e4
--- /dev/null
+++ b/view/backup.php
@@ -0,0 +1,86 @@
1<?php
2// view/backup.php
3
4// message dossier data
5if(isset($erreur) && $erreur == 'data')
6{
7 ob_start();
8?>
9 <h2>Bienvenue sur le site de Melaine Favennec.</h2>
10 <h3><i><?= $title ?></i></h3>
11 <p>La configuration n'est pas terminée, veuillez créer un dossier "data" à la racine du site et lui donner les droits 777 (lecture + écriture + entrer dedans).</p>
12 <p>Ceci peut être réalisé depuis le logiciel FTP que vous avez utilisé pour télécharger le site sur le serveur de votre hébergeur.</p>
13 <p>Vous devriez également pouvoir utiliser SSH (linux, mac, windows 10/11) ou "putty" (anciens windows) en tapant ces commandes (utilisateur avancé):</p>
14 <p><i>ssh "nom_utilisateur"@"nom_de_domaine"</i><br/>
15 <i>cd /chemin/racine/du/site</i> (le dossier "melaine")<br/>
16 <i>mkdir data</i><br/>
17 <i>chmod 777 data</i></p>
18 <p><a href="index.php" >Recharger la page</a></p>
19<?php
20 $content = ob_get_clean();
21}
22
23// page sauvegarde
24if(isset($_GET['action']) && $_GET['action'] == 'sauvegarde')
25{
26 ob_start();
27?>
28 <p>Toutes les données du sites (textes, photos) ont été rassemblées dans un gros fichier que vous pouvez garder si vous le souhaitez sur votre ordinateur.</p>
29 <p>Vous pourrez l'utiliser plus tard pour restaurer le site dans l'état où il se trouve aujourd'hui. Ceci est utile dans le cas d'un changement d'hébergement ou dans le cas d'un problème affectant le serveur.</p>
30 <p>Ce fichier se nomme <i>melaineDATA.zip</i>.</p><br/>
31
32 <p><a href="data/melaineDATA.zip" style="border: 2px black ridge; padding: 2px;" >Cliquez ici pour télécharger</a></p><br/>
33 <p><a href="index.php?page=<?= $from ?>" >Retour au site</a></p>
34<?php
35 $content = ob_get_clean();
36
37 ob_start();
38?>
39 <p>Erreur: la classe ZipArchive est introuvable, la sauvegarde est impossible. L\'extension ZIP de PHP est-elle activée dans le fichier php.ini?</p>
40 <p>Veuillez prévenir l\'administrateur.</p>
41 <p>Vous pouvez aussi récupérer manuellement les fichiers en vous connectant au serveur avec un client FTP, il suffit de récupérer tout le dossier "data".</p><br/>
42 <p><a href="index.php" >Retour au site</a></p>
43<?php
44 $erreur = ob_get_clean();
45}
46// page restauration
47elseif(isset($_GET['action']) && $_GET['action'] == 'restauration')
48{
49 ob_start();
50?>
51 <p>Restauration des données à partir d'une sauvegarde.</p>
52 <p>Vous devez avoir créé un fichier nommé <i>melaineDATA.zip</i><br/>
53 en cliquant sur <i>Extraire les données</i>.</p><br/>
54
55 <form action="index.php?from=<?= $from ?>&action=insertion" method="post" >
56 <input type="file" accept=".zip" ><br/>
57
58 <!-- demande de confirmation en JS au submit -->
59
60 <input type="submit" value="Injecter les données" ><br/><br/>
61 <a href="index.php?page=<?= $from ?>" >Retour au site</a>
62 </form>
63<?php
64 $content = ob_get_clean();
65}
66?>
67<!DOCTYPE html>
68<html lang="fr" >
69 <head>
70 <meta charset="utf-8" />
71 <title><?= $title ?></title>
72 <link rel="stylesheet" type="text/css" href="public/css/accueil.css" />
73<?php
74if(isset($_GET['action']) && $_GET['action'] == 'restauration')
75{
76 echo('<script type="text/javascript" src="public/main.js" ></script>');
77}
78?>
79 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
80 </head>
81 <body>
82 <div id="bloc_page" style="padding: 10px;" >
83 <?= $content ?>
84 </div>
85 </body>
86</html> \ No newline at end of file
diff --git a/view/discographie.php b/view/discographie.php
index 2b70159..904201a 100644
--- a/view/discographie.php
+++ b/view/discographie.php
@@ -4,8 +4,8 @@
4// variable $css 4// variable $css
5ob_start(); 5ob_start();
6?> 6?>
7 <link rel="stylesheet" type="text/css" href="public/<?= $page_actuelle ?>.css" /> 7 <link rel="stylesheet" type="text/css" href="public/css/<?= $page_actuelle ?>.css" />
8 <link rel="stylesheet" type="text/css" href="public/donnees_hors_editeur.css" /> 8 <link rel="stylesheet" type="text/css" href="public/css/donnees_hors_editeur.css" />
9<?php 9<?php
10$css = ob_get_clean(); 10$css = ob_get_clean();
11 11
diff --git a/view/melaine.php b/view/melaine.php
index 2325f5c..ea8434a 100644
--- a/view/melaine.php
+++ b/view/melaine.php
@@ -4,8 +4,8 @@
4// variable $css 4// variable $css
5ob_start(); 5ob_start();
6?> 6?>
7 <link rel="stylesheet" type="text/css" href="public/<?= $page_actuelle ?>.css" /> 7 <link rel="stylesheet" type="text/css" href="public/css/<?= $page_actuelle ?>.css" />
8 <link rel="stylesheet" type="text/css" href="public/donnees_hors_editeur.css" /> 8 <link rel="stylesheet" type="text/css" href="public/css/donnees_hors_editeur.css" />
9<?php 9<?php
10$css = ob_get_clean(); 10$css = ob_get_clean();
11 11
diff --git a/view/password.php b/view/password.php
index 2dabcdd..d63e986 100644
--- a/view/password.php
+++ b/view/password.php
@@ -55,8 +55,8 @@ ob_start();
55 55
56 <!-- <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> --> 56 <!-- <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> -->
57 <link rel="icon" type="image/png" href="public/mouette-logo.png" > 57 <link rel="icon" type="image/png" href="public/mouette-logo.png" >
58 <link rel="stylesheet" type="text/css" href="public/normalize.css"> 58 <link rel="stylesheet" type="text/css" href="public/css/normalize.css">
59 <link rel="stylesheet" type="text/css" href="public/accueil.css" /> 59 <link rel="stylesheet" type="text/css" href="public/css/accueil.css" />
60 <script type="text/javascript" src="public/main.js" ></script> 60 <script type="text/javascript" src="public/main.js" ></script>
61 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 61 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
62 </head> 62 </head>
diff --git a/view/template-formulaires.php b/view/template-formulaires.php
index f6d7ec0..7873500 100644
--- a/view/template-formulaires.php
+++ b/view/template-formulaires.php
@@ -97,6 +97,7 @@ if($page_actuelle == 'discographie')
97 'imageStyle:align-right',*/ 97 'imageStyle:align-right',*/
98 //'imageResize', // optionnel, on a les poignées dans les coins de l'image 98 //'imageResize', // optionnel, on a les poignées dans les coins de l'image
99 'linkImage', 99 'linkImage',
100 'toggleImageCaption',
100 'imageTextAlternative' 101 'imageTextAlternative'
101 ] 102 ]
102 }, 103 },
@@ -144,9 +145,7 @@ if($page_actuelle == 'discographie')
144 // - à inclure l'adresse de l'image dans le HTML produit par l'éditeur 145 // - à inclure l'adresse de l'image dans le HTML produit par l'éditeur
145 simpleUpload: { 146 simpleUpload: {
146 uploadUrl: 'index.php?action=upload_image&page=<?= $page_actuelle ?>', 147 uploadUrl: 'index.php?action=upload_image&page=<?= $page_actuelle ?>',
147 // noter qu'il est possible (parce que souhaitable je ne pense pas) d'envoyer une requête AJAX 148
148 // en indiquant une adresse "statique" du type: fichier.txt ou .xml, jpg, png, etc,
149
150 // Headers supplémentaires envoyés avec la requête 149 // Headers supplémentaires envoyés avec la requête
151 // c'est ici qu'on installe les mécanismes de sécurités comme l'authentification et la protection au CSRF 150 // c'est ici qu'on installe les mécanismes de sécurités comme l'authentification et la protection au CSRF
152 headers: { 151 headers: {
@@ -171,11 +170,12 @@ if($page_actuelle == 'discographie')
171 //alert(ClassicEditor.builtinPlugins.map( plugin => plugin.pluginName )); 170 //alert(ClassicEditor.builtinPlugins.map( plugin => plugin.pluginName ));
172 171
173 var initial = '<?= $texte ?>'; 172 var initial = '<?= $texte ?>';
173
174 editor.setData(initial); 174 editor.setData(initial);
175 } ) 175 } )
176 .catch( error => { 176 .catch( error => {
177 console.error( error ); 177 console.error( error );
178 } ); 178 } );
179 </script> 179 </script>
180 </form> 180 </form>
181 </div> 181 </div>
diff --git a/view/template.php b/view/template.php
index aeb157a..9422736 100644
--- a/view/template.php
+++ b/view/template.php
@@ -10,8 +10,8 @@
10 10
11 <!-- <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> --> 11 <!-- <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> -->
12 <link rel="icon" type="image/png" href="public/mouette-logo.png" > 12 <link rel="icon" type="image/png" href="public/mouette-logo.png" >
13 <link rel="stylesheet" type="text/css" href="public/normalize.css"> 13 <link rel="stylesheet" type="text/css" href="public/css/normalize.css">
14 <link rel="stylesheet" type="text/css" href="public/accueil.css" /> 14 <link rel="stylesheet" type="text/css" href="public/css/accueil.css" />
15<?php 15<?php
16if(isset($css)) // fichiers CSS supplémentaires 16if(isset($css)) // fichiers CSS supplémentaires
17{ 17{
@@ -80,8 +80,9 @@ if($_SESSION['admin'] == 1)
80 <p><a href="index.php?from=<?= $page_actuelle ?>&action=sauvegarde" > 80 <p><a href="index.php?from=<?= $page_actuelle ?>&action=sauvegarde" >
81 Sauvegarder les données de tout le site.</a></p> 81 Sauvegarder les données de tout le site.</a></p>
82 <p><a href="index.php?from=<?= $page_actuelle ?>&action=restauration" >Restaurer les données avec une sauvegarde.</a></p> 82 <p><a href="index.php?from=<?= $page_actuelle ?>&action=restauration" >Restaurer les données avec une sauvegarde.</a></p>
83 <p><a href="melainePHP.zip" > 83 <p><a href="data/melainePHP.zip" >
84 Télécharger le code PHP pour migration.</a></p> 84 Télécharger le code PHP pour migration.
85 </a></p>
85 </div> 86 </div>
86 </div> 87 </div>
87<?php 88<?php
diff --git a/à faire après livraison.txt b/à faire après livraison.txt
index da55d4e..c283c22 100644
--- a/à faire après livraison.txt
+++ b/à faire après livraison.txt
@@ -2,6 +2,8 @@ Le reste du site
2 2
3liens sans http dans l'éditeur 3liens sans http dans l'éditeur
4 4
5plugin autosave
6
5Editeur "inline" ou "balloon block" 7Editeur "inline" ou "balloon block"
6 8
7Possibilité de regarder une image en grand dans une fenêtre javascript 9Possibilité de regarder une image en grand dans une fenêtre javascript
diff --git a/à faire avant livraison.txt b/à faire avant livraison.txt
index b852baf..7823545 100644
--- a/à faire avant livraison.txt
+++ b/à faire avant livraison.txt
@@ -1,9 +1,10 @@
1tri des albums selon l'année 1Sauvegarde des données !!
2(avec des plages de timestamps?)
3 2
4Identification avec deux codes (login + mot de passe) 3menu chronologie page album
5 4
6fichier backup.php -> mettre le html à part 5remplacer l'encadré orange
7 6
8Sauvegarde des données !! 7tri des albums selon l'année
8(avec des plages de timestamps?)
9 9
10Identification avec deux codes (login + mot de passe)