Project

General

Profile

Actions

Bug #102846

open

Error with pidList in suggestOptions for group field in FlexForms

Added by Stefan Terborg 4 months ago. Updated 12 days ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2024-01-17
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
12
PHP Version:
Tags:
Complexity:
no-brainer
Is Regression:
Sprint Focus:

Description

When I add suggestOptions for a group field in a content flexform, the search returns no results.

The ajax request returns a warning:
PHP Warning: Undefined array key "" in vendor/typo3/cms-backend/Classes/Controller/Wizard/SuggestWizardController.php line 62

When I debug the code it turns out that the

$parsedBody = $request->getParsedBody();
is null so that the data will never be evaluated as flexform
if (empty($dataStructureIdentifier)) {

is always true.

Actions #1

Updated by Stefan Terborg 4 months ago

  • Subject changed from SuggestOptions for group field in FlexForms broken to Error with pidList in suggestOptions for group field in FlexForms

I´m sorry, it seems I looked at the wrong place. ParsedBody is not null and the suggest options work.

Instead there seems to be a problem with <pidList> causing the following error:

Argument #2 must be of type array, int given, in file vendor/typo3/cms-backend/Classes/Form/Wizard/SuggestWizardDefaultReceiver.php:115

Example code:

...
<suggestOptions>
    <default>
        <pidList>33,41</pidList>
    </default>
</suggestOptions>
...

Or maybe I'm missing some option for the usage with pidList.

Actions #2

Updated by Kai Strecker 12 days ago

  • Complexity set to no-brainer

I have also just come across this bug.

As Stefan Terborg already pointed out, the cause is vendor/typo3/cms-backend/Classes/Form/Wizard/SuggestWizardDefaultReceiver.php:115, which is this line of code:

$this->allowedPages = array_unique(array_merge($this->allowedPages, ...$availablePageIds));

The bug here is that $availablePageIds is a one-dimensional array. Therefore, the use of ... to pass the array values to array_merge is incorrect. The fix is to simply remove ...:
$this->allowedPages = array_unique(array_merge($this->allowedPages, $availablePageIds));

After doing this patch, the suggest wizard worked fine in my TYPO3 instance.

Actions

Also available in: Atom PDF