public function testBlockEvent()
 {
     $blockEvent = new BlockEvent();
     $this->assertEmpty($blockEvent->getSettings());
     $blockEvent->addBlock($this->getMock('Sonata\\BlockBundle\\Model\\BlockInterface'));
     $this->assertCount(1, $blockEvent->getBlocks());
     $blockEvent->addBlock($this->getMock('Sonata\\BlockBundle\\Model\\BlockInterface'));
     $this->assertCount(2, $blockEvent->getBlocks());
     $this->assertNull($blockEvent->getSetting('fake'));
     $this->assertEquals(1, $blockEvent->getSetting('fake', 1));
 }
Esempio n. 2
0
 /**
  * @param BlockEvent $event
  */
 public function onBlock(BlockEvent $event)
 {
     $content = 'This block is coming from inline event from the template';
     if ($event->getSetting('admin') instanceof AdminInterface && $event->getSetting('action') == 'edit') {
         $admin = $event->getSetting('admin');
         $content = sprintf("<p class='well'>The admin subject is <strong>%s</strong></p>", $admin->toString($admin->getSubject()));
     }
     $block = new Block();
     $block->setId(uniqid());
     $block->setSettings(array('content' => $event->getSetting('content', $content)));
     $block->setType('sonata.block.service.text');
     $event->addBlock($block);
 }
 /**
  * Add blocks services to event.
  *
  * @param BlockEvent $event
  */
 public function onBlock(BlockEvent $event)
 {
     $identifier = $event->getSetting('id', null);
     if ($identifier == null) {
         return;
     }
     $block = new Block();
     $block->setId(uniqid());
     $block->setSettings($event->getSettings());
     $block->setType($this->blockService->getName());
     $event->addBlock($block);
 }
 /**
  * Add context related BlockService, if found.
  *
  * @param BlockEvent $event
  */
 public function onBlock(BlockEvent $event)
 {
     $context = $event->getSetting('context', null);
     if ($context == null) {
         return;
     }
     foreach ($this->blockServices as $type => $blockService) {
         if ($blockService->handleContext($context)) {
             $block = new Block();
             $block->setId(uniqid());
             $block->setSettings($event->getSettings());
             $block->setType($type);
             $event->addBlock($block);
             return;
         }
     }
 }