13 use Magento\Theme\Api\Data\DesignConfigExtension;
14 use Magento\Theme\Api\Data\DesignConfigInterfaceFactory;
16 use Magento\Theme\Api\Data\DesignConfigDataInterfaceFactory;
17 use Magento\Theme\Api\Data\DesignConfigExtensionFactory;
89 public function create($scope, $scopeId, array
$data = [])
91 if (!$this->scopeValidator->isValidScope($scope, $scopeId)) {
92 throw new LocalizedException(
__(
'The scope or scope ID is invalid. Verify both and try again.'));
94 $designConfigData = $this->getDesignConfigData($scope, $scopeId);
97 foreach ($this->metadataProvider->get() as
$name => $metadata) {
98 $metadata[
'field'] =
$name;
100 $configDataObject = $this->designConfigDataFactory->create();
101 $configDataObject->setPath($metadata[
'path']);
102 $configDataObject->setFieldConfig($metadata);
109 $designConfigExtension = $this->configExtensionFactory->create();
110 $designConfigExtension->setDesignConfigData(
$configData);
111 $designConfigData->setExtensionAttributes($designConfigExtension);
113 return $designConfigData;
123 protected function getDesignConfigData($scope, $scopeId)
126 $designConfigData = $this->designConfigFactory->create();
129 $designConfigData->setScope($scopeInfo[
'scope']);
130 $designConfigData->setScopeId($scopeInfo[
'scopeId']);
132 return $designConfigData;
144 $isSingleStoreMode = $this->storeManager->isSingleStoreMode();
145 if ($isSingleStoreMode) {
146 $websites = $this->storeManager->getWebsites();
147 $singleStoreWebsite = array_shift(
$websites);
149 $scopeId = $singleStoreWebsite->getId();
153 'scopeId' => $scopeId
__construct(DesignConfigInterfaceFactory $designConfigFactory, MetadataProviderInterface $metadataProvider, DesignConfigDataInterfaceFactory $designConfigDataFactory, DesignConfigExtensionFactory $configExtensionFactory, ScopeValidatorInterface $scopeValidator, StoreManagerInterface $storeManager)
getCorrectScope($scope, $scopeId)
if(!isset($_GET['name'])) $name