diff options
author | polo <ordipolo@gmx.fr> | 2025-07-18 22:21:31 +0200 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2025-07-18 22:21:31 +0200 |
commit | 68746cb30bb0c85539761ee8f0fd7647015c96e7 (patch) | |
tree | 779c782cab3fd666f22e8be106c9f44c30fc94f8 | |
parent | b55a029a5b4867349a172873d20a6ffd91c20e23 (diff) | |
download | cms-68746cb30bb0c85539761ee8f0fd7647015c96e7.zip |
détection des MAJ du CSS et JS avec versioning des fichiers
-rw-r--r-- | public/css/foot.css | 1 | ||||
-rw-r--r-- | src/view/HeadBuilder.php | 25 |
2 files changed, 19 insertions, 7 deletions
diff --git a/public/css/foot.css b/public/css/foot.css index 0eb250e..ad86305 100644 --- a/public/css/foot.css +++ b/public/css/foot.css | |||
@@ -77,6 +77,7 @@ footer > div | |||
77 | .footer_logo img | 77 | .footer_logo img |
78 | { | 78 | { |
79 | max-width: 288px; | 79 | max-width: 288px; |
80 | min-width: 150px; | ||
80 | } | 81 | } |
81 | @media screen and (max-width: 1000px) | 82 | @media screen and (max-width: 1000px) |
82 | { | 83 | { |
diff --git a/src/view/HeadBuilder.php b/src/view/HeadBuilder.php index 16fe3e5..f1f41ba 100644 --- a/src/view/HeadBuilder.php +++ b/src/view/HeadBuilder.php | |||
@@ -26,25 +26,25 @@ class HeadBuilder extends AbstractBuilder | |||
26 | $css = ''; | 26 | $css = ''; |
27 | foreach($css_array as $name) | 27 | foreach($css_array as $name) |
28 | { | 28 | { |
29 | $css .= '<link rel="stylesheet" href="css/' . $name . '.css">' . "\n"; | 29 | $css .= '<link rel="stylesheet" href="' . $this->versionedFileURL('css', $name) . '">' . "\n"; |
30 | } | 30 | } |
31 | 31 | ||
32 | $js = ''; | 32 | $js = ''; |
33 | foreach($js_array as $name) | 33 | foreach($js_array as $name) |
34 | { | 34 | { |
35 | $js .= '<script src="js/' . $name . '.js"></script>' . "\n"; | 35 | $js .= '<script src="' . $this->versionedFileURL('js', $name) . '"></script>' . "\n"; |
36 | } | 36 | } |
37 | 37 | ||
38 | if(MainBuilder::$modif_mode){ | 38 | if(MainBuilder::$modif_mode){ |
39 | $css .= '<link rel="stylesheet" href="css/modif_page.css">' . "\n"; | 39 | $css .= '<link rel="stylesheet" href="' . $this->versionedFileURL('css', 'modif_page') . '">' . "\n"; |
40 | $js .= '<script src="js/modif_page.js"></script>' . "\n"; | 40 | $js .= '<script src="' . $this->versionedFileURL('js', 'modif_page') . '"></script>' . "\n"; |
41 | } | 41 | } |
42 | 42 | ||
43 | // tinymce, nécéssite un script de copie dans composer.json | 43 | // tinymce, nécéssite un script de copie dans composer.json |
44 | if($_SESSION['admin']){ | 44 | if($_SESSION['admin']){ |
45 | $css .= '<link rel="stylesheet" href="css/tinymce.css">' . "\n"; | 45 | $css .= '<link rel="stylesheet" href="' . $this->versionedFileURL('css', 'tinymce') . '">' . "\n"; |
46 | $js .= '<script src="js/tinymce/tinymce.min.js"></script>' . "\n"; | 46 | $js .= '<script src="' . $this->versionedFileURL('js', 'tinymce/tinymce.min') . '"></script>' . "\n"; // pour js/tinymce/tinymce.min.js |
47 | $js .= '<script src="js/tinymce.js"></script>' . "\n"; | 47 | $js .= '<script src="' . $this->versionedFileURL('js', 'tinymce') . '"></script>' . "\n"; |
48 | } | 48 | } |
49 | 49 | ||
50 | // titre | 50 | // titre |
@@ -76,4 +76,15 @@ class HeadBuilder extends AbstractBuilder | |||
76 | { | 76 | { |
77 | return $this->stop; | 77 | return $this->stop; |
78 | } | 78 | } |
79 | |||
80 | private function versionedFileURL(string $type, string $filename): string | ||
81 | { | ||
82 | $path = $type . '/' . $filename . '.' . $type; | ||
83 | |||
84 | if(file_exists($path)){ | ||
85 | $version = substr(md5_file($path), 0, 8); | ||
86 | return $path . '?v=' . $version; | ||
87 | } | ||
88 | return $path; // sécurité fichier absent | ||
89 | } | ||
79 | } | 90 | } |