/** * Get the block nested items in the body of the page * * @param \Cms\Entity\Page $page * @return null */ private function getNestedBlockItems(\Cms\Entity\Page $page) { $serviceLocator = $this->getServiceLocator()->getServiceLocator(); $block = $serviceLocator->get('BlockService'); $translator = $serviceLocator->get('translator'); $value = $page->getContent(); if (!empty($value)) { $placeHolders = array(); if (preg_match_all('/\\{([^{}}]+)\\}/', $value, $matches)) { $placeHolders = $matches[1]; } foreach ($placeHolders as $placeHolder) { $theBlock = $block->findByPlaceholder($placeHolder); if (!empty($theBlock)) { $value = str_replace("{" . $placeHolder . "}", $theBlock->getContent(), $value); } else { $notfound = "<div class=\"alert alert-danger\">" . sprintf($translator->translate("Block %s%s%s doesn't found!"), "<strong>", $placeHolder, "</strong>") . "</div>"; $value = str_replace("{" . $placeHolder . "}", $notfound, $value); } } $page->setContent($value); return true; } return false; }
public function testSetters() { $page = new Page(); $page->setTitle('Imprint'); $this->assertEquals('Imprint', $page->getTitle()); $page->setRoute('imprint'); $this->assertEquals('imprint', $page->getRoute()); $page->setContent('lorem ipsum'); $this->assertEquals('lorem ipsum', $page->getContent()); $page->setStatus('published'); $this->assertEquals('published', $page->getStatus()); $now = new \DateTime('now'); $page->setCreated($now); $this->assertEquals($now, $page->getCreated()); $page->setUpdated($now); $this->assertEquals($now, $page->getUpdated()); }