diff --git a/mailpoet/lib/DI/ContainerConfigurator.php b/mailpoet/lib/DI/ContainerConfigurator.php index c1efc2db2e..bb656feb4b 100644 --- a/mailpoet/lib/DI/ContainerConfigurator.php +++ b/mailpoet/lib/DI/ContainerConfigurator.php @@ -366,6 +366,7 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\EmailEditorPreviewEmail::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\Blocks\BlockTypesController::class)->setPublic(true); $container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\Blocks\BlockTypes\PoweredByMailpoet::class)->setPublic(true); + $container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\Patterns\PatternsController::class)->setPublic(true); // Features $container->autowire(\MailPoet\Features\FeaturesController::class)->setPublic(true); $container->autowire(\MailPoet\Features\FeatureFlagsController::class)->setPublic(true); diff --git a/mailpoet/lib/EmailEditor/Integrations/MailPoet/EmailEditor.php b/mailpoet/lib/EmailEditor/Integrations/MailPoet/EmailEditor.php index eeb709d8f2..3cab8b6802 100644 --- a/mailpoet/lib/EmailEditor/Integrations/MailPoet/EmailEditor.php +++ b/mailpoet/lib/EmailEditor/Integrations/MailPoet/EmailEditor.php @@ -2,6 +2,7 @@ namespace MailPoet\EmailEditor\Integrations\MailPoet; +use MailPoet\EmailEditor\Integrations\MailPoet\Patterns\PatternsController; use MailPoet\Features\FeaturesController; use MailPoet\WP\Functions as WPFunctions; @@ -16,6 +17,8 @@ class EmailEditor { private EditorPageRenderer $editorPageRenderer; + private PatternsController $patternsController; + private Cli $cli; private EmailEditorPreviewEmail $emailEditorPreviewEmail; @@ -25,13 +28,15 @@ class EmailEditor { FeaturesController $featuresController, EmailApiController $emailApiController, EditorPageRenderer $editorPageRenderer, - Cli $cli, - EmailEditorPreviewEmail $emailEditorPreviewEmail + EmailEditorPreviewEmail $emailEditorPreviewEmail, + PatternsController $patternsController, + Cli $cli ) { $this->wp = $wp; $this->featuresController = $featuresController; $this->emailApiController = $emailApiController; $this->editorPageRenderer = $editorPageRenderer; + $this->patternsController = $patternsController; $this->cli = $cli; $this->emailEditorPreviewEmail = $emailEditorPreviewEmail; } @@ -41,6 +46,7 @@ class EmailEditor { return; } $this->cli->initialize(); + $this->patternsController->initialize(); $this->wp->addFilter('mailpoet_email_editor_post_types', [$this, 'addEmailPostType']); $this->wp->addAction('rest_delete_mailpoet_email', [$this->emailApiController, 'trashEmail'], 10, 1); $this->wp->addFilter('mailpoet_is_email_editor_page', [$this, 'isEditorPage'], 10, 1); diff --git a/mailpoet/lib/EmailEditor/Integrations/MailPoet/Patterns/PatternsController.php b/mailpoet/lib/EmailEditor/Integrations/MailPoet/Patterns/PatternsController.php new file mode 100644 index 0000000000..f4ab674608 --- /dev/null +++ b/mailpoet/lib/EmailEditor/Integrations/MailPoet/Patterns/PatternsController.php @@ -0,0 +1,41 @@ +cdnAssetUrl = $cdnAssetUrl; + $this->wp = $wpFunctions; + } + + public function initialize(): void { + $this->wp->addFilter('mailpoet_block_pattern_categories', [$this, 'registerCategories']); + $this->wp->addFilter('mailpoet_block_patterns', [$this, 'registerPatterns']); + } + + public function registerCategories(array $categories): array { + $categories[] = [ + 'name' => 'mailpoet', + 'label' => _x('MailPoet', 'Block pattern category', 'mailpoet'), + 'description' => __('A collection of email template layouts.', 'mailpoet'), + ]; + return $categories; + } + + public function registerPatterns($patterns): array { + $patterns[] = new DefaultContentFull($this->cdnAssetUrl); + $patterns[] = new DefaultContent($this->cdnAssetUrl); + return $patterns; + } +}