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