11 use Magento\Theme\Model\ResourceModel\Design\Config\Scope\CollectionFactory;
91 protected function execute(array $ids = [])
121 $this->execute($ids);
132 $this->execute([
$id]);
142 if ($this->saveHandler ===
null) {
143 $this->saveHandler = $this->saveHandlerFactory->create(
144 $this->data[
'saveHandler'],
147 'data' => $this->data,
161 foreach ($this->data[
'fieldsets'] as $fieldsetName => $fieldset) {
162 $this->data[
'fieldsets'][$fieldsetName][
'source'] = $this->collectionFactory->create();
163 if (isset($fieldset[
'provider'])) {
164 $fieldsetObject = $this->fieldsetPool->get($fieldset[
'provider']);
165 $this->data[
'fieldsets'][$fieldsetName] =
166 $fieldsetObject->addDynamicData($this->data[
'fieldsets'][$fieldsetName]);
168 foreach ($this->data[
'fieldsets'][$fieldsetName][
'fields'] as $fieldName => $field) {
169 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'origin'] =
170 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'origin']
171 ?: $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'name'];
172 if ($fieldsetName != 0) {
173 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'name'] =
174 $this->data[
'fieldsets'][$fieldsetName][
'name'] .
'_' 175 . $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'name'];
178 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'handler'] =
179 $this->handlerPool->get($field[
'handler']);
180 $this->data[
'fieldsets'][$fieldsetName][
'fields'][$fieldName][
'dataType'] =
181 isset($field[
'dataType']) ? $field[
'dataType'] :
'varchar';
194 switch ($field[
'type']) {
196 $this->filterable[] = $field;
199 $this->searchable[] = $field;
211 if (!$this->data[
'structure']) {
214 return $this->structureFactory->create($this->data[
'structure']);
__construct(StructureFactory $structureFactory, SaveHandlerFactory $saveHandlerFactory, FieldsetPool $fieldsetPool, HandlerPool $handlerPool, CollectionFactory $collectionFactory, $data=[])