Пример #1
0
 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());
 }
Пример #2
0
 /**
  * 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;
 }