/** * {@inheritdoc} */ public function createNewContainer(array $values = array(), \Closure $alter = null) { $container = $this->blockManager->create(); $container->setEnabled(isset($values['enabled']) ? $values['enabled'] : true); $container->setCreatedAt(new \DateTime()); $container->setUpdatedAt(new \DateTime()); $container->setType($this->defaultContainer); if (isset($values['dashboard'])) { $container->setDashboard($values['dashboard']); } if (isset($values['name'])) { $container->setName($values['name']); } else { $container->setName(isset($values['code']) ? $values['code'] : 'No name defined'); } $container->setSettings(array('code' => isset($values['code']) ? $values['code'] : 'no code defined')); $container->setPosition(isset($values['position']) ? $values['position'] : 1); if (isset($values['parent'])) { $container->setParent($values['parent']); } if ($alter) { $alter($container); } $this->blockManager->save($container); return $container; }
/** * {@inheritdoc} */ public function loadBlock(array $content, PageInterface $page) { $block = $this->blockManager->create(); $content = $this->fixBlockContent($content); $block->setPage($page); $block->setId($content['id']); $block->setName($content['name']); $block->setEnabled($content['enabled']); $block->setPosition($content['position']); $block->setSettings($content['settings']); $block->setType($content['type']); $createdAt = new \DateTime(); $createdAt->setTimestamp($content['created_at']); $block->setCreatedAt($createdAt); $updatedAt = new \DateTime(); $updatedAt->setTimestamp($content['updated_at']); $block->setUpdatedAt($updatedAt); foreach ($content['blocks'] as $child) { $block->addChildren($this->loadBlock($child, $page)); } return $block; }