コード例 #1
0
 /**
  * {@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;
 }
コード例 #2
0
 /**
  * {@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;
 }