123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Backend\Block\System\Store;
- use Magento\Framework\App\ObjectManager;
- use Magento\Framework\Serialize\SerializerInterface;
- /**
- * @api
- *
- * Adminhtml store edit
- * @since 100.0.2
- */
- class Edit extends \Magento\Backend\Block\Widget\Form\Container
- {
- /**
- * Core registry
- *
- * @var \Magento\Framework\Registry
- */
- protected $_coreRegistry = null;
- /**
- * @var SerializerInterface
- */
- private $serializer;
- /**
- * @param \Magento\Backend\Block\Widget\Context $context
- * @param \Magento\Framework\Registry $registry
- * @param array $data
- * @param SerializerInterface|null $serializer
- */
- public function __construct(
- \Magento\Backend\Block\Widget\Context $context,
- \Magento\Framework\Registry $registry,
- array $data = [],
- SerializerInterface $serializer = null
- ) {
- $this->_coreRegistry = $registry;
- $this->serializer = $serializer ?: ObjectManager::getInstance()->get(SerializerInterface::class);
- parent::__construct($context, $data);
- }
- /**
- * Init class
- *
- * @return void
- */
- protected function _construct()
- {
- switch ($this->_coreRegistry->registry('store_type')) {
- case 'website':
- $this->_objectId = 'website_id';
- $saveLabel = __('Save Web Site');
- $deleteLabel = __('Delete Web Site');
- $deleteUrl = $this->getUrl(
- '*/*/deleteWebsite',
- ['item_id' => $this->_coreRegistry->registry('store_data')->getId()]
- );
- break;
- case 'group':
- $this->_objectId = 'group_id';
- $saveLabel = __('Save Store');
- $deleteLabel = __('Delete Store');
- $deleteUrl = $this->getUrl(
- '*/*/deleteGroup',
- ['item_id' => $this->_coreRegistry->registry('store_data')->getId()]
- );
- break;
- case 'store':
- $this->_objectId = 'store_id';
- $saveLabel = __('Save Store View');
- $deleteLabel = __('Delete Store View');
- $deleteUrl = $this->getUrl(
- '*/*/deleteStore',
- ['item_id' => $this->_coreRegistry->registry('store_data')->getId()]
- );
- break;
- default:
- $saveLabel = '';
- $deleteLabel = '';
- $deleteUrl = '';
- }
- $this->_blockGroup = 'Magento_Backend';
- $this->_controller = 'system_store';
- parent::_construct();
- $this->buttonList->update('save', 'label', $saveLabel);
- $this->buttonList->update('delete', 'label', $deleteLabel);
- $this->buttonList->update('delete', 'onclick', 'setLocation(\'' . $deleteUrl . '\');');
- if (!$this->_coreRegistry->registry('store_data')) {
- return;
- }
- if (!$this->_coreRegistry->registry('store_data')->isCanDelete()) {
- $this->buttonList->remove('delete');
- }
- if ($this->_coreRegistry->registry('store_data')->isReadOnly()) {
- $this->buttonList->remove('save');
- $this->buttonList->remove('reset');
- }
- }
- /**
- * Get Header text
- *
- * @return string
- */
- public function getHeaderText()
- {
- switch ($this->_coreRegistry->registry('store_type')) {
- case 'website':
- $editLabel = __('Edit Web Site');
- $addLabel = __('New Web Site');
- break;
- case 'group':
- $editLabel = __('Edit Store');
- $addLabel = __('New Store');
- break;
- case 'store':
- $editLabel = __('Edit Store View');
- $addLabel = __('New Store View');
- break;
- }
- return $this->_coreRegistry->registry('store_action') == 'add' ? $addLabel : $editLabel;
- }
- /**
- * Build child form class form name based on value of store_type in registry
- *
- * @return string
- */
- protected function _buildFormClassName()
- {
- return parent::_buildFormClassName() . '\\' . ucwords($this->_coreRegistry->registry('store_type'));
- }
- /**
- * Get data for store edit
- *
- * @return string
- * @since 100.2.0
- */
- public function getStoreData()
- {
- return $this->serializer->serialize($this->_coreRegistry->registry('store_data')->getData());
- }
- }
|