From 0e78298d3e69151d83cf31852cdc10c0d4754b1b Mon Sep 17 00:00:00 2001 From: Franck Garcon Date: Tue, 10 Dec 2019 16:05:33 +0100 Subject: [PATCH] Fix requirement --- Block/ContentList.php | 61 ++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/Block/ContentList.php b/Block/ContentList.php index 05873f8..ecff5ad 100644 --- a/Block/ContentList.php +++ b/Block/ContentList.php @@ -9,6 +9,7 @@ use Opera\ListBlockBundle\Cms\ListableManager; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\NumberType; +use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Config\Definition\Builder\NodeDefinition; use Opera\TaxonomyBundle\Entity\Tag; use Opera\CoreBundle\Form\Type\OperaAdminAutocompleteType; @@ -29,7 +30,7 @@ public function __construct(ListableManager $listableManager, RequestStack $requ $this->requestStack = $requestStack; } - public function getTemplate(Block $block) : string + public function getTemplate(Block $block): string { $config = $block->getConfiguration(); @@ -39,8 +40,8 @@ public function getTemplate(Block $block) : string return sprintf('blocks/%s.html.twig', $this->getType()); } - - public function getType() : string + + public function getType(): string { return 'content_list'; } @@ -48,11 +49,11 @@ public function getType() : string public function execute(Block $block) { $config = $block->getConfiguration(); - $pageParameterName = $config['page_parameter_name'] ?? 'page_'.$block->getId(); - + $pageParameterName = $config['page_parameter_name'] ?? 'page_' . $block->getId(); + try { $pagerfanta = $this->listableManager->getContents( - $block, + $block, $this->requestStack->getCurrentRequest()->get($pageParameterName, 1) ); } catch (OutOfRangeCurrentPageException $e) { @@ -73,7 +74,7 @@ public function createAdminConfigurationForm(FormBuilderInterface $builder) $this->listableManager->getListableEntities() ), ]); - + $builder->add('template', ChoiceType::class, [ 'choices' => array_combine( $this->listableManager->getListableEntitiesTemplates(), @@ -93,33 +94,39 @@ public function createAdminConfigurationForm(FormBuilderInterface $builder) 'multiple' => true, 'required' => false, ]); - + + $builder->add('filters', TextareaType::class, [ + 'required' => false, + ]); + $builder->add('limit', NumberType::class); - $builder->add('page_parameter_name'); + $builder->add('page_parameter_name', [ + 'required' => false, + ]); } public function configure(NodeDefinition $rootNode) { $rootNode ->children() - ->enumNode('what') - ->values($this->listableManager->getListableEntities()) - ->defaultValue($this->listableManager->getListableEntities()[0]) - ->end() - ->arrayNode('tags') - ->treatNullLike(array()) - ->prototype('scalar')->end() - ->end() - ->floatNode('limit') - ->min(1) - ->defaultValue(5) - ->end() - ->scalarNode('template')->end() - ->scalarNode('order')->end() - ->scalarNode('page_parameter_name')->end() - ->end(); - ; + ->enumNode('what') + ->values($this->listableManager->getListableEntities()) + ->defaultValue($this->listableManager->getListableEntities()[0]) + ->end() + ->arrayNode('tags') + ->treatNullLike(array()) + ->prototype('scalar')->end() + ->end() + ->scalarNode('filters')->defaultValue('')->end() + ->floatNode('limit') + ->min(1) + ->defaultValue(5) + ->end() + ->scalarNode('template')->end() + ->scalarNode('order')->end() + ->scalarNode('page_parameter_name')->end() + ->end();; } public function getCacheConfig(OptionsResolver $resolver, Block $block) @@ -130,4 +137,4 @@ public function getCacheConfig(OptionsResolver $resolver, Block $block) // 'expires_after' => \DateInterval::createFromDateString('1 hour'), ]); } -} \ No newline at end of file +}