Example #1
0
 public function getPlaceholders(BlockInterface $block)
 {
     if ($block instanceof DocumentBlock) {
         $view = $this->getView();
     } else {
         $service = $this->blockManager->getService($block);
         if ($service instanceof LayoutBlockServiceInterface) {
             return $service->getPlaceholders($block);
         }
         $view = $service->getView($block);
     }
     return $this->twigAnalyzer->findPlaceholders($view);
 }
Example #2
0
 public function getPlaceholders($object)
 {
     if ($object instanceof Content || $object instanceof Template) {
         $view = $this->getView();
     } else {
         $service = $this->blockManager->getService($object);
         if ($service instanceof LayoutBlockServiceInterface) {
             return $service->getPlaceholders($object);
         }
         $view = $service->getView($object);
     }
     return $this->twigAnalyzer->findPlaceholders($view);
 }
 /**
  * @inheritDoc
  */
 public function getTool(BlockInterface $block = null)
 {
     $tools = array();
     foreach ($this->getClipboardBlocks() as $block) {
         /** @var ToolsetMemberInterface $copyService */
         $copyService = $this->blockManager->getService($block);
         $copyTool = $copyService->getTool($block);
         $tool = new Tool($copyTool->getName(), 'clipboard');
         $tool->setGroup('Clipboard');
         $tool->setIcon($copyTool->getIcon());
         $tool->setData(['id' => $block->getId()]);
         $title = $block->getOwner() instanceof Content ? $block->getOwner()->getTitle() : $block->getOwner()->getName();
         $tool->setDescription(sprintf('<span class="material-icons md-18">swap_horz</span> %s', $title));
         $tools[] = $tool;
     }
     return $tools;
 }
Example #4
0
 /**
  * Loads all blocks needed to display the document for caching purposes. This
  * includes loading blocks that are owned by the Template.
  *
  * @return Environment
  */
 protected function loadBlocks()
 {
     if ($this->isLoaded) {
         return;
     }
     $blockOwners = $this->getBlockOwners();
     $blocks = array();
     foreach ($blockOwners as $blockOwner) {
         $version = $this->getVersion($blockOwner->getId());
         $owned = $this->blockManager->findByOwner($blockOwner, $version);
         $blocks = array_merge($blocks, $owned);
     }
     $blocks = $this->blockManager->sortBlocks(array_merge($blocks, $blockOwners));
     $cacheKey = $this->getCacheKey();
     $this->blockCache[$cacheKey] = array_filter($blocks, function ($item) {
         return $item instanceof DocumentBlock ? false : true;
     });
     $this->isLoaded = true;
     return $this;
 }
Example #5
0
 public function getReferenceService(BlockInterface $block)
 {
     return $this->blockManager->getService($block->getReference()->getBlockType());
 }
Example #6
0
 /**
  * @param BlockInterface $block
  */
 public function visit(BlockInterface $block)
 {
     $this->blockManager->revertSingle($block, $this->rootVersion);
 }