From df3612ed7e6691530503f79483d2fdbc032d01b8 Mon Sep 17 00:00:00 2001 From: polo-pc-greta Date: Thu, 27 Mar 2025 10:13:03 +0100 Subject: mise en ligne github --- src/view/AbstractBuilder.php | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/view/AbstractBuilder.php (limited to 'src/view/AbstractBuilder.php') diff --git a/src/view/AbstractBuilder.php b/src/view/AbstractBuilder.php new file mode 100644 index 0000000..cd2b361 --- /dev/null +++ b/src/view/AbstractBuilder.php @@ -0,0 +1,52 @@ +getChildren() as $child_node) + { + $builder_name = $this->snakeToPascalCase($child_node->getName()) . 'Builder'; + $builder = new $builder_name($child_node); + $this->html .= $builder->render(); + + // pages spéciales où on n'assemble pas tout + if($builder_name === 'HeadBuilder' && $builder->getStop()) + { + foreach($node->getChildren() as $target_node){ + if($target_node->getName() === 'main'){ + $main_node = $target_node; + break; + } + } + // on construit
et on s'arrête! les autres noeuds sont ignorés + $builder_name = $this->snakeToPascalCase($main_node->getName()) . 'Builder'; + $builder = new $builder_name($main_node); + $this->html .= "\n"; + $this->html .= $builder->render() . "\n"; + $this->html .= "\n"; + break; + } + } + } + + protected function snakeToPascalCase(string $input): string + { + return str_replace('_', '', ucwords($input, '_')); + } + + public function render(): string // = getHTML() + { + return $this->html; + } + public function addHTML(string $html): void + { + $this->html .= $html; + } +} \ No newline at end of file -- cgit v1.2.3