protected function loadSharedBlocks($blocks) { // Load shared blocks foreach ($blocks as $block) { if ($this->draft) { $this->blockManager->setDraftVersionFilter(false); } if ($block instanceof PointerBlock && $block->getReference()) { $iterator = new \RecursiveIteratorIterator(new RecursiveBlockIterator(array($block->getReference())), \RecursiveIteratorIterator::SELF_FIRST); foreach ($iterator as $included) { if ($this->draft) { $reverted = $this->blockManager->revertToDraft($included); if ($reverted) { $blocks[] = $reverted; } } else { $blocks[] = $included; } } } $this->blockManager->setDraftVersionFilter(true); } return $blocks; }