/** * {@inheritdoc} */ public function getWidgets($object) { $result = []; $entityClass = ClassUtils::getClass($object); $items = $this->activityManager->getActivityActions($entityClass); foreach ($items as $item) { $buttonWidget = $this->placeholderProvider->getItem($item['button_widget'], ['entity' => $object]); if ($buttonWidget) { $widget = ['name' => $item['button_widget'], 'button' => $buttonWidget]; if (!empty($item['link_widget'])) { $linkWidget = $this->placeholderProvider->getItem($item['link_widget'], ['entity' => $object]); if ($linkWidget) { $widget['link'] = $linkWidget; } } if (isset($item['group'])) { $widget['group'] = $item['group']; } if (isset($item['priority'])) { $widget['priority'] = $item['priority']; } $result[] = $widget; } } return $result; }
/** * {@inheritdoc} */ public function getWidgets($object) { $result = []; $buttonWidget = $this->placeholderProvider->getItem($this->buttonWidgetName, ['entity' => $object]); if ($buttonWidget) { $widget['name'] = $this->buttonWidgetName; $widget['button'] = $buttonWidget; if (!empty($this->linkWidgetName)) { $linkWidget = $this->placeholderProvider->getItem($this->linkWidgetName, ['entity' => $object]); if ($linkWidget) { $widget['link'] = $linkWidget; } } $result[] = $widget; } return $result; }
/** * @param string $name * @param array $variables * @return array */ protected function getPlaceholderData($name, $variables) { $result = array(); $items = $this->placeholder->getPlaceholderItems($name, $variables); foreach ($items as $item) { $result[] = $this->renderItemContent($item, $variables); } return $result; }
/** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testGetPlaceholderItems() { $placeholderName = 'test_placeholder'; $variables = ['foo' => 'bar']; $items = $this->placeholders['items']; $index = 0; $isGrantedIndex = 0; // item1 $this->resolver->expects($this->at($index++))->method('resolve')->with($items['item1'], $variables)->will($this->returnValue($items['item1'])); // item2 $this->resolver->expects($this->at($index++))->method('resolve')->with(['applicable' => $items['item2']['applicable']], $variables)->will($this->returnValue(['applicable' => true])); unset($items['item2']['applicable']); $this->resolver->expects($this->at($index++))->method('resolve')->with($items['item2'], $variables)->will($this->returnValue($items['item2'])); // item3 $this->resolver->expects($this->at($index++))->method('resolve')->with(['applicable' => $items['item3']['applicable']], $variables)->will($this->returnValue(['applicable' => false])); // item4 $this->resolver->expects($this->at($index++))->method('resolve')->with(['applicable' => $items['item4']['applicable']], $variables)->will($this->returnValue(['applicable' => $items['item4']['applicable']])); unset($items['item4']['applicable']); $this->resolver->expects($this->at($index++))->method('resolve')->with($items['item4'], $variables)->will($this->returnValue($items['item4'])); // item5 $this->resolver->expects($this->at($index++))->method('resolve')->with(['applicable' => $items['item5']['applicable']], $variables)->will($this->returnValue(['applicable' => $items['item5']['applicable']])); // item6 $this->securityFacade->expects($this->at($isGrantedIndex++))->method('isGranted')->with('acl_ancestor')->will($this->returnValue(false)); // item7 $this->securityFacade->expects($this->at($isGrantedIndex++))->method('isGranted')->with('acl_ancestor')->will($this->returnValue(true)); unset($items['item7']['acl']); $this->resolver->expects($this->at($index++))->method('resolve')->with($items['item7'], $variables)->will($this->returnValue($items['item7'])); // item8 $this->securityFacade->expects($this->at($isGrantedIndex++))->method('isGranted')->with('acl_ancestor1')->will($this->returnValue(true)); $this->securityFacade->expects($this->at($isGrantedIndex++))->method('isGranted')->with('acl_ancestor2')->will($this->returnValue(true)); unset($items['item8']['acl']); $this->resolver->expects($this->at($index++))->method('resolve')->with($items['item8'], $variables)->will($this->returnValue($items['item8'])); // item9 $this->securityFacade->expects($this->at($isGrantedIndex++))->method('isGranted')->with('acl_ancestor1')->will($this->returnValue(true)); $this->securityFacade->expects($this->at($isGrantedIndex++))->method('isGranted')->with('acl_ancestor2')->will($this->returnValue(false)); $expected = [$items['item1'], $items['item2'], $items['item4'], $items['item7'], $items['item8']]; $this->assertEquals($expected, $this->provider->getPlaceholderItems($placeholderName, $variables)); }