aboutsummaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-10-23 14:15:01 +0200
committerpolo <ordipolo@gmx.fr>2025-10-23 14:15:01 +0200
commitf9a9bf1ae4fac9317fd71f0bcb207544b000e6f1 (patch)
treea0ca5cdc0374529b80951d7d126f1c49442bae68 /public
parentdb5521f7b194190013dd0ad606a018ab68464562 (diff)
downloadcms-f9a9bf1ae4fac9317fd71f0bcb207544b000e6f1.zip
téléchargement d'assets dans head, header et footer
Diffstat (limited to 'public')
-rw-r--r--public/css/body.css5
-rw-r--r--public/css/foot.css15
-rw-r--r--public/css/head.css17
-rw-r--r--public/js/InputFile.js51
-rw-r--r--public/js/InputText.js15
-rw-r--r--public/user_data/assets/favicon48x48.png (renamed from public/assets/favicon48x48.png)bin3067 -> 3067 bytes
-rw-r--r--public/user_data/assets/fond-piscine.jpg (renamed from public/assets/fond-piscine.jpg)bin24757 -> 24757 bytes
-rw-r--r--public/user_data/assets/logo-120x75.jpg (renamed from public/assets/logo-120x75.jpg)bin12240 -> 12240 bytes
-rw-r--r--public/user_data/assets/logo-150x94.jpg (renamed from public/assets/logo-150x94.jpg)bin13506 -> 13506 bytes
-rw-r--r--public/user_data/assets/logo-nb-et-ffn.png (renamed from public/assets/logo-nb-et-ffn.png)bin61236 -> 61236 bytes
-rw-r--r--public/user_data/assets/logo2.jpg (renamed from public/assets/logo2.jpg)bin36899 -> 36899 bytes
11 files changed, 76 insertions, 27 deletions
diff --git a/public/css/body.css b/public/css/body.css
index 8ad3a52..cadf955 100644
--- a/public/css/body.css
+++ b/public/css/body.css
@@ -43,7 +43,7 @@ main
43 margin: auto; 43 margin: auto;
44 /*max-width: 1200px;*/ 44 /*max-width: 1200px;*/
45 background-color: #E3F3FF; 45 background-color: #E3F3FF;
46 padding: 15px 0; 46 padding: 15px;
47} 47}
48.hidden 48.hidden
49{ 49{
@@ -51,8 +51,7 @@ main
51} 51}
52section 52section
53{ 53{
54 margin: 10px 0; 54 margin-top: 20px;
55 padding: 15px;
56} 55}
57section > h3 56section > h3
58{ 57{
diff --git a/public/css/foot.css b/public/css/foot.css
index 8d0a94d..8a0d08d 100644
--- a/public/css/foot.css
+++ b/public/css/foot.css
@@ -14,11 +14,12 @@ footer > div
14 max-width: 1200px; 14 max-width: 1200px;
15 display: flex; 15 display: flex;
16 justify-content: space-around; 16 justify-content: space-around;
17 flex-wrap: wrap;
17} 18}
18 19
19.contact 20footer .data > div
20{ 21{
21 margin: 16px 0; /* alignement avec la <p> autour du logo */ 22 margin: 20px 10px;
22} 23}
23.contact a 24.contact a
24{ 25{
@@ -73,7 +74,7 @@ footer > div
73 margin: 0 3px; 74 margin: 0 3px;
74}*/ 75}*/
75 76
76.footer_logo img 77#footer_logo_img
77{ 78{
78 max-width: 288px; 79 max-width: 288px;
79 min-width: 150px; 80 min-width: 150px;
@@ -85,14 +86,6 @@ footer > div
85 width: 70px; 86 width: 70px;
86 } 87 }
87} 88}
88@media screen and (max-width: 800px)
89{
90 footer > div
91 {
92 flex-direction: column;
93 align-items: center;
94 }
95}
96 89
97.breadcrumb a 90.breadcrumb a
98{ 91{
diff --git a/public/css/head.css b/public/css/head.css
index b173077..4206044 100644
--- a/public/css/head.css
+++ b/public/css/head.css
@@ -17,7 +17,12 @@ header
17 display: none; 17 display: none;
18} 18}
19 19
20.header-content 20.background_button
21{
22 max-height: 24px;
23}
24
25.header_content
21{ 26{
22 padding: 20px 0; 27 padding: 20px 0;
23 display: grid; 28 display: grid;
@@ -27,12 +32,12 @@ header
27/*.header_left_col 32/*.header_left_col
28{}*/ 33{}*/
29@media screen and (max-width: 1000px){ 34@media screen and (max-width: 1000px){
30 .header-content{ 35 .header_content{
31 padding: 18px 0; 36 padding: 18px 0;
32 } 37 }
33} 38}
34@media screen and (max-width: 450px){ 39@media screen and (max-width: 450px){
35 .header-content 40 .header_content
36 { 41 {
37 /*grid-template-columns: 1fr 2fr 1fr;*/ 42 /*grid-template-columns: 1fr 2fr 1fr;*/
38 display: block; 43 display: block;
@@ -69,16 +74,16 @@ header img
69{ 74{
70 vertical-align: bottom; /* supprime espace sous l'image */ 75 vertical-align: bottom; /* supprime espace sous l'image */
71 max-width: 150px; 76 max-width: 150px;
72 max-height: 75px; 77 max-height: 100px;
73} 78}
74header a 79header a
75{ 80{
76 color: unset; /* ne plus hériter */ 81 color: unset; /* ne plus hériter */
77 text-decoration: none; 82 text-decoration: none;
78} 83}
79#edit_favicon_zone 84.editing_zone > div
80{ 85{
81 margin-bottom: 10px; 86 /*display: inline;*/ /* à l'ancienne */
82} 87}
83/*.header_right_col 88/*.header_right_col
84{}*/ 89{}*/
diff --git a/public/js/InputFile.js b/public/js/InputFile.js
new file mode 100644
index 0000000..f5e450c
--- /dev/null
+++ b/public/js/InputFile.js
@@ -0,0 +1,51 @@
1// étendre une classe parente avec InputFile?
2class InputFile{
3 constructor(name){
4 this.name = name;
5 this.parent = document.getElementById(name);
6 }
7 open(){
8 this.parent.querySelector('#' + this.name + '_img').classList.add('hidden');
9 this.parent.querySelector('#' + this.name + '_input').classList.remove('hidden');
10 this.parent.querySelector('#' + this.name + '_open').classList.add('hidden');
11 this.parent.querySelector('#' + this.name + '_submit').classList.remove('hidden');
12 this.parent.querySelector('#' + this.name + '_cancel').classList.remove('hidden');
13 }
14 close(){
15 this.parent.querySelector('#' + this.name + '_img').classList.remove('hidden');
16 this.parent.querySelector('#' + this.name + '_input').classList.add('hidden');
17 this.parent.querySelector('#' + this.name + '_open').classList.remove('hidden');
18 this.parent.querySelector('#' + this.name + '_submit').classList.add('hidden');
19 this.parent.querySelector('#' + this.name + '_cancel').classList.add('hidden');
20 }
21 submit(){
22 const file = this.parent.querySelector('#' + this.name + '_input').files[0];
23 if(!file){
24 console.error("Erreur: aucun fichier sélectionné.");
25 return;
26 }
27 const form_data = new FormData();
28 form_data.append('file', file);
29
30 fetch('index.php?head_foot_image=' + this.name, {
31 method: 'POST', // apparemment il faudrait utiliser PUT
32 body: form_data
33 })
34 .then(response => response.json())
35 .then(data => {
36 if(data.success){
37 this.parent.querySelector('#' + this.name + '_img').src = data.location;
38 this.close(this.name);
39 }
40 else{
41 console.error("Erreur: le serveur n'a pas enregistré l'image'.");
42 }
43 })
44 .catch(error => {
45 console.error('Erreur:', error);
46 });
47 }
48 cancel(){
49 this.close(this.name);
50 }
51} \ No newline at end of file
diff --git a/public/js/InputText.js b/public/js/InputText.js
index ba7e8e4..33dcf8d 100644
--- a/public/js/InputText.js
+++ b/public/js/InputText.js
@@ -1,27 +1,28 @@
1// s'en servir dans menu et chemin 1// s'en servir dans menu et chemin
2// étendre un classe parente avec InputText?
2class InputText{ 3class InputText{
3 constructor(name){ 4 constructor(name){
4 this.name = name; 5 this.name = name;
5 this.parent = document.getElementById(name); 6 this.parent = document.getElementById(name);
6 } 7 }
7 openTextInput(){ 8 open(){
8 this.parent.querySelector('#' + this.name + '_span').classList.add('hidden'); 9 this.parent.querySelector('#' + this.name + '_span').classList.add('hidden');
9 this.parent.querySelector('#' + this.name + '_input').classList.remove('hidden'); 10 this.parent.querySelector('#' + this.name + '_input').classList.remove('hidden');
10 this.parent.querySelector('#' + this.name + '_open').classList.add('hidden'); 11 this.parent.querySelector('#' + this.name + '_open').classList.add('hidden');
11 this.parent.querySelector('#' + this.name + '_submit').classList.remove('hidden'); 12 this.parent.querySelector('#' + this.name + '_submit').classList.remove('hidden');
12 this.parent.querySelector('#' + this.name + '_cancel').classList.remove('hidden'); 13 this.parent.querySelector('#' + this.name + '_cancel').classList.remove('hidden');
13 } 14 }
14 closeTextInput(){ 15 close(){
15 this.parent.querySelector('#' + this.name + '_span').classList.remove('hidden'); 16 this.parent.querySelector('#' + this.name + '_span').classList.remove('hidden');
16 this.parent.querySelector('#' + this.name + '_input').classList.add('hidden'); 17 this.parent.querySelector('#' + this.name + '_input').classList.add('hidden');
17 this.parent.querySelector('#' + this.name + '_open').classList.remove('hidden'); 18 this.parent.querySelector('#' + this.name + '_open').classList.remove('hidden');
18 this.parent.querySelector('#' + this.name + '_submit').classList.add('hidden'); 19 this.parent.querySelector('#' + this.name + '_submit').classList.add('hidden');
19 this.parent.querySelector('#' + this.name + '_cancel').classList.add('hidden'); 20 this.parent.querySelector('#' + this.name + '_cancel').classList.add('hidden');
20 } 21 }
21 submitTextInput(){ 22 submit(){
22 const new_text = this.parent.querySelector('#' + this.name + '_input').value; 23 const new_text = this.parent.querySelector('#' + this.name + '_input').value;
23 24
24 fetch('index.php?entire_site_edit=' + this.name, { 25 fetch('index.php?head_foot_text=' + this.name, {
25 method: 'POST', 26 method: 'POST',
26 headers: { 'Content-Type': 'application/json' }, 27 headers: { 'Content-Type': 'application/json' },
27 body: JSON.stringify({new_text: new_text}) 28 body: JSON.stringify({new_text: new_text})
@@ -30,7 +31,7 @@ class InputText{
30 .then(data => { 31 .then(data => {
31 if(data.success){ 32 if(data.success){
32 this.parent.querySelector('#' + this.name + '_span').innerHTML = new_text; 33 this.parent.querySelector('#' + this.name + '_span').innerHTML = new_text;
33 this.closeTextInput(this.name); 34 this.close(this.name);
34 } 35 }
35 else{ 36 else{
36 console.error("Erreur: le serveur n'a pas enregistré le nouveau texte."); 37 console.error("Erreur: le serveur n'a pas enregistré le nouveau texte.");
@@ -40,8 +41,8 @@ class InputText{
40 console.error('Erreur:', error); 41 console.error('Erreur:', error);
41 }); 42 });
42 } 43 }
43 cancelTextInput(){ 44 cancel(){
44 this.parent.querySelector('#' + this.name + '_input').value = this.parent.querySelector('#' + this.name + '_span').innerHTML; 45 this.parent.querySelector('#' + this.name + '_input').value = this.parent.querySelector('#' + this.name + '_span').innerHTML;
45 this.closeTextInput(this.name); 46 this.close(this.name);
46 } 47 }
47} \ No newline at end of file 48} \ No newline at end of file
diff --git a/public/assets/favicon48x48.png b/public/user_data/assets/favicon48x48.png
index 9825db1..9825db1 100644
--- a/public/assets/favicon48x48.png
+++ b/public/user_data/assets/favicon48x48.png
Binary files differ
diff --git a/public/assets/fond-piscine.jpg b/public/user_data/assets/fond-piscine.jpg
index 239d95d..239d95d 100644
--- a/public/assets/fond-piscine.jpg
+++ b/public/user_data/assets/fond-piscine.jpg
Binary files differ
diff --git a/public/assets/logo-120x75.jpg b/public/user_data/assets/logo-120x75.jpg
index b58a7a6..b58a7a6 100644
--- a/public/assets/logo-120x75.jpg
+++ b/public/user_data/assets/logo-120x75.jpg
Binary files differ
diff --git a/public/assets/logo-150x94.jpg b/public/user_data/assets/logo-150x94.jpg
index 67ec6cc..67ec6cc 100644
--- a/public/assets/logo-150x94.jpg
+++ b/public/user_data/assets/logo-150x94.jpg
Binary files differ
diff --git a/public/assets/logo-nb-et-ffn.png b/public/user_data/assets/logo-nb-et-ffn.png
index f51ac9c..f51ac9c 100644
--- a/public/assets/logo-nb-et-ffn.png
+++ b/public/user_data/assets/logo-nb-et-ffn.png
Binary files differ
diff --git a/public/assets/logo2.jpg b/public/user_data/assets/logo2.jpg
index 39c03bd..39c03bd 100644
--- a/public/assets/logo2.jpg
+++ b/public/user_data/assets/logo2.jpg
Binary files differ