Ejemplo n.º 1
0
 /**
  * @throws \Exception
  * @param \Sonata\PageBundle\CmsManager\CmsManagerInterface $manager
  * @param \Sonata\PageBundle\Model\BlockInterface $block
  * @param \Sonata\PageBundle\Model\PageInterface $page
  * @param null|\Symfony\Component\HttpFoundation\Response $response
  * @return string
  */
 public function execute(CmsManagerInterface $manager, BlockInterface $block, PageInterface $page, Response $response = null)
 {
     $parameters = (array) json_decode($block->getSetting('parameters'), true);
     $parameters = array_merge($parameters, array('_block' => $block, '_page' => $page));
     $settings = array_merge($this->getDefaultSettings(), (array) $block->getSettings());
     try {
         $actionContent = $this->kernel->render($settings['action'], $parameters);
     } catch (\Exception $e) {
         throw $e;
     }
     $content = Mustache::replace($block->getSetting('layout'), array('CONTENT' => $actionContent));
     return $this->renderResponse('SonataPageBundle:Block:block_core_action.html.twig', array('content' => $content, 'block' => $block, 'page' => $page), $response);
 }
 /**
  * @param \Sonata\PageBundle\CmsManager\CmsManagerInterface $manager
  * @param \Sonata\PageBundle\Model\BlockInterface $block
  * @return void
  */
 public function load(CmsManagerInterface $manager, BlockInterface $block)
 {
     if (is_numeric($block->getSetting('pageId'))) {
         $block->setSetting('pageId', $manager->getPage($block->getSetting('pageId')));
     }
 }
Ejemplo n.º 3
0
 public function preUpdate(BlockInterface $block)
 {
     $block->setSetting('mediaId', is_object($block->getSetting('mediaId')) ? $block->getSetting('mediaId')->getId() : null);
 }