diff --git a/composer.json b/composer.json index b0ed086a3..c62146ee9 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "sonata-project/doctrine-extensions": "^1.8 || ^2.0", "sonata-project/doctrine-orm-admin-bundle": "^4.0", "sonata-project/form-extensions": "^1.4", - "sonata-project/seo-bundle": "^3.0", + "sonata-project/seo-bundle": "^3.3", "sonata-project/twig-extensions": "^1.3 || ^2.0", "symfony-cmf/routing-bundle": "^2.1 || ^3.0", "symfony/config": "^4.4 || ^5.4 || ^6.0", diff --git a/src/Block/BreadcrumbBlockService.php b/src/Block/BreadcrumbBlockService.php index 35703fb91..72d723c54 100644 --- a/src/Block/BreadcrumbBlockService.php +++ b/src/Block/BreadcrumbBlockService.php @@ -16,6 +16,8 @@ use Knp\Menu\FactoryInterface; use Knp\Menu\ItemInterface; use Sonata\BlockBundle\Block\BlockContextInterface; +use Sonata\BlockBundle\Block\Service\BlockServiceInterface; +use Sonata\BlockBundle\Block\Service\EditableBlockService; use Sonata\BlockBundle\Meta\Metadata; use Sonata\BlockBundle\Meta\MetadataInterface; use Sonata\PageBundle\CmsManager\CmsManagerSelectorInterface; @@ -30,12 +32,16 @@ final class BreadcrumbBlockService extends BaseBreadcrumbMenuBlockService { private CmsManagerSelectorInterface $cmsSelector; + /** + * @param BlockServiceInterface&EditableBlockService $menuBlock + */ public function __construct( Environment $twig, + object $menuBlock, FactoryInterface $factory, CmsManagerSelectorInterface $cmsSelector ) { - parent::__construct($twig, $factory); + parent::__construct($twig, $menuBlock, $factory); $this->cmsSelector = $cmsSelector; } diff --git a/src/Resources/config/block.php b/src/Resources/config/block.php index 01acc3d1c..e056b18a5 100644 --- a/src/Resources/config/block.php +++ b/src/Resources/config/block.php @@ -44,6 +44,7 @@ ->tag('sonata.breadcrumb') ->args([ new ReferenceConfigurator('twig'), + new ReferenceConfigurator('sonata.block.service.menu'), new ReferenceConfigurator('knp_menu.factory'), new ReferenceConfigurator('sonata.page.cms_manager_selector'), ]) diff --git a/tests/Functional/Admin/SharedBlockAdminTest.php b/tests/Functional/Admin/SharedBlockAdminTest.php index 1a6d6acc1..375028855 100644 --- a/tests/Functional/Admin/SharedBlockAdminTest.php +++ b/tests/Functional/Admin/SharedBlockAdminTest.php @@ -141,11 +141,22 @@ public static function provideFormUrlsCases(): iterable 'shared_block[settings][template]' => '@SonataPage/Block/block_container.html.twig', ]]; - // yield 'Create Shared Block - Breadcrumb' => ['/admin/tests/app/sonatapageblock/shared/create', [ - // 'uniqid' => 'shared_block', - // 'type' => 'sonata.page.block.breadcrumb', - // ], 'btn_create_and_list', [ - // ]]; + yield 'Create Shared Block - Breadcrumb' => ['/admin/tests/app/sonatapageblock/shared/create', [ + 'uniqid' => 'shared_block', + 'type' => 'sonata.page.block.breadcrumb', + ], 'btn_create_and_list', [ + 'shared_block[name]' => 'Name', + 'shared_block[enabled]' => 1, + 'shared_block[settings][title]' => 'Title', + 'shared_block[settings][menu_name]' => 'sonata_admin_sidebar', + 'shared_block[settings][safe_labels]' => 1, + 'shared_block[settings][current_class]' => 'current', + 'shared_block[settings][first_class]' => 'first', + 'shared_block[settings][last_class]' => 'last', + 'shared_block[settings][menu_class]' => 'menu', + 'shared_block[settings][children_class]' => 'children', + 'shared_block[settings][menu_template]' => 'default', + ]]; yield 'Create Shared Block - Shared Block' => ['/admin/tests/app/sonatapageblock/shared/create', [ 'uniqid' => 'shared_block',