11 use Magento\Framework\DB\TransactionFactory;
79 public function load($scope, $scopeId)
81 $designConfig = $this->configFactory->create($scope, $scopeId);
82 $fieldsData = $designConfig->getExtensionAttributes()->getDesignConfigData();
83 foreach ($fieldsData as &$fieldData) {
84 $value = $this->valueProcessor->process(
85 $this->scopeConfig->getValue($fieldData->getPath(), $scope, $scopeId),
88 $fieldData->getFieldConfig()
94 $fieldData->setValue(
$value);
110 $saveTransaction = $this->transactionFactory->create();
112 $deleteTransaction = $this->transactionFactory->create();
113 foreach ($fieldsData as $fieldData) {
115 $backendModel = $this->backendModelFactory->create([
116 'value' => $fieldData->getValue(),
117 'scope' => $designConfig->
getScope(),
119 'config' => $fieldData->getFieldConfig()
122 if ($fieldData->getValue() !==
null 123 && $this->valueChecker->isDifferentFromDefault(
124 $fieldData->getValue(),
127 $fieldData->getFieldConfig()
130 $saveTransaction->addObject($backendModel);
131 }
elseif (!$backendModel->isObjectNew()) {
132 $deleteTransaction->addObject($backendModel);
135 $saveTransaction->save();
136 $deleteTransaction->delete();
145 public function delete(DesignConfigInterface $designConfig)
149 $deleteTransaction = $this->transactionFactory->create();
150 foreach ($fieldsData as $fieldData) {
152 $backendModel = $this->backendModelFactory->create([
153 'value' => $fieldData->getValue(),
154 'scope' => $designConfig->
getScope(),
156 'config' => $fieldData->getFieldConfig()
158 if (!$backendModel->isObjectNew()) {
159 $deleteTransaction->addObject($backendModel);
162 $deleteTransaction->delete();
elseif(isset( $params[ 'redirect_parent']))
__construct(TransactionFactory $transactionFactory, BackendModelFactory $backendModelFactory, ValueChecker $valueChecker, ConfigFactory $configFactory, ScopeConfigInterface $scopeConfig, ValueProcessor $valueProcessor)