Use AssetsLoader for enqueue css in formEditor

[MAILPOET-3556]
This commit is contained in:
Jan Lysý
2021-04-20 11:05:07 +02:00
committed by Veljko V
parent e79ff273fe
commit 5347714bbe
4 changed files with 58 additions and 23 deletions

View File

@ -0,0 +1,33 @@
<?php
namespace MailPoet\Config;
use MailPoet\WP\Functions as WPFunctions;
class AssetsLoader {
/** @var Renderer */
private $renderer;
/** @var WPFunctions */
private $wp;
public function __construct(RendererFactory $rendererFactory, WPFunctions $wp) {
$this->renderer = $rendererFactory->getRenderer();
$this->wp = $wp;
}
public function loadStyles(): void {
if (isset($_GET['page']) && $_GET['page'] === 'mailpoet-form-editor') {
$this->enqueueStyle('mailpoet-form-editor');
$this->enqueueStyle('mailpoet-public');
}
}
private function enqueueStyle(string $name): void {
$this->wp->wpEnqueueStyle(
$name,
Env::$assetsUrl . '/dist/css/' . $this->renderer->getCssAsset("{$name}.css")
);
}
}

View File

@ -73,6 +73,9 @@ class Initializer {
/** @var Localizer */
private $localizer;
/** @var AssetsLoader */
private $assetsLoader;
const INITIALIZED = 'MAILPOET_INITIALIZED';
public function __construct(
@ -92,25 +95,27 @@ class Initializer {
WCTransactionalEmails $wcTransactionalEmails,
PostEditorBlock $postEditorBlock,
WooCommerceHelper $wcHelper,
Localizer $localizer
Localizer $localizer,
AssetsLoader $assetsLoader
) {
$this->rendererFactory = $rendererFactory;
$this->accessControl = $accessControl;
$this->api = $api;
$this->activator = $activator;
$this->settings = $settings;
$this->router = $router;
$this->hooks = $hooks;
$this->changelog = $changelog;
$this->menu = $menu;
$this->cronTrigger = $cronTrigger;
$this->permanentNotices = $permanentNotices;
$this->shortcodes = $shortcodes;
$this->databaseInitializer = $databaseInitializer;
$this->wcTransactionalEmails = $wcTransactionalEmails;
$this->wcHelper = $wcHelper;
$this->postEditorBlock = $postEditorBlock;
$this->localizer = $localizer;
$this->rendererFactory = $rendererFactory;
$this->accessControl = $accessControl;
$this->api = $api;
$this->activator = $activator;
$this->settings = $settings;
$this->router = $router;
$this->hooks = $hooks;
$this->changelog = $changelog;
$this->menu = $menu;
$this->cronTrigger = $cronTrigger;
$this->permanentNotices = $permanentNotices;
$this->shortcodes = $shortcodes;
$this->databaseInitializer = $databaseInitializer;
$this->wcTransactionalEmails = $wcTransactionalEmails;
$this->wcHelper = $wcHelper;
$this->postEditorBlock = $postEditorBlock;
$this->localizer = $localizer;
$this->assetsLoader = $assetsLoader;
}
public function init() {
@ -187,6 +192,7 @@ class Initializer {
$this->setupWidget();
$this->hooks->init();
$this->setupWoocommerceTransactionalEmails();
$this->assetsLoader->loadStyles();
} catch (\Exception $e) {
$this->handleFailedInitialization($e);
}

View File

@ -93,6 +93,7 @@ class ContainerConfigurator implements IContainerConfigurator {
// Config
$container->autowire(\MailPoet\Config\AccessControl::class)->setPublic(true);
$container->autowire(\MailPoet\Config\Activator::class)->setPublic(true);
$container->autowire(\MailPoet\Config\AssetsLoader::class)->setPublic(true);
$container->autowire(\MailPoet\Config\Populator::class)->setPublic(true);
$container->autowire(\MailPoet\Config\Changelog::class)->setPublic(true);
$container->autowire(\MailPoet\Config\DatabaseInitializer::class);

View File

@ -1,10 +1,5 @@
<% extends 'layout.html' %>
<% block after_css %>
<%= stylesheet('mailpoet-form-editor.css') %>
<%= stylesheet('mailpoet-public.css') %>
<% endblock %>
<% block container %>
<script type="text/javascript">