html .= "
\n"; // page article: cas particulier où l'article est greffé sur main if(Director::$page_path->getLast()->getEndOfPath() === 'article'){ // pas censé arriver if(!isset($_GET['id'])){ header('Location: ' . new URL); die; } if($node->getAdoptedChild() == null){ $date = new \DateTime; $article = new Article('', $date); $new = new Node('new', 'i' . (string)$date->getTimestamp(), [], 0, null, null, $article); } else{ $new = $node->getAdoptedChild(); } //$builder_name = $this->snakeToPascalCase($new->getName()) . 'Builder'; $builder_name = 'NewBuilder'; $builder = new $builder_name($new); $this->html .= $builder->render(); } else{ // si action = "modif_page", affiche des commandes pour modifier if($_SESSION['admin'] && self::$modif_mode){ // ajouter un contrôle du champ in_menu $this->viewEditBlocks($node); } // cas normal $this->useChildrenBuilder($node); } $this->html .= "
\n"; } // mode modification de page uniquement private function viewEditBlocks($node): void { $viewFile = self::VIEWS_PATH . $node->getName() . '.php'; // mode modification uniquement // blocs disponibles, même liste dans post.php $blocks = [ // créer une classe pour ça? ['type' => 'blog', 'name' => 'Blog'], ['type' => 'grid', 'name' => 'Grille'], ['type' => 'calendar', 'name' => 'Calendrier'], ['type' => 'galery', 'name' => 'Galerie'], ['type' => 'form', 'name' => 'Formulaire']]; function getBlockName(array $blocks, string $type){ // créer une classe pour ça? for($i=0; $i < count($blocks); $i++){ if($blocks[$i]['type'] === $type){ return $blocks[$i]['name']; } } } $options = ''; for($i = 0; $i < count($blocks); $i++){ $options .= '\n"; } // blabla /*$this->html .= '' . "\n";*/ //$page_id = Director::$page_path->getLast()->getId(); $head_node = null; foreach(ViewBuilder::$root_node->getChildren() as $first_level_node){ if($first_level_node->getName() === 'head'){ $head_node = $first_level_node; // normallement c'est le 1er enfant break; } } $bloc_edit = ''; foreach($node->getChildren() as $child_node){ // renommage d'un bloc $bloc_edit .= '

'. "\n"; // déplacement d'un bloc $bloc_edit .= ' ' . "\n"; // suppression d'un bloc $bloc_edit .= '

'. "\n"; } ob_start(); require $viewFile; $this->html .= ob_get_clean(); } }