summaryrefslogtreecommitdiff
path: root/src/view/HeadBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/HeadBuilder.php')
-rw-r--r--src/view/HeadBuilder.php68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/view/HeadBuilder.php b/src/view/HeadBuilder.php
new file mode 100644
index 0000000..c31c930
--- /dev/null
+++ b/src/view/HeadBuilder.php
@@ -0,0 +1,68 @@
1<?php
2// src/view/HeadBuilder.php
3
4use App\Entity\Node;
5
6class HeadBuilder extends AbstractBuilder
7{
8 private bool $stop = false;
9
10 public function __construct(Node $node)
11 {
12 $viewFile = self::VIEWS_PATH . $node->getName() . '.php';
13
14 if(file_exists($viewFile))
15 {
16 // css et js
17 if(!empty($node->getAttributes()))
18 {
19 extract($node->getAttributes());
20 }
21
22 // pages spéciales où on n'assemble pas tout
23 $this->stop = isset($stop) ? $stop : false;
24 $css = '';
25 foreach($css_array as $name)
26 {
27 $css .= '<link rel="stylesheet" href="css/' . $name . '.css">' . "\n";
28 }
29 $js = '';
30 foreach($js_array as $name)
31 {
32 $js .= '<script src="js/' . $name . '.js"></script>' . "\n";
33 }
34
35 // tinymce, nécéssite un script de copie dans composer.json
36 if($_SESSION['admin']){
37 $css .= '<link rel="stylesheet" href="css/tinymce.css">' . "\n";
38 $js .= '<script src="js/tinymce/tinymce.min.js"></script>' . "\n";
39 $js .= '<script src="js/tinymce.js"></script>' . "\n";
40 }
41
42 // titre et description
43 if(!empty($node->getNodeData()->getData()))
44 {
45 extract($node->getNodeData()->getData());
46 }
47
48 // favicon
49 foreach($node->getNodeData()->getImages() as $image)
50 {
51 if(str_contains($image->getFileName(), 'favicon'))
52 {
53 $favicon = rtrim($image->getFilePathMini(), '/');
54 $alt = $image->getAlt();
55 }
56 }
57
58 ob_start();
59 require $viewFile;
60 $this->html .= ob_get_clean();
61 }
62 }
63
64 public function getStop(): bool
65 {
66 return $this->stop;
67 }
68}