![]() 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-import-export/Block/Adminhtml/Import/Frame/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\ImportExport\Block\Adminhtml\Import\Frame; use Magento\Framework\View\Element\Template; /** * Import frame result block. * * @api * @since 100.0.2 */ class Result extends \Magento\Backend\Block\Template { /** * JavaScript actions for response. * 'clear' remove element from DOM * 'innerHTML' set innerHTML property (use: elementID => new content) * 'value' set value for form element (use: elementID => new value) * 'show' show specified element * 'hide' hide specified element * 'removeClassName' remove specified class name from element * 'addClassName' add specified class name to element * * @var array */ protected $_actions = [ 'clear' => [], 'innerHTML' => [], 'value' => [], 'show' => [], 'hide' => [], 'removeClassName' => [], 'addClassName' => [], ]; /** * Validation messages. * * @var array */ protected $_messages = ['error' => [], 'success' => [], 'notice' => []]; /** * @var \Magento\Framework\Json\EncoderInterface */ protected $_jsonEncoder; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\Json\EncoderInterface $jsonEncoder, array $data = [] ) { $this->_jsonEncoder = $jsonEncoder; parent::__construct($context, $data); } /** * Add action for response. * * @param string $actionName * @param string $elementId * @param mixed $value OPTIONAL * @return $this */ public function addAction($actionName, $elementId, $value = null) { if (isset($this->_actions[$actionName])) { if (null === $value) { if (is_array($elementId)) { foreach ($elementId as $oneId) { $this->_actions[$actionName][] = $oneId; } } else { $this->_actions[$actionName][] = $elementId; } } else { $this->_actions[$actionName][$elementId] = $value; } } return $this; } /** * Add error message. * * @param string $message Error message * @return $this */ public function addError($message) { if (is_array($message)) { foreach ($message as $row) { $this->addError($row); } } else { $this->_messages['error'][] = $this->escapeHtml($message); } return $this; } /** * Add notice message. * * @param string[]|string $message Message text * @param bool $appendImportButton OPTIONAL Append import button to message? * @return $this */ public function addNotice($message, $appendImportButton = false) { if (is_array($message)) { foreach ($message as $row) { $this->addNotice($row); } } else { $this->_messages['notice'][] = $message . ($appendImportButton ? $this->getImportButtonHtml() : ''); } return $this; } /** * Add success message. * * @param string[]|string $message Message text * @param bool $appendImportButton OPTIONAL Append import button to message? * @return $this */ public function addSuccess($message, $appendImportButton = false) { if (is_array($message)) { foreach ($message as $row) { $this->addSuccess($row); } } else { $escapedMessage = $this->escapeHtml($message); $this->_messages['success'][] = $escapedMessage . ($appendImportButton ? $this->getImportButtonHtml() : ''); } return $this; } /** * Import button HTML for append to message. * * @return string */ public function getImportButtonHtml() { return ' <button onclick="varienImport.startImport(\'' . $this->getImportStartUrl() . '\', \'' . \Magento\ImportExport\Model\Import::FIELD_NAME_SOURCE_FILE . '\');" class="scalable save"' . ' type="button"><span><span><span>' . __( 'Import' ) . '</span></span></span></button>'; } /** * Import start action URL. * * @return string */ public function getImportStartUrl() { return $this->getUrl('adminhtml/*/start'); } /** * Messages getter. * * @return array */ public function getMessages() { return $this->_messages; } /** * Messages rendered HTML getter. * * @return string */ public function getMessagesHtml() { /** @var $messagesBlock \Magento\Framework\View\Element\Messages */ $messagesBlock = $this->_layout->createBlock(\Magento\Framework\View\Element\Messages::class); foreach ($this->_messages as $priority => $messages) { $method = "add{$priority}"; foreach ($messages as $message) { $messagesBlock->{$method}($message); } } return $messagesBlock->toHtml(); } /** * Return response as JSON. * * @return string */ public function getResponseJson() { // add messages HTML if it is not already specified if (!isset($this->_actions['import_validation_messages'])) { $this->addAction('innerHTML', 'import_validation_messages', $this->getMessagesHtml()); } return $this->_jsonEncoder->encode($this->_actions); } }