Register default patterns to the email editor via hooks

[MAILPOET-6243]
This commit is contained in:
Rostislav Wolny
2024-11-14 16:49:59 +01:00
committed by Oluwaseun Olorunsola
parent 2409b5c8a1
commit a3f292f74e
3 changed files with 50 additions and 2 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -0,0 +1,41 @@
<?php declare(strict_types = 1);
namespace MailPoet\EmailEditor\Integrations\MailPoet\Patterns;
use MailPoet\EmailEditor\Integrations\MailPoet\Patterns\Library\DefaultContent;
use MailPoet\EmailEditor\Integrations\MailPoet\Patterns\Library\DefaultContentFull;
use MailPoet\Util\CdnAssetUrl;
use MailPoet\WP\Functions as WPFunctions;
class PatternsController {
private CdnAssetUrl $cdnAssetUrl;
private WPFunctions $wp;
public function __construct(
CdnAssetUrl $cdnAssetUrl,
WPFunctions $wpFunctions
) {
$this->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;
}
}