Add NewsletterEditor page class

[MAILPOET-2200]
This commit is contained in:
Rostislav Wolny
2019-07-15 16:04:46 +02:00
committed by M. Shull
parent 28f5c18b06
commit c11b2313af
4 changed files with 61 additions and 25 deletions

View File

@ -0,0 +1,58 @@
<?php
namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Config\Menu;
use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Shortcodes\ShortcodesHelper;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\UserFlagsController;
use MailPoet\WP\Functions as WPFunctions;
if (!defined('ABSPATH')) exit;
class NewsletterEditor {
/** @var PageRenderer */
private $page_renderer;
/** @var SettingsController */
private $settings;
/** @var UserFlagsController */
private $user_flags;
/** @var WPFunctions */
private $wp;
function __construct(
PageRenderer $page_renderer,
SettingsController $settings,
UserFlagsController $user_flags,
WPFunctions $wp
) {
$this->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);
}
}

View File

@ -5,6 +5,7 @@ namespace MailPoet\Config;
use Carbon\Carbon; use Carbon\Carbon;
use MailPoet\AdminPages\PageRenderer; use MailPoet\AdminPages\PageRenderer;
use MailPoet\AdminPages\Pages\Help; use MailPoet\AdminPages\Pages\Help;
use MailPoet\AdminPages\Pages\NewsletterEditor;
use MailPoet\AdminPages\Pages\Newsletters; use MailPoet\AdminPages\Pages\Newsletters;
use MailPoet\AdminPages\Pages\Settings; use MailPoet\AdminPages\Pages\Settings;
use MailPoet\AdminPages\Pages\WelcomeWizard; use MailPoet\AdminPages\Pages\WelcomeWizard;
@ -18,11 +19,9 @@ use MailPoet\Models\Form;
use MailPoet\Models\ModelValidator; use MailPoet\Models\ModelValidator;
use MailPoet\Models\Segment; use MailPoet\Models\Segment;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Shortcodes\ShortcodesHelper;
use MailPoet\Services\Bridge; use MailPoet\Services\Bridge;
use MailPoet\Settings\Pages; use MailPoet\Settings\Pages;
use MailPoet\Settings\SettingsController; use MailPoet\Settings\SettingsController;
use MailPoet\Settings\UserFlagsController;
use MailPoet\Subscribers\ImportExport\ImportExportFactory; use MailPoet\Subscribers\ImportExport\ImportExportFactory;
use MailPoet\Util\Installation; use MailPoet\Util\Installation;
use MailPoet\Util\License\Features\Subscribers as SubscribersFeature; use MailPoet\Util\License\Features\Subscribers as SubscribersFeature;
@ -35,8 +34,6 @@ if (!defined('ABSPATH')) exit;
class Menu { class Menu {
const MAIN_PAGE_SLUG = 'mailpoet-newsletters'; const MAIN_PAGE_SLUG = 'mailpoet-newsletters';
/** @var Renderer */
public $renderer;
public $mp_api_key_valid; public $mp_api_key_valid;
public $premium_key_valid; public $premium_key_valid;
@ -48,8 +45,6 @@ class Menu {
/** @var FeaturesController */ /** @var FeaturesController */
private $features_controller; private $features_controller;
/** @var UserFlagsController */
private $user_flags;
/** @var WPFunctions */ /** @var WPFunctions */
private $wp; private $wp;
/** @var ServicesChecker */ /** @var ServicesChecker */
@ -75,7 +70,6 @@ class Menu {
FeaturesController $featuresController, FeaturesController $featuresController,
WPFunctions $wp, WPFunctions $wp,
ServicesChecker $servicesChecker, ServicesChecker $servicesChecker,
UserFlagsController $user_flags,
PageRenderer $page_renderer, PageRenderer $page_renderer,
Listing\PageLimit $listing_page_limit, Listing\PageLimit $listing_page_limit,
Installation $installation, Installation $installation,
@ -86,7 +80,6 @@ class Menu {
$this->settings = $settings; $this->settings = $settings;
$this->features_controller = $featuresController; $this->features_controller = $featuresController;
$this->servicesChecker = $servicesChecker; $this->servicesChecker = $servicesChecker;
$this->user_flags = $user_flags;
$this->page_renderer = $page_renderer; $this->page_renderer = $page_renderer;
$this->listing_page_limit = $listing_page_limit; $this->listing_page_limit = $listing_page_limit;
$this->installation = $installation; $this->installation = $installation;
@ -584,21 +577,7 @@ class Menu {
} }
function newletterEditor() { function newletterEditor() {
$subscriber = Subscriber::getCurrentWPUser(); $this->container->get(NewsletterEditor::class)->render();
$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);
} }
function import() { function import() {

View File

@ -31,6 +31,7 @@ class ContainerConfigurator implements IContainerConfigurator {
// AdminPages // AdminPages
$container->autowire(\MailPoet\AdminPages\PageRenderer::class); $container->autowire(\MailPoet\AdminPages\PageRenderer::class);
$container->autowire(\MailPoet\AdminPages\Pages\Help::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\Newsletters::class);
$container->autowire(\MailPoet\AdminPages\Pages\Settings::class); $container->autowire(\MailPoet\AdminPages\Pages\Settings::class);
$container->autowire(\MailPoet\AdminPages\Pages\WelcomeWizard::class); $container->autowire(\MailPoet\AdminPages\Pages\WelcomeWizard::class);

View File

@ -11,7 +11,6 @@ use MailPoet\DI\ContainerWrapper;
use MailPoet\Features\FeaturesController; use MailPoet\Features\FeaturesController;
use MailPoet\Listing\PageLimit; use MailPoet\Listing\PageLimit;
use MailPoet\Settings\SettingsController; use MailPoet\Settings\SettingsController;
use MailPoet\Settings\UserFlagsController;
use MailPoet\Util\Installation; use MailPoet\Util\Installation;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
@ -98,7 +97,6 @@ class MenuTest extends \MailPoetTest {
new FeaturesController(), new FeaturesController(),
$wp, $wp,
new ServicesChecker, new ServicesChecker,
new UserFlagsController,
$renderer, $renderer,
new PageLimit($wp), new PageLimit($wp),
new Installation($settings, $wp), new Installation($settings, $wp),