Remove styles data added to templates REST API response
We no longer need to send CSS for every template because we use global styles live from the editor. [MAILPOET-6335]
This commit is contained in:
committed by
Aschepikov
parent
bc10ae7216
commit
c64e4caf27
@@ -350,7 +350,6 @@ class ContainerConfigurator implements IContainerConfigurator {
|
||||
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\Renderer::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Templates::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Utils::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Template_Preview::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\EmailEditor\Engine\Patterns\Patterns::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Content_Renderer::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Blocks_Registry::class)->setPublic(true);
|
||||
|
@@ -1,77 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the MailPoet Email Editor package.
|
||||
*
|
||||
* @package MailPoet\EmailEditor
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
namespace MailPoet\EmailEditor\Engine\Templates;
|
||||
|
||||
use MailPoet\EmailEditor\Engine\Settings_Controller;
|
||||
use MailPoet\EmailEditor\Engine\Theme_Controller;
|
||||
use MailPoet\EmailEditor\Validator\Builder;
|
||||
|
||||
/**
|
||||
* Template_Preview class.
|
||||
*/
|
||||
class Template_Preview {
|
||||
/**
|
||||
* Provides the theme controller.
|
||||
*
|
||||
* @var Theme_Controller
|
||||
*/
|
||||
private Theme_Controller $theme_controller;
|
||||
/**
|
||||
* Provides the settings controller.
|
||||
*
|
||||
* @var Settings_Controller
|
||||
*/
|
||||
private Settings_Controller $settings_controller;
|
||||
|
||||
/**
|
||||
* Template_Preview constructor.
|
||||
*
|
||||
* @param Theme_Controller $theme_controller Theme controller.
|
||||
* @param Settings_Controller $settings_controller Theme controller.
|
||||
*/
|
||||
public function __construct(
|
||||
Theme_Controller $theme_controller,
|
||||
Settings_Controller $settings_controller
|
||||
) {
|
||||
$this->theme_controller = $theme_controller;
|
||||
$this->settings_controller = $settings_controller;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the class.
|
||||
*/
|
||||
public function initialize(): void {
|
||||
register_rest_field(
|
||||
'wp_template',
|
||||
'email_theme_css',
|
||||
array(
|
||||
'get_callback' => array( $this, 'get_email_theme_preview_css' ),
|
||||
'update_callback' => null,
|
||||
'schema' => Builder::string()->to_array(),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates CSS for preview of email theme
|
||||
* They are applied in the preview BLockPreview in template selection
|
||||
*/
|
||||
public function get_email_theme_preview_css(): string {
|
||||
$editor_theme = clone $this->theme_controller->get_theme();
|
||||
$editor_settings = $this->settings_controller->get_settings();
|
||||
$additional_css = '';
|
||||
foreach ( $editor_settings['styles'] as $style ) {
|
||||
$additional_css .= $style['css'];
|
||||
}
|
||||
// Set proper content width for previews.
|
||||
$layout_settings = $this->theme_controller->get_layout_settings();
|
||||
$additional_css .= ".is-root-container { width: {$layout_settings['contentSize']}; margin: 0 auto; }";
|
||||
return $editor_theme->get_stylesheet() . $additional_css;
|
||||
}
|
||||
}
|
@@ -14,8 +14,6 @@ use WP_Block_Template;
|
||||
* Templates class.
|
||||
*/
|
||||
class Templates {
|
||||
const MAILPOET_TEMPLATE_EMPTY_THEME = array( 'version' => 3 ); // The version 3 is important to merge themes correctly.
|
||||
|
||||
/**
|
||||
* Provides the utils.
|
||||
*
|
||||
|
@@ -10,7 +10,6 @@ namespace MailPoet\EmailEditor\Engine;
|
||||
|
||||
use MailPoet\EmailEditor\Engine\Patterns\Patterns;
|
||||
use MailPoet\EmailEditor\Engine\PersonalizationTags\Personalization_Tags_Registry;
|
||||
use MailPoet\EmailEditor\Engine\Templates\Template_Preview;
|
||||
use MailPoet\EmailEditor\Engine\Templates\Templates;
|
||||
use WP_Post;
|
||||
use WP_Theme_JSON;
|
||||
@@ -36,12 +35,6 @@ class Email_Editor {
|
||||
* @var Templates Templates.
|
||||
*/
|
||||
private Templates $templates;
|
||||
/**
|
||||
* Property for the template preview.
|
||||
*
|
||||
* @var Template_Preview Template preview.
|
||||
*/
|
||||
private Template_Preview $template_preview;
|
||||
/**
|
||||
* Property for the patterns.
|
||||
*
|
||||
@@ -74,7 +67,6 @@ class Email_Editor {
|
||||
*
|
||||
* @param Email_Api_Controller $email_api_controller Email API controller.
|
||||
* @param Templates $templates Templates.
|
||||
* @param Template_Preview $template_preview Template preview.
|
||||
* @param Patterns $patterns Patterns.
|
||||
* @param Settings_Controller $settings_controller Settings controller.
|
||||
* @param Send_Preview_Email $send_preview_email Preview email controller.
|
||||
@@ -83,7 +75,6 @@ class Email_Editor {
|
||||
public function __construct(
|
||||
Email_Api_Controller $email_api_controller,
|
||||
Templates $templates,
|
||||
Template_Preview $template_preview,
|
||||
Patterns $patterns,
|
||||
Settings_Controller $settings_controller,
|
||||
Send_Preview_Email $send_preview_email,
|
||||
@@ -91,7 +82,6 @@ class Email_Editor {
|
||||
) {
|
||||
$this->email_api_controller = $email_api_controller;
|
||||
$this->templates = $templates;
|
||||
$this->template_preview = $template_preview;
|
||||
$this->patterns = $patterns;
|
||||
$this->settings_controller = $settings_controller;
|
||||
$this->send_preview_email = $send_preview_email;
|
||||
@@ -129,7 +119,6 @@ class Email_Editor {
|
||||
// Since we cannot currently disable blocks in the editor for specific templates, disable templates when viewing site editor. @see https://github.com/WordPress/gutenberg/issues/41062.
|
||||
if ( strstr( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ?? '' ) ), 'site-editor.php' ) === false ) {
|
||||
$this->templates->initialize();
|
||||
$this->template_preview->initialize();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,42 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the MailPoet plugin.
|
||||
*
|
||||
* @package MailPoet\EmailEditor
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
namespace MailPoet\EmailEditor\Engine\Templates;
|
||||
|
||||
/**
|
||||
* Integration test for the Template Preview class
|
||||
*/
|
||||
class Template_Preview_Test extends \MailPoetTest {
|
||||
/**
|
||||
* Template preview.
|
||||
*
|
||||
* @var Template_Preview
|
||||
*/
|
||||
private Template_Preview $template_preview;
|
||||
|
||||
/**
|
||||
* Set up before each test
|
||||
*/
|
||||
public function _before() {
|
||||
parent::_before();
|
||||
$this->template_preview = $this->di_container->get( Template_Preview::class );
|
||||
}
|
||||
|
||||
/**
|
||||
* Test it Generates CSS for preview of email theme
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testItCanGetThemePreviewCss(): void {
|
||||
$result = $this->template_preview->get_email_theme_preview_css();
|
||||
|
||||
verify( $result )->stringContainsString( 'Styles for the email editor.' );
|
||||
verify( $result )->stringContainsString( 'is-layout-email-flex' );
|
||||
verify( $result )->stringContainsString( '.is-root-container { width: 660px; margin: 0 auto; }' ); // Styles for both the email editor and renderer.
|
||||
}
|
||||
}
|
@@ -24,7 +24,6 @@ use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Typograph
|
||||
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Process_Manager;
|
||||
use MailPoet\EmailEditor\Engine\Renderer\Renderer;
|
||||
use MailPoet\EmailEditor\Engine\Settings_Controller;
|
||||
use MailPoet\EmailEditor\Engine\Templates\Template_Preview;
|
||||
use MailPoet\EmailEditor\Engine\Templates\Templates;
|
||||
use MailPoet\EmailEditor\Engine\Templates\Utils;
|
||||
use MailPoet\EmailEditor\Engine\Theme_Controller;
|
||||
@@ -203,15 +202,6 @@ abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore
|
||||
return new Templates( $container->get( Utils::class ) );
|
||||
}
|
||||
);
|
||||
$container->set(
|
||||
Template_Preview::class,
|
||||
function ( $container ) {
|
||||
return new Template_Preview(
|
||||
$container->get( Theme_Controller::class ),
|
||||
$container->get( Settings_Controller::class ),
|
||||
);
|
||||
}
|
||||
);
|
||||
$container->set(
|
||||
Patterns::class,
|
||||
function () {
|
||||
@@ -314,7 +304,6 @@ abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore
|
||||
return new Email_Editor(
|
||||
$container->get( Email_Api_Controller::class ),
|
||||
$container->get( Templates::class ),
|
||||
$container->get( Template_Preview::class ),
|
||||
$container->get( Patterns::class ),
|
||||
$container->get( Settings_Controller::class ),
|
||||
$container->get( Send_Preview_Email::class ),
|
||||
|
Reference in New Issue
Block a user