From c11b2313aff03cd6f889a1e6529bd93124f6f19a Mon Sep 17 00:00:00 2001 From: Rostislav Wolny Date: Mon, 15 Jul 2019 16:04:46 +0200 Subject: [PATCH] Add NewsletterEditor page class [MAILPOET-2200] --- lib/AdminPages/Pages/NewsletterEditor.php | 58 +++++++++++++++++++++++ lib/Config/Menu.php | 25 +--------- lib/DI/ContainerConfigurator.php | 1 + tests/integration/Config/MenuTest.php | 2 - 4 files changed, 61 insertions(+), 25 deletions(-) create mode 100644 lib/AdminPages/Pages/NewsletterEditor.php diff --git a/lib/AdminPages/Pages/NewsletterEditor.php b/lib/AdminPages/Pages/NewsletterEditor.php new file mode 100644 index 0000000000..867a1379e0 --- /dev/null +++ b/lib/AdminPages/Pages/NewsletterEditor.php @@ -0,0 +1,58 @@ +page_renderer = $page_renderer; + $this->settings = $settings; + $this->user_flags = $user_flags; + $this->wp = $wp; + } + + function render() { + $subscriber = Subscriber::getCurrentWPUser(); + $subscriber_data = $subscriber ? $subscriber->asArray() : []; + $data = [ + 'shortcodes' => ShortcodesHelper::getShortcodes(), + 'settings' => $this->settings->getAll(), + 'editor_tutorial_seen' => $this->user_flags->get('editor_tutorial_seen'), + 'current_wp_user' => array_merge($subscriber_data, $this->wp->wpGetCurrentUser()->to_array()), + 'sub_menu' => Menu::MAIN_PAGE_SLUG, + 'mss_active' => Bridge::isMPSendingServiceEnabled(), + ]; + $this->wp->wpEnqueueMedia(); + $this->wp->wpEnqueueScript('tinymce-wplink', $this->wp->includesUrl('js/tinymce/plugins/wplink/plugin.js')); + $this->wp->wpEnqueueStyle('editor', $this->wp->includesUrl('css/editor.css')); + + $this->page_renderer->displayPage('newsletter/editor.html', $data); + } +} diff --git a/lib/Config/Menu.php b/lib/Config/Menu.php index 111f11c946..a935bebba1 100644 --- a/lib/Config/Menu.php +++ b/lib/Config/Menu.php @@ -5,6 +5,7 @@ namespace MailPoet\Config; use Carbon\Carbon; use MailPoet\AdminPages\PageRenderer; use MailPoet\AdminPages\Pages\Help; +use MailPoet\AdminPages\Pages\NewsletterEditor; use MailPoet\AdminPages\Pages\Newsletters; use MailPoet\AdminPages\Pages\Settings; use MailPoet\AdminPages\Pages\WelcomeWizard; @@ -18,11 +19,9 @@ use MailPoet\Models\Form; use MailPoet\Models\ModelValidator; use MailPoet\Models\Segment; use MailPoet\Models\Subscriber; -use MailPoet\Newsletter\Shortcodes\ShortcodesHelper; use MailPoet\Services\Bridge; use MailPoet\Settings\Pages; use MailPoet\Settings\SettingsController; -use MailPoet\Settings\UserFlagsController; use MailPoet\Subscribers\ImportExport\ImportExportFactory; use MailPoet\Util\Installation; use MailPoet\Util\License\Features\Subscribers as SubscribersFeature; @@ -35,8 +34,6 @@ if (!defined('ABSPATH')) exit; class Menu { const MAIN_PAGE_SLUG = 'mailpoet-newsletters'; - /** @var Renderer */ - public $renderer; public $mp_api_key_valid; public $premium_key_valid; @@ -48,8 +45,6 @@ class Menu { /** @var FeaturesController */ private $features_controller; - /** @var UserFlagsController */ - private $user_flags; /** @var WPFunctions */ private $wp; /** @var ServicesChecker */ @@ -75,7 +70,6 @@ class Menu { FeaturesController $featuresController, WPFunctions $wp, ServicesChecker $servicesChecker, - UserFlagsController $user_flags, PageRenderer $page_renderer, Listing\PageLimit $listing_page_limit, Installation $installation, @@ -86,7 +80,6 @@ class Menu { $this->settings = $settings; $this->features_controller = $featuresController; $this->servicesChecker = $servicesChecker; - $this->user_flags = $user_flags; $this->page_renderer = $page_renderer; $this->listing_page_limit = $listing_page_limit; $this->installation = $installation; @@ -584,21 +577,7 @@ class Menu { } function newletterEditor() { - $subscriber = Subscriber::getCurrentWPUser(); - $subscriber_data = $subscriber ? $subscriber->asArray() : []; - $data = [ - 'shortcodes' => ShortcodesHelper::getShortcodes(), - 'settings' => $this->settings->getAll(), - 'editor_tutorial_seen' => $this->user_flags->get('editor_tutorial_seen'), - 'current_wp_user' => array_merge($subscriber_data, $this->wp->wpGetCurrentUser()->to_array()), - 'sub_menu' => self::MAIN_PAGE_SLUG, - 'mss_active' => Bridge::isMPSendingServiceEnabled(), - ]; - $this->wp->wpEnqueueMedia(); - $this->wp->wpEnqueueScript('tinymce-wplink', $this->wp->includesUrl('js/tinymce/plugins/wplink/plugin.js')); - $this->wp->wpEnqueueStyle('editor', $this->wp->includesUrl('css/editor.css')); - - $this->page_renderer->displayPage('newsletter/editor.html', $data); + $this->container->get(NewsletterEditor::class)->render(); } function import() { diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index 0454f6177e..9fbc006f64 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -31,6 +31,7 @@ class ContainerConfigurator implements IContainerConfigurator { // AdminPages $container->autowire(\MailPoet\AdminPages\PageRenderer::class); $container->autowire(\MailPoet\AdminPages\Pages\Help::class); + $container->autowire(\MailPoet\AdminPages\Pages\NewsletterEditor::class); $container->autowire(\MailPoet\AdminPages\Pages\Newsletters::class); $container->autowire(\MailPoet\AdminPages\Pages\Settings::class); $container->autowire(\MailPoet\AdminPages\Pages\WelcomeWizard::class); diff --git a/tests/integration/Config/MenuTest.php b/tests/integration/Config/MenuTest.php index e3b493c6cb..859962dc9c 100644 --- a/tests/integration/Config/MenuTest.php +++ b/tests/integration/Config/MenuTest.php @@ -11,7 +11,6 @@ use MailPoet\DI\ContainerWrapper; use MailPoet\Features\FeaturesController; use MailPoet\Listing\PageLimit; use MailPoet\Settings\SettingsController; -use MailPoet\Settings\UserFlagsController; use MailPoet\Util\Installation; use MailPoet\WP\Functions as WPFunctions; @@ -98,7 +97,6 @@ class MenuTest extends \MailPoetTest { new FeaturesController(), $wp, new ServicesChecker, - new UserFlagsController, $renderer, new PageLimit($wp), new Installation($settings, $wp),