Ejemplo n.º 1
0
 protected function exportNode($position, Domain $domain, Node $node, ExportPointer $exportPointer)
 {
     $data = $node->toArray(TableMap::TYPE_CAMELNAME);
     if (!$node->getUrn()) {
         return;
     }
     $path = $node->getUrn();
     $exportPointer->pushPath($path);
     if ($node->getId() === $domain->getStartnodeId()) {
         $domain->setVirtualColumn('startnodePath', $path);
     }
     $nodeData = $this->clearData($data, ['id', 'lft', 'rgt', 'lvl', 'pid', 'urn', 'domainId'], ['type' => 0, 'layout' => 'default', 'visible' => true]);
     $nodeData['sort'] = $position;
     $contents = $node->getContents();
     $contentsData = [];
     foreach ($contents as $content) {
         $contentData = $content->toArray(TableMap::TYPE_CAMELNAME);
         $jsonDecoded = json_decode($contentData['content'], true);
         if (JSON_ERROR_NONE === json_last_error()) {
             $contentData['content'] = $jsonDecoded;
         }
         $contentData = $this->clearData($contentData, ['id', 'nodeId'], ['template' => 'JarvesBundle:Default:content.html.twig', 'type' => 'text']);
         $contentsData[] = $contentData;
     }
     $nodeData['contents'] = $contentsData;
     $exportPointer->addData($nodeData, '.yml');
     foreach ($node->getChildren() as $idx => $child) {
         $this->exportNode($idx, $domain, $child, $exportPointer);
     }
     $exportPointer->popPath();
 }