summaryrefslogtreecommitdiff
path: root/src/view/NewPageBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/NewPageBuilder.php')
-rw-r--r--src/view/NewPageBuilder.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/view/NewPageBuilder.php b/src/view/NewPageBuilder.php
new file mode 100644
index 0000000..2fae6fa
--- /dev/null
+++ b/src/view/NewPageBuilder.php
@@ -0,0 +1,49 @@
1<?php
2// src/view/NewPageBuilder.php
3//
4// page Nouvelle page en mode admin, fonctionne avec new_page.js
5
6declare(strict_types=1);
7
8use App\Entity\Node;
9use App\Entity\Page;
10
11class NewPageBuilder extends AbstractBuilder
12{
13 //private int $margin_left_multiplier = 29;
14 private string $options = '';
15
16 public function __construct(Node $node = null)
17 {
18 //parent::__construct($node);
19 $viewFile = self::VIEWS_PATH . $node->getName() . '.php';
20
21 if(isset($_SESSION['admin']) && $_SESSION['admin'] && file_exists($viewFile))
22 {
23 /*if(!empty($node->getNodeData()->getData()))
24 {
25 extract($node->getNodeData()->getData());
26 }*/
27
28 $this->unfoldOptions(Director::$menu_data);
29
30 ob_start();
31 require $viewFile; // insertion de $this->html généré par unfoldMenu
32 $this->html = ob_get_clean(); // pas de concaténation .= cette fois on écrase
33 }
34 else{
35 header('Location: ' . new URL);
36 die;
37 }
38 }
39
40 private function unfoldOptions(Page $page): void
41 {
42 foreach($page->getChildren() as $entry){
43 $this->options .= '<option value="' . $entry->getId() . '">' . $entry->getPageName() . "</option>\n";
44 if(count($entry->getChildren()) > 0){
45 $this->unfoldOptions($entry);
46 }
47 }
48 }
49} \ No newline at end of file