summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--controller/admin.php23
-rw-r--r--controller/backup.php3
-rw-r--r--controller/installation.php2
-rw-r--r--controller/visitor.php35
-rw-r--r--index.php9
-rw-r--r--public/css/donnees_hors_editeur.css3
-rw-r--r--public/css/menu.css28
-rw-r--r--public/file_upload.js6
-rw-r--r--public/icone_modifier.pngbin0 -> 8809 bytes
-rw-r--r--public/icone_supprimer.pngbin7277 -> 7087 bytes
-rw-r--r--view/articlesContent.php102
-rw-r--r--view/discographie.php3
-rw-r--r--view/menu.php30
-rw-r--r--view/pageArticlesSimples.php123
-rw-r--r--à faire après livraison.txt6
15 files changed, 223 insertions, 150 deletions
diff --git a/controller/admin.php b/controller/admin.php
index f092135..c79f761 100644
--- a/controller/admin.php
+++ b/controller/admin.php
@@ -1,7 +1,7 @@
1<?php 1<?php
2// controller/admin.php 2// controller/admin.php
3// 3//
4// utilisation du site en écriture (admin uniquement) 4// utilisation du site en écriture (admin uniquement):
5// éditeur ouvert ou suppression d'un élément 5// éditeur ouvert ou suppression d'un élément
6 6
7function pageArticlesSimplesAdmin(string $page, string $title, string $headerPaintedTitle, $fileCode, int $suppression) 7function pageArticlesSimplesAdmin(string $page, string $title, string $headerPaintedTitle, $fileCode, int $suppression)
@@ -73,16 +73,33 @@ function pageArticlesSimplesAdmin(string $page, string $title, string $headerPai
73 // NB: penser à ajouter au template la fonctionnalité "autosave" 73 // NB: penser à ajouter au template la fonctionnalité "autosave"
74 // https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/saving-data.html 74 // https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/saving-data.html
75 75
76 // morceaux en HTML à assembler 76 // Assemblage
77
77 // variable $editeurHTML, contient $texte 78 // variable $editeurHTML, contient $texte
78 require('view/template-formulaires.php'); 79 require('view/template-formulaires.php');
79 // variables $css, $js, $header et $content, 80 // variables $css, $js, $header, $content et $headerImage
80 // $content contient $articles et $editeurHTML 81 // $content contient $articles et $editeurHTML
82 require('view/articlesContent.php');
83 if($page == 'menu')
84 {
85 // variables $css, $js, $header et $content
86 require('view/menu.php');
87 }
81 require('view/pageArticlesSimples.php'); 88 require('view/pageArticlesSimples.php');
82 // fin de l'assemblage 89 // fin de l'assemblage
83 require('view/template.php'); 90 require('view/template.php');
84} 91}
85 92
93// un article (= actualité)
94function menuEdit($fileCode, $suppression)
95{
96 $page = "menu";
97 $title = "Melaine Favennec - menu BD";
98 $headerPaintedTitle = 'Choisissez une rubrique';
99 pageArticlesSimplesAdmin($page, $title, $headerPaintedTitle, $fileCode, $suppression);
100}
101
102// plusieurs articles
86function melaineEdit($fileCode, $suppression) 103function melaineEdit($fileCode, $suppression)
87{ 104{
88 $page = "melaine"; 105 $page = "melaine";
diff --git a/controller/backup.php b/controller/backup.php
index b1a2491..62f08a1 100644
--- a/controller/backup.php
+++ b/controller/backup.php
@@ -64,7 +64,8 @@ function createZip($destinationPath, $zipFileName, array $targetDirectories, arr
64 // recherche récursive dans les dossiers dans $directories 64 // recherche récursive dans les dossiers dans $directories
65 foreach($targetDirectories as $path) 65 foreach($targetDirectories as $path)
66 { 66 {
67 // les deux lignes suivantes reviennent à utiliser le paramètre "-r" dans la console 67 // les deux lignes suivantes permettent de le faire
68 // c'est comme utiliser le paramètre "-r" dans la console
68 $directory = new RecursiveDirectoryIterator($path); 69 $directory = new RecursiveDirectoryIterator($path);
69 $iterator = new RecursiveIteratorIterator($directory); 70 $iterator = new RecursiveIteratorIterator($directory);
70 71
diff --git a/controller/installation.php b/controller/installation.php
index 3b940c8..1c90026 100644
--- a/controller/installation.php
+++ b/controller/installation.php
@@ -83,7 +83,7 @@ function installation()
83 createIndexPHP('data/index.php', $droitsFichiers); 83 createIndexPHP('data/index.php', $droitsFichiers);
84 } 84 }
85 85
86 $listePages = array('melaine', 'musique', 'discographie', 'presse', 'jaime', 'peinture', 'archives', 'legal'); 86 $listePages = array('menu', 'melaine', 'musique', 'discographie', 'presse', 'jaime', 'peinture', 'archives', 'legal');
87 foreach ($listePages as $page) 87 foreach ($listePages as $page)
88 { 88 {
89 if(!file_exists('data/' . $page)) 89 if(!file_exists('data/' . $page))
diff --git a/controller/visitor.php b/controller/visitor.php
index 38f24e8..333c628 100644
--- a/controller/visitor.php
+++ b/controller/visitor.php
@@ -1,7 +1,8 @@
1<?php 1<?php
2// controller/visitor.php 2// controller/visitor.php
3// 3//
4// affichage du site en lecture seul (visiteur ou admin) 4// affichage du site en lecture seul:
5// mode visiteur ou mode admin sans éditeur ouvert
5 6
6// pages du sites 7// pages du sites
7function accueil() 8function accueil()
@@ -16,18 +17,7 @@ function accueil()
16 require('view/template.php'); 17 require('view/template.php');
17} 18}
18 19
19function menu() 20// toutes les pages du menu sauf discographie
20{
21 $title = "Melaine Favennec - menu BD";
22 $page = "menu";
23
24 // variables $css, $js, $header et $content
25 require('view/menu.php');
26 // fin de l'assemblage
27 require('view/template.php');
28}
29
30// toutes celles du menu sauf: menu et discographie
31function pageArticlesSimplesVisitor(string $page, string $title, string $headerPaintedTitle) 21function pageArticlesSimplesVisitor(string $page, string $title, string $headerPaintedTitle)
32{ 22{
33 // infos sur les fichiers $Articles->fileList 23 // infos sur les fichiers $Articles->fileList
@@ -45,12 +35,27 @@ function pageArticlesSimplesVisitor(string $page, string $title, string $headerP
45 $Articles->fileList = array_reverse($Articles->fileList); 35 $Articles->fileList = array_reverse($Articles->fileList);
46 } 36 }
47 37
48 // variables $css, $js, $header, $content et $headerImage 38 // Assemblage
39 require('view/articlesContent.php');
40 if($page == 'menu')
41 {
42 // variables $css, $js, $header et $content
43 require('view/menu.php');
44 }
49 require('view/pageArticlesSimples.php'); 45 require('view/pageArticlesSimples.php');
50 // HTML
51 require('view/template.php'); 46 require('view/template.php');
52} 47}
53 48
49// un article (= actualité)
50function menuVisitor()
51{
52 $page = "menu";
53 $title = "Melaine Favennec - menu BD";
54 $headerPaintedTitle = 'Choisissez une rubrique';
55 pageArticlesSimplesVisitor($page, $title, $headerPaintedTitle);
56}
57
58// plusieurs articles
54function melaineVisitor() 59function melaineVisitor()
55{ 60{
56 $page = "melaine"; 61 $page = "melaine";
diff --git a/index.php b/index.php
index 907dd9b..ac3910b 100644
--- a/index.php
+++ b/index.php
@@ -125,7 +125,8 @@ if(isset($_GET['action']) && isset($_GET['page']))
125require('controller/visitor.php'); 125require('controller/visitor.php');
126 126
127// modèle 127// modèle
128if(isset($_GET['page']) && $_GET['page'] != 'menu') 128//if(isset($_GET['page']) && $_GET['page'] != 'menu')
129if(isset($_GET['page'])) // utile?
129{ 130{
130 require('model/Article.php'); 131 require('model/Article.php');
131 if($_GET['page'] == 'discographie' || $_GET['page'] == 'album') 132 if($_GET['page'] == 'discographie' || $_GET['page'] == 'album')
@@ -151,7 +152,7 @@ else
151// page du site demandée 152// page du site demandée
152if(isset($_GET['page'])) 153if(isset($_GET['page']))
153{ 154{
154 $pagesArticlesSimples = ['melaine', 'musique', 'presse', 'jaime', 'peinture', 'archives', 'legal']; 155 $pagesArticlesSimples = ['menu', 'melaine', 'musique', 'presse', 'jaime', 'peinture', 'archives', 'legal'];
155 156
156 // page d'accueil 157 // page d'accueil
157 if($_GET['page'] == 'accueil') 158 if($_GET['page'] == 'accueil')
@@ -159,10 +160,10 @@ if(isset($_GET['page']))
159 accueil(); 160 accueil();
160 } 161 }
161 // page menu 162 // page menu
162 elseif($_GET['page'] == 'menu') 163 /*elseif($_GET['page'] == 'menu')
163 { 164 {
164 menu(); 165 menu();
165 } 166 }*/
166 // pages avec articles simples 167 // pages avec articles simples
167 elseif(in_array($_GET['page'], $pagesArticlesSimples)) 168 elseif(in_array($_GET['page'], $pagesArticlesSimples))
168 { 169 {
diff --git a/public/css/donnees_hors_editeur.css b/public/css/donnees_hors_editeur.css
index d54d7ff..409dc59 100644
--- a/public/css/donnees_hors_editeur.css
+++ b/public/css/donnees_hors_editeur.css
@@ -23,7 +23,8 @@ input[type="checkbox"]:checked{border: none; background: #26ab33;}
23td p{margin: 0px;} 23td p{margin: 0px;}
24 24
25.image{width: fit-content;margin: 0px;text-align: center;margin: auto;/*height: 100%;*/} 25.image{width: fit-content;margin: 0px;text-align: center;margin: auto;/*height: 100%;*/}
26.image img{width: 100%;} 26/*.image img{width: 100%;}*/
27img{max-width: 100%;}
27.image-style-side{float: right;} 28.image-style-side{float: right;}
28.image-style-side:not(.image_resized){max-width: 50%;} 29.image-style-side:not(.image_resized){max-width: 50%;}
29.image>figcaption{padding: 7px; text-align: center; font-size: small; background-color: #f0f0f0;} 30.image>figcaption{padding: 7px; text-align: center; font-size: small; background-color: #f0f0f0;}
diff --git a/public/css/menu.css b/public/css/menu.css
index 4c521c0..559a594 100644
--- a/public/css/menu.css
+++ b/public/css/menu.css
@@ -5,6 +5,34 @@
5 color: #e8c5c0; 5 color: #e8c5c0;
6} 6}
7 7
8.boutonArticle
9{
10 border-bottom: 3px black double;
11}
12.boutonNouvelArticle
13{
14 font-size: 90%;
15}
16.boutonArticle a
17{
18 padding: 2px;
19 border: 4px black groove;
20}
21
22.sectionActu
23{}
24
25header h3
26{
27 text-align: center;
28}
29
30.articleActu > *:not(.boutonArticle)
31{
32 max-width: 50%;
33 margin: auto;
34}
35
8#contenu 36#contenu
9{ 37{
10 display: flex; 38 display: flex;
diff --git a/public/file_upload.js b/public/file_upload.js
index 8106806..dd47803 100644
--- a/public/file_upload.js
+++ b/public/file_upload.js
@@ -1,8 +1,8 @@
1// public/file_upload.js 1// public/file_upload.js
2 2
3// envoie gros fichier ZIP 3// envoie d'un gros fichier ZIP en contournant la limite du php.ini
4// ce fichier est "caché", le serveur ne l'envoit 4// ce fichier est "caché", le serveur ne l'envoit qu'à
5// qu'un utilisateur connecté et sur la page "restauration" 5// un utilisateur connecté et sur la page "restauration"
6 6
7// -> input file onchange 7// -> input file onchange
8function sendFileSize() 8function sendFileSize()
diff --git a/public/icone_modifier.png b/public/icone_modifier.png
new file mode 100644
index 0000000..3691389
--- /dev/null
+++ b/public/icone_modifier.png
Binary files differ
diff --git a/public/icone_supprimer.png b/public/icone_supprimer.png
index bfcf263..a9f3eaf 100644
--- a/public/icone_supprimer.png
+++ b/public/icone_supprimer.png
Binary files differ
diff --git a/view/articlesContent.php b/view/articlesContent.php
new file mode 100644
index 0000000..fe71204
--- /dev/null
+++ b/view/articlesContent.php
@@ -0,0 +1,102 @@
1<?php
2// view/articlesContent.php
3
4// variable $articlesContent
5ob_start();
6if($_SESSION['admin'] == 1)
7{
8 // à la place du bouton après rechargement
9 if(isset($_GET['action']) && $_GET['action'] == 'editor' && !isset($_GET['file_code']))
10 {
11 $style = 'class="articleAvecEditeur"';
12?>
13 <div <?= $style ?>>
14 <h3>Rédiger un nouvel article</h3>
15<?php
16 echo($editeurHTML); // injection de template-formulaires.php
17 }
18
19 // bouton
20 else
21 {
22?>
23 <div>
24 <p class="boutonArticle boutonNouvelArticle" >
25 <a href="index.php?page=<?= $page ?>&action=editor" >
26 Nouvel article
27 </a>
28 </p>
29<?php
30 }
31?>
32 </div>
33<?php
34}
35
36// PAGINATION ??
37
38
39// tableau articles[] du plus récent au plus ancien
40for($i = 0; $i < $Articles->fileListCount; $i++)
41{
42 // la div invisible sert à la compensation des liens d'ancre #
43
44 // article modifié sur fond coloré
45 if(isset($fileCode) && $Articles->fileList[$i]['fileCode'] == $fileCode)
46 {
47 $style = 'class="articleAvecEditeur"';
48 }
49 elseif($page == 'menu')
50 {
51 $style = 'class="articleActu"';
52 }
53 else
54 {
55 $style = '';
56 }
57?>
58 <div class="zoneVideNav" ></div>
59 <article id="<?= $Articles->fileList[$i]['fileCode'] ?>">
60 <div <?= $style ?>>
61<?php
62
63 // remplacer un article par l'éditeur
64 if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'editor' && isset($_GET['file_code'])
65 && $_GET['file_code'] == $Articles->fileList[$i]['fileCode']
66 )
67 {
68 // on pourrait utiliser ici le timedate, ou encore le nom de l'article
69?>
70 <h3>Modification d'un article</h3>
71<?php
72 echo($editeurHTML); // injection de template-editor.php
73 }
74
75 // placer un article
76 else
77 {
78 // et voila
79 echo($Articles->fileList[$i]['content'] . "\n");
80
81 // bouton
82 if($_SESSION['admin'] == 1)
83 {
84 ?>
85 <p class="boutonArticle" >
86 <a href="index.php?page=<?= $page ?>&action=editor&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" >
87 Modifier cet article
88 </a>
89 &nbsp;<!-- un espace -->
90 <a href="index.php?page=<?= $page ?>&action=suppression&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>" onclick="confirmerSuppression()" >
91 Supprimer cet article
92 </a>
93 </p>
94 <?php
95 }
96 }
97?>
98 </div>
99 </article>
100<?php
101}
102$ArticlesContent = ob_get_clean(); \ No newline at end of file
diff --git a/view/discographie.php b/view/discographie.php
index 552eeab..2220715 100644
--- a/view/discographie.php
+++ b/view/discographie.php
@@ -149,9 +149,8 @@ for($i = 0; $i < $Albums->fileListCount; $i++)
149 ?> 149 ?>
150 <p> 150 <p>
151 <a href="index.php?<?= $lienBoutonModif[$i] ?>" > 151 <a href="index.php?<?= $lienBoutonModif[$i] ?>" >
152 Modifier l'album 152 <img src="public/icone_modifier.png" >
153 </a> 153 </a>
154 <!-- &nbsp; --><!-- un espace -->
155 <a href="index.php?page=discographie&action=suppression&file_code=<?= $Albums->fileList[$i]['fileCode'] ?>" onclick="confirmerSuppression()" > 154 <a href="index.php?page=discographie&action=suppression&file_code=<?= $Albums->fileList[$i]['fileCode'] ?>" onclick="confirmerSuppression()" >
156 <img src="public/icone_supprimer.png" > 155 <img src="public/icone_supprimer.png" >
157 </a> 156 </a>
diff --git a/view/menu.php b/view/menu.php
index 719c036..9ca47d7 100644
--- a/view/menu.php
+++ b/view/menu.php
@@ -1,33 +1,7 @@
1<?php 1<?php
2// view/menu.php 2// view/menu.php
3 3
4// variable $css 4// variable $menu
5ob_start();
6?>
7 <link rel="stylesheet" type="text/css" href="public/css/<?= $page ?>.css" />
8<?php
9$css = ob_get_clean();
10
11//variable $js
12ob_start();
13?>
14 <script type="text/javascript" src="public/main.js" ></script>
15<?php
16$js = ob_get_clean();
17
18// variable $header
19ob_start();
20echo "\n\n";
21?>
22 <header>
23 <div id="titre" >
24 <div class="police_titre" >Choisissez une rubrique</div>
25 </div>
26 </header>
27 <?php
28$header = ob_get_clean();
29
30// variable $content
31ob_start(); 5ob_start();
32echo "\n"; 6echo "\n";
33?> 7?>
@@ -69,4 +43,4 @@ echo "\n";
69 <a id="hey_ho" href="index.php?page=discographie" ></a> 43 <a id="hey_ho" href="index.php?page=discographie" ></a>
70 </div> 44 </div>
71<?php 45<?php
72$content = ob_get_clean(); \ No newline at end of file 46$menu = ob_get_clean(); \ No newline at end of file
diff --git a/view/pageArticlesSimples.php b/view/pageArticlesSimples.php
index 88cce4c..34f5dca 100644
--- a/view/pageArticlesSimples.php
+++ b/view/pageArticlesSimples.php
@@ -3,13 +3,23 @@
3 3
4// variable $css 4// variable $css
5ob_start(); 5ob_start();
6if($page == 'menu')
7{
8?>
9 <link rel="stylesheet" type="text/css" href="public/css/menu.css" />
10<?php
11}
12else
13{
6?> 14?>
7 <link rel="stylesheet" type="text/css" href="public/css/pages_articles_simples.css" /> 15 <link rel="stylesheet" type="text/css" href="public/css/pages_articles_simples.css" />
16<?php
17}
18?>
8 <link rel="stylesheet" type="text/css" href="public/css/donnees_hors_editeur.css" /> 19 <link rel="stylesheet" type="text/css" href="public/css/donnees_hors_editeur.css" />
9<?php 20<?php
10$css = ob_get_clean(); 21$css = ob_get_clean();
11 22
12
13//variable $js 23//variable $js
14ob_start(); 24ob_start();
15?> 25?>
@@ -51,107 +61,40 @@ ob_start();
51echo "\n"; 61echo "\n";
52?> 62?>
53 <header> 63 <header>
64
65<?php
66if($page == 'menu' && !empty($ArticlesContent))
67{
68?>
69 <h3>Actualité</h3>
70 <div class="sectionActu" >
71 <?= $ArticlesContent ?>
72 </div>
73<?php
74}
75?>
54 <div id="titre" > 76 <div id="titre" >
55 <div class="police_titre" ><?= $headerPaintedTitle ?></div> 77 <div class="police_titre" ><?= $headerPaintedTitle ?></div>
56 </div> 78 </div>
57 <?= $headerImage ?> 79<?php
80if($page != 'menu')
81{
82 echo($headerImage);
83}
84?>
58 </header> 85 </header>
59 <?php 86 <?php
60$header = ob_get_clean(); 87$header = ob_get_clean();
61 88
62 89
63
64// variable $content 90// variable $content
65ob_start(); 91ob_start();
66if($_SESSION['admin'] == 1) 92if($page == 'menu')
67{ 93{
68 // à la place du bouton après rechargement 94 echo($menu);
69 if(isset($_GET['action']) && $_GET['action'] == 'editor' && !isset($_GET['file_code']))
70 {
71 $style = 'class="articleAvecEditeur"';
72?>
73 <div <?= $style ?>>
74 <h3>Rédiger un nouvel article</h3>
75<?php
76 echo($editeurHTML); // injection de template-editor.php
77 }
78
79 // bouton
80 else
81 {
82?>
83 <div>
84 <p class="boutonArticle boutonNouvelArticle" >
85 <a href="index.php?page=<?= $page ?>&action=editor" >
86 Nouvel article
87 </a>
88 </p>
89<?php
90 }
91?>
92 </div>
93<?php
94} 95}
95 96else
96// on pourrait paginer avec des onglets de par exemple 10 articles
97
98// tableau articles[] du plus récent au plus ancien
99for($i = 0; $i < $Articles->fileListCount; $i++)
100{ 97{
101 // la div invisible sert à la compensation des liens d'ancre # 98 echo($ArticlesContent);
102
103 // article modifié sur fond coloré
104 if(isset($fileCode) && $Articles->fileList[$i]['fileCode'] == $fileCode)
105 {
106 $style = 'class="articleAvecEditeur"';
107 }
108 else
109 {
110 $style = '';
111 }
112?>
113 <div class="zoneVideNav" ></div>
114 <article id="<?= $Articles->fileList[$i]['fileCode'] ?>">
115 <div <?= $style ?>>
116<?php
117
118 // remplacer un article par l'éditeur
119 if($_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'editor' && isset($_GET['file_code'])
120 && $_GET['file_code'] == $Articles->fileList[$i]['fileCode']
121 )
122 {
123 // on pourrait utiliser ici le timedate, ou encore le nom de l'article
124?>
125 <h3>Modification d'un article</h3>
126<?php
127 echo($editeurHTML); // injection de template-editor.php
128 }
129
130 // placer un article
131 else
132 {
133 // et voila
134 echo($Articles->fileList[$i]['content'] . "\n");
135
136 // bouton
137 if($_SESSION['admin'] == 1)
138 {
139 ?>
140 <p class="boutonArticle" >
141 <a href="index.php?page=<?= $page ?>&action=editor&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>#<?= $Articles->fileList[$i]['fileCode'] ?>" >
142 Modifier cet article
143 </a>
144 &nbsp;<!-- un espace -->
145 <a href="index.php?page=<?= $page ?>&action=suppression&file_code=<?= $Articles->fileList[$i]['fileCode'] ?>" onclick="confirmerSuppression()" >
146 Supprimer cet article
147 </a>
148 </p>
149 <?php
150 }
151 }
152?>
153 </div>
154 </article>
155<?php
156} 99}
157$content = ob_get_clean(); 100$content = ob_get_clean();
diff --git a/à faire après livraison.txt b/à faire après livraison.txt
index 843971a..965d456 100644
--- a/à faire après livraison.txt
+++ b/à faire après livraison.txt
@@ -1,10 +1,12 @@
1créer page peinture 1créer page peinture
2 2
3hyperlien avec liens relatifs (par exemple dans emoi des mots)
4
3créer page musique 5créer page musique
4 6
5choix des polices dans les images de BD 7choix des polices dans les images de BD, police des titres avec caractère "ê"
6 8
7n'utiliser que les grandes dans le menu 9n'utiliser que les grandes images dans le menu
8 10
9images d'en-tête svg? 11images d'en-tête svg?
10 12