From e4bb376cc0c1a1c654c23dd1b2150a92b75b865e Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 8 Aug 2014 16:37:17 +0100 Subject: [PATCH 1/3] dirty hack to fix ignored settings --- Block/ContainerBlockService.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Block/ContainerBlockService.php b/Block/ContainerBlockService.php index c2f0778e..621f9467 100644 --- a/Block/ContainerBlockService.php +++ b/Block/ContainerBlockService.php @@ -75,11 +75,20 @@ public function execute(BlockContextInterface $blockContext, Response $response if (!$response) { $response = new Response(); } - if ($blockContext->getBlock()->getEnabled()) { + + //dirty hack but not sure where should be responsabe for merging the settings + //there will be cases where this hack still allows an unset setting through to the template + if($blockContext->getBlock()->getSettings()){ + $settings=$blockContext->getBlock()->getSettings(); + }else{ + $settings=$blockContext->getSettings(); + } + //end dirty hack + return $this->renderResponse($blockContext->getTemplate(), array( 'block' => $blockContext->getBlock(), - 'settings' => $blockContext->getSettings(), + 'settings' => $settings, ), $response); } From c3d1f9ddc968e02fe7881043656f8356c3a24727 Mon Sep 17 00:00:00 2001 From: dev Date: Sat, 9 Aug 2014 13:43:56 +0100 Subject: [PATCH 2/3] merge settings using OptionsResolver --- Block/ContainerBlockService.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Block/ContainerBlockService.php b/Block/ContainerBlockService.php index 621f9467..0afaf225 100644 --- a/Block/ContainerBlockService.php +++ b/Block/ContainerBlockService.php @@ -21,6 +21,7 @@ use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\OptionsResolver\OptionsResolverInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; class ContainerBlockService extends BaseBlockService implements BlockServiceInterface { @@ -75,19 +76,18 @@ public function execute(BlockContextInterface $blockContext, Response $response if (!$response) { $response = new Response(); } - if ($blockContext->getBlock()->getEnabled()) { - - //dirty hack but not sure where should be responsabe for merging the settings - //there will be cases where this hack still allows an unset setting through to the template - if($blockContext->getBlock()->getSettings()){ - $settings=$blockContext->getBlock()->getSettings(); - }else{ - $settings=$blockContext->getSettings(); - } - //end dirty hack - - return $this->renderResponse($blockContext->getTemplate(), array( - 'block' => $blockContext->getBlock(), + + $block=$blockContext->getBlock(); + + // merge block settings with default settings + $settings = $blockContext->getSettings(); + $resolver = new OptionsResolver(); + $resolver->setDefaults($settings); + $settings = $resolver->resolve($block->getSettings()); + + if ($block->getEnabled()) { + return $this->renderResponse($settings['template'], array( + 'block' => $block, 'settings' => $settings, ), $response); } From 8e84af2210fba0272c997fec0f8870b952c1e6c8 Mon Sep 17 00:00:00 2001 From: dev Date: Mon, 11 Aug 2014 09:16:51 +0100 Subject: [PATCH 3/3] added whitespace around = sign --- Block/ContainerBlockService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Block/ContainerBlockService.php b/Block/ContainerBlockService.php index 0afaf225..4fecf32f 100644 --- a/Block/ContainerBlockService.php +++ b/Block/ContainerBlockService.php @@ -77,7 +77,7 @@ public function execute(BlockContextInterface $blockContext, Response $response $response = new Response(); } - $block=$blockContext->getBlock(); + $block = $blockContext->getBlock(); // merge block settings with default settings $settings = $blockContext->getSettings();