A block context is now implemented, see the change in BlockServiceInterface:
* BlockServiceInterface
/**
- * Returns the default settings link to the service
+ * Define the default options for the block
*
- * @return array
+ * @param OptionsResolverInterface $resolver
*/
- public function getDefaultSettings();
+ public function setDefaultSettings(OptionsResolverInterface $resolver);
So to update, just use the ``OptionsResolverInterface`` API as the Form Component:
- public function getDefaultSettings()
+ public function setDefaultSettings(OptionsResolverInterface $resolver)
{
- return array(
- 'url' => false,
- 'title' => 'Insert the rss title'
- );
+ $resolver->setDefaults(array(
+ 'url' => false,
+ 'title' => 'Insert the rss title',
+ 'template' => 'SonataBlockBundle:Block:block_core_rss.html.twig',
+ ));
}
The template is now a mandatory parameter (which can be set to false), so the ``execute`` method should like:
- public function execute(BlockInterface $block, Response $response = null)
+ public function execute(BlockContextInterface $blockContext, Response $response = null)
{
- $settings = array_merge($this->getDefaultSettings(), $block->getSettings());
-
- return $this->renderResponse('SonataBlockBundle:Block:block_core_text.html.twig', array(
- 'block' => $block,
- 'settings' => $settings
+ return $this->renderResponse($blockContext->getTemplate(), array(
+ 'block' => $blockContext->getBlock(),
+ 'settings' => $blockContext->getSettings()
), $response);
}
The twig template helper sonata_block_render has been updated:
sonata_block_render(block, use_cache, extra_cache_key)
=> sonata_block_render(block, {'use_cache': use_cache, 'extra_cache_key': extra_cache_key})
If you are using the page bundle you need to configure the ``context_manager`` section
sonata_block:
context_manager: sonata.page.block.context_manager