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); }
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; }
/** * 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; }
public function getReferenceService(BlockInterface $block) { return $this->blockManager->getService($block->getReference()->getBlockType()); }
/** * @param BlockInterface $block */ public function visit(BlockInterface $block) { $this->blockManager->revertSingle($block, $this->rootVersion); }