@@ -120,12 +120,18 @@ protected function toolbarIsEnabledForUser(): bool
120
120
$ isEnabled = false ;
121
121
}
122
122
123
- if ($ this ->backendUser ->user ['quickedit_disableToolbar ' ]) {
123
+ if (
124
+ array_key_exists ('quickedit_disableToolbar ' , $ this ->backendUser ->user ) &&
125
+ $ this ->backendUser ->user ['quickedit_disableToolbar ' ]
126
+ ) {
124
127
$ isEnabled = false ;
125
128
}
126
129
127
130
foreach ($ this ->backendUser ->userGroups as $ group ) {
128
- if ($ group ['quickedit_disableToolbar ' ]) {
131
+ if (
132
+ array_key_exists ('quickedit_disableToolbar ' , $ group ) &&
133
+ $ group ['quickedit_disableToolbar ' ]
134
+ ) {
129
135
$ isEnabled = false ;
130
136
}
131
137
}
@@ -168,7 +174,7 @@ protected function getFieldConfigForPage(): array
168
174
{
169
175
$ configForPageType = $ this ->getConfigForCurrentPage ();
170
176
171
- if (is_array ( $ configForPageType ) && count ($ configForPageType ) > 0 ) {
177
+ if (count ($ configForPageType ) > 0 ) {
172
178
foreach ($ configForPageType as $ key => &$ singleConfig ) {
173
179
$ singleConfig ['fields ' ] = $ this ->prepareFieldsList ($ singleConfig ['fields ' ]);
174
180
@@ -200,12 +206,21 @@ protected function getFieldConfigForPage(): array
200
206
protected function getConfigForCurrentPage (): array
201
207
{
202
208
$ pageTsConfig = BackendUtility::getPagesTSconfig ($ this ->pageUid );
203
- $ quickeditConfig = $ pageTsConfig ['mod. ' ]['web_layout. ' ]['PageTypes. ' ];
204
209
$ configForPageType = [];
205
210
206
- if (is_array ($ quickeditConfig ) && array_key_exists ($ this ->pageRecord ['doktype ' ] . '. ' , $ quickeditConfig )) {
207
- $ configForPageType = $ quickeditConfig [$ this ->pageRecord ['doktype ' ] . '. ' ]['config. ' ];
208
- ksort ($ configForPageType );
211
+ if (
212
+ array_key_exists ('mod. ' , $ pageTsConfig ) &&
213
+ is_array ($ pageTsConfig ['mod. ' ]) &&
214
+ array_key_exists ('web_layout. ' , $ pageTsConfig ['mod. ' ]) &&
215
+ is_array ($ pageTsConfig ['mod. ' ]['web_layout. ' ]) &&
216
+ array_key_exists ('PageTypes. ' , $ pageTsConfig ['mod. ' ]['web_layout. ' ])
217
+ ) {
218
+ $ quickeditConfig = $ pageTsConfig ['mod. ' ]['web_layout. ' ]['PageTypes. ' ];
219
+
220
+ if (is_array ($ quickeditConfig ) && array_key_exists ($ this ->pageRecord ['doktype ' ] . '. ' , $ quickeditConfig )) {
221
+ $ configForPageType = $ quickeditConfig [$ this ->pageRecord ['doktype ' ] . '. ' ]['config. ' ];
222
+ ksort ($ configForPageType );
223
+ }
209
224
}
210
225
211
226
return $ configForPageType ;
@@ -229,6 +244,11 @@ protected function prepareFieldsList(string $fields): string
229
244
$ fieldsArray = array_map ('trim ' , $ fieldsArray );
230
245
231
246
foreach ($ fieldsArray as $ index => $ field ) {
247
+ if ($ this ->isFieldDefined ($ field ) === false ) {
248
+ unset($ fieldsArray [$ index ]);
249
+ continue ;
250
+ }
251
+
232
252
if ($ this ->userHasAccessToField ($ field ) === false
233
253
|| $ this ->fieldIsAvailableForLanguage ($ field ) === false ) {
234
254
unset($ fieldsArray [$ index ]);
@@ -340,4 +360,15 @@ protected function isVisible(): bool
340
360
341
361
return $ isVisible ;
342
362
}
363
+
364
+
365
+
366
+ /**
367
+ * @param string $field
368
+ * @return bool
369
+ */
370
+ protected function isFieldDefined (string $ field ): bool
371
+ {
372
+ return array_key_exists ($ field , $ GLOBALS ['TCA ' ]['pages ' ]['columns ' ]);
373
+ }
343
374
}
0 commit comments