Jarves\Command\ContentExportCommand::exportNode PHP Method

exportNode() protected method

protected exportNode ( $position, Domain $domain, Node $node, ExportPointer $exportPointer )
$domain Jarves\Model\Domain
$node Jarves\Model\Node
$exportPointer ExportPointer
    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();
    }