![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-newsletter/Block/Adminhtml/Queue/Edit/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Newsletter\Block\Adminhtml\Queue\Edit; /** * Newsletter queue edit form * * @author Magento Core Team <[email protected]> */ class Form extends \Magento\Backend\Block\Widget\Form\Generic { /** * @var \Magento\Cms\Model\Wysiwyg\Config */ protected $_wysiwygConfig; /** * @var \Magento\Store\Model\System\Store */ protected $_systemStore; /** * @var \Magento\Newsletter\Model\QueueFactory */ protected $_queueFactory; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Data\FormFactory $formFactory * @param \Magento\Newsletter\Model\QueueFactory $queueFactory * @param \Magento\Store\Model\System\Store $systemStore * @param \Magento\Cms\Model\Wysiwyg\Config $wysiwygConfig * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Data\FormFactory $formFactory, \Magento\Newsletter\Model\QueueFactory $queueFactory, \Magento\Store\Model\System\Store $systemStore, \Magento\Cms\Model\Wysiwyg\Config $wysiwygConfig, array $data = [] ) { $this->_wysiwygConfig = $wysiwygConfig; $this->_systemStore = $systemStore; $this->_queueFactory = $queueFactory; parent::__construct($context, $registry, $formFactory, $data); } /** * Prepare form for newsletter queue editing. * Form can be run from newsletter template grid by option "Queue newsletter" * or from newsletter queue grid by edit option. * * @return $this * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ protected function _prepareForm() { /* @var $queue \Magento\Newsletter\Model\Queue */ $queue = $this->getQueue(); /** @var \Magento\Framework\Data\Form $form */ $form = $this->_formFactory->create(); $fieldset = $form->addFieldset( 'base_fieldset', ['legend' => __('Queue Information'), 'class' => 'fieldset-wide'] ); $dateFormat = $this->_localeDate->getDateFormat( \IntlDateFormatter::MEDIUM ); $timeFormat = $this->_localeDate->getTimeFormat( \IntlDateFormatter::MEDIUM ); if ($queue->getQueueStatus() == \Magento\Newsletter\Model\Queue::STATUS_NEVER) { $fieldset->addField( 'date', 'date', [ 'name' => 'start_at', 'date_format' => $dateFormat, 'time_format' => $timeFormat, 'label' => __('Queue Date Start') ] ); if (!$this->_storeManager->hasSingleStore()) { $fieldset->addField( 'stores', 'multiselect', [ 'name' => 'stores[]', 'label' => __('Subscribers From'), 'values' => $this->_systemStore->getStoreValuesForForm(), 'value' => $queue->getStores() ] ); } else { $fieldset->addField( 'stores', 'hidden', ['name' => 'stores[]', 'value' => $this->_storeManager->getStore(true)->getId()] ); } } else { $fieldset->addField( 'date', 'date', [ 'name' => 'start_at', 'disabled' => 'true', 'style' => 'width:38%;', 'date_format' => $dateFormat, 'time_format' => $timeFormat, 'label' => __('Queue Date Start') ] ); if (!$this->_storeManager->hasSingleStore()) { $fieldset->addField( 'stores', 'multiselect', [ 'name' => 'stores[]', 'label' => __('Subscribers From'), 'required' => true, 'values' => $this->_systemStore->getStoreValuesForForm(), 'value' => $queue->getStores() ] ); } else { $fieldset->addField( 'stores', 'hidden', ['name' => 'stores[]', 'value' => $this->_storeManager->getStore(true)->getId()] ); } } if ($queue->getQueueStartAt()) { $form->getElement( 'date' )->setValue( $this->_localeDate->date(new \DateTime($queue->getQueueStartAt())) ); } $fieldset->addField( 'subject', 'text', [ 'name' => 'subject', 'label' => __('Subject'), 'required' => true, 'value' => $queue->isNew() ? $queue ->getTemplate() ->getTemplateSubject() : $queue ->getNewsletterSubject() ] ); $fieldset->addField( 'sender_name', 'text', [ 'name' => 'sender_name', 'label' => __('Sender Name'), 'title' => __('Sender Name'), 'required' => true, 'value' => $queue->isNew() ? $queue ->getTemplate() ->getTemplateSenderName() : $queue ->getNewsletterSenderName() ] ); $fieldset->addField( 'sender_email', 'text', [ 'name' => 'sender_email', 'label' => __('Sender Email'), 'title' => __('Sender Email'), 'class' => 'validate-email', 'required' => true, 'value' => $queue->isNew() ? $queue ->getTemplate() ->getTemplateSenderEmail() : $queue ->getNewsletterSenderEmail() ] ); $wysiwygConfig = $this->_wysiwygConfig->getConfig($this->getAdditionalWysiwygConfig()); if ($queue->isNew()) { $fieldset->addField( 'text', 'editor', [ 'name' => 'text', 'label' => __('Message'), 'state' => 'html', 'required' => true, 'value' => $queue->getTemplate()->getTemplateText(), 'style' => 'height: 600px;', 'config' => $wysiwygConfig ] ); $fieldset->addField( 'styles', 'textarea', [ 'name' => 'styles', 'label' => __('Newsletter Styles'), 'container_id' => 'field_newsletter_styles', 'value' => $queue->getTemplate()->getTemplateStyles() ] ); } elseif (\Magento\Newsletter\Model\Queue::STATUS_NEVER != $queue->getQueueStatus()) { $fieldset->addField( 'text', 'textarea', ['name' => 'text', 'label' => __('Message'), 'value' => $queue->getNewsletterText()] ); $fieldset->addField( 'styles', 'textarea', ['name' => 'styles', 'label' => __('Newsletter Styles'), 'value' => $queue->getNewsletterStyles()] ); $form->getElement('text')->setDisabled('true')->setRequired(false); $form->getElement('styles')->setDisabled('true')->setRequired(false); $form->getElement('subject')->setDisabled('true')->setRequired(false); $form->getElement('sender_name')->setDisabled('true')->setRequired(false); $form->getElement('sender_email')->setDisabled('true')->setRequired(false); $form->getElement('stores')->setDisabled('true'); } else { $fieldset->addField( 'text', 'editor', [ 'name' => 'text', 'label' => __('Message'), 'state' => 'html', 'required' => true, 'value' => $queue->getNewsletterText(), 'style' => 'height: 600px;', 'config' => $wysiwygConfig ] ); $fieldset->addField( 'styles', 'textarea', [ 'name' => 'styles', 'label' => __('Newsletter Styles'), 'value' => $queue->getNewsletterStyles(), 'style' => 'height: 300px;' ] ); } $this->setForm($form); return $this; } /** * This is extension point for customizing configuration of WYSIWYG * You can add afterGetAdditionalWysiwygConfig plugin * in order to extend current configuration * * @return array */ public function getAdditionalWysiwygConfig() { return [ 'widget_filers' => [ 'is_email_compatible' => 1 ] ]; } /** * Retrieve queue object * * @return \Magento\Newsletter\Model\Queue */ protected function getQueue() { $queue = $this->_coreRegistry->registry('current_queue'); if (!$queue) { $queue = $this->_queueFactory->create(); } return $queue; } }