11 use Magento\Theme\Model\ResourceModel\Design\Config\CollectionFactory;
36 private $metadataLoader;
41 private $settingChecker;
51 private $scopeCodeResolver;
69 CollectionFactory $configCollectionFactory,
81 $this->metadataLoader = $metadataLoader;
83 $this->collection = $configCollectionFactory->create();
85 $this->meta = array_merge($this->meta, $this->metadataLoader->getData());
93 if (isset($this->loadedData)) {
97 $this->loadedData = $this->dataLoader->getData();
106 $meta = parent::getMeta();
107 if (!isset(
$meta[
'other_settings'][
'children'])) {
111 $request = $this->getRequest()->getParams();
112 if (!isset($request[
'scope'])) {
116 $scope = $request[
'scope'];
117 $scopeCode = $this->getScopeCodeResolver()->resolve(
119 isset($request[
'scope_id']) ? $request[
'scope_id'] :
null 122 foreach (
$meta[
'other_settings'][
'children'] as $settingGroupName => &$settingGroup) {
123 foreach ($settingGroup[
'children'] as $fieldName => &$field) {
127 preg_replace(
'/^' . $settingGroupName .
'_/',
'', $fieldName)
129 $isReadOnly = $this->getSettingChecker()->isReadOnly(
136 $field[
'arguments'][
'data'][
'config'][
'disabled'] =
true;
137 $field[
'arguments'][
'data'][
'config'][
'is_disable_inheritance'] =
true;
142 if (isset(
$meta[
'other_settings'][
'children'][
'search_engine_robots'][
'children'])) {
143 $meta[
'other_settings'][
'children'][
'search_engine_robots'][
'children'] = array_merge(
144 $meta[
'other_settings'][
'children'][
'search_engine_robots'][
'children'],
145 $this->getSearchEngineRobotsMetadata(
147 $meta[
'other_settings'][
'children'][
'search_engine_robots'][
'children']
164 private function getSearchEngineRobotsMetadata($scope, array
$fields = [])
167 $resetToDefaultsData = [
172 'is_disable_inheritance' =>
true,
177 $fields = array_merge(
$fields, [
'reset_to_defaults' => $resetToDefaultsData]);
179 $field[
'arguments'][
'data'][
'config'][
'disabled'] =
true;
180 $field[
'arguments'][
'data'][
'config'][
'is_disable_inheritance'] =
true;
190 private function getScopeCodeResolver()
192 if ($this->scopeCodeResolver ===
null) {
195 return $this->scopeCodeResolver;
202 private function getSettingChecker()
204 if ($this->settingChecker ===
null) {
207 return $this->settingChecker;
214 private function getRequest()
216 if ($this->request ===
null) {
219 return $this->request;
__construct( $name, $primaryFieldName, $requestFieldName, DataProvider\DataLoader $dataLoader, DataProvider\MetadataLoader $metadataLoader, CollectionFactory $configCollectionFactory, array $meta=[], array $data=[])