summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-07-18 22:21:31 +0200
committerpolo <ordipolo@gmx.fr>2025-07-18 22:21:31 +0200
commit68746cb30bb0c85539761ee8f0fd7647015c96e7 (patch)
tree779c782cab3fd666f22e8be106c9f44c30fc94f8 /src
parentb55a029a5b4867349a172873d20a6ffd91c20e23 (diff)
downloadcms-68746cb30bb0c85539761ee8f0fd7647015c96e7.zip
détection des MAJ du CSS et JS avec versioning des fichiers
Diffstat (limited to 'src')
-rw-r--r--src/view/HeadBuilder.php25
1 files changed, 18 insertions, 7 deletions
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}