/**
  * @covers BlockFilterApi::isDisplayable
  * @dataProvider filterProvider
  * @param array $filter
  * @param bool $expected
  */
 public function testIsDisplayable($filter, $expected)
 {
     $blockEntity = $this->getMockBuilder('Zikula\\BlocksModule\\Entity\\BlockEntity')->getMock();
     $blockEntity->method('getLanguage')->willReturn('en');
     $blockEntity->method('getFilters')->willReturn($filter);
     $this->assertEquals($expected, $this->api->isDisplayable($blockEntity));
 }
Exemple #2
0
 /**
  * Get a filtered array of block entities that have been assigned to a block position.
  * @param $positionName
  * @return array
  */
 public function getBlocksByPosition($positionName)
 {
     if (empty($positionName)) {
         throw new \InvalidArgumentException('Name must not be empty.');
     }
     /** @var \Zikula\BlocksModule\Entity\BlockPositionEntity $position */
     $position = $this->blockPositionRepository->findByName($positionName);
     $blocks = [];
     if (empty($position)) {
         return $blocks;
     }
     foreach ($position->getPlacements() as $placement) {
         if ($placement->getBlock()->getActive() && $this->blockFilter->isDisplayable($placement->getBlock())) {
             $blocks[$placement->getBlock()->getBid()] = $placement->getBlock();
         }
     }
     return $blocks;
 }