Project

General

Profile

Actions

Bug #100087

closed

PHP Warning: Array to string conversion in IconFactory.php

Added by Franz Holzinger about 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Backend API
Target version:
-
Start date:
2023-03-04
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
12
PHP Version:
8.1
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

When I open the list module with records of tt_board, then I get this PHP warning.

(1/1) #1476107295 TYPO3\CMS\Core\Error\Exception
PHP Warning: Array to string conversion in /home/www/path/typo3_src-12.1.3/typo3/sysext/core/Classes/Imaging/IconFactory.php line 158

in /home/www/path/typo3_src-12.1.3/typo3/sysext/core/Classes/Error/ErrorHandler.php line 138
        }

        $message = self::ERROR_LEVEL_LABELS[$errorLevel] . ': ' . $errorMessage . ' in ' . $errorFile . ' line ' . $errorLine;
        if ($errorLevel & $this->exceptionalErrors) {
            throw new Exception($message, 1476107295);
        }

        $message = $this->getFormattedLogMessage($message);

at TYPO3\CMS\Core\Error\ErrorHandler->handleError()
at implode()
in /home/www/path/typo3_src-12.1.3/typo3/sysext/core/Classes/Imaging/IconFactory.php line 158
                // even if not properly documented the value of the typeicon_column in a record could be
                // an array (multiselect) in typeicon_classes a key could consist of a comma-separated string "foo,bar" 
                // but mostly it should be only one entry in that array
                if (is_array($row[$column])) {
                    $recordType[1] = implode(',', $row[$column]);
                } else {
                    $recordType[1] = $row[$column];
                }
            } else {
at TYPO3\CMS\Core\Imaging\IconFactory->mapRecordTypeToIconIdentifier()
in /home/www/path/typo3_src-12.1.3/typo3/sysext/core/Classes/Imaging/IconFactory.php line 125
     * @return Icon
     */
    public function getIconForRecord($table, array $row, $size = Icon::SIZE_MEDIUM)
    {
        $iconIdentifier = $this->mapRecordTypeToIconIdentifier($table, $row);
        $overlayIdentifier = $this->mapRecordTypeToOverlayIdentifier($table, $row);
        return $this->getIcon($iconIdentifier, $size, $overlayIdentifier);
    }

at TYPO3\CMS\Core\Imaging\IconFactory->getIconForRecord()
in /home/www/path/typo3_src-12.1.3/typo3/sysext/backend/Classes/Form/Container/OuterWrapContainer.php line 68
            $recordPath = BackendUtility::getRecordPath($this->data['effectivePid'], $permissionsClause, 15);
        }

        $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
        $icon = '<span title="' . htmlspecialchars($recordPath) . '">' . $iconFactory->getIconForRecord($table, $row, Icon::SIZE_SMALL)->render() . '</span>';

        // @todo: Could this be done in a more clever way? Does it work at all?
        $tableTitle = $languageService->sL($this->data['processedTca']['ctrl']['title']);

at TYPO3\CMS\Backend\Form\Container\OuterWrapContainer->render()
in /home/www/path/typo3_src-12.1.3/typo3/sysext/backend/Classes/Controller/EditDocumentController.php line 1166
                            }
                        }

                        $formData['renderType'] = 'outerWrapContainer';
                        $formResult = $nodeFactory->create($formData)->render();

                        $html = $formResult['html'];

                        $formResult['html'] = '';
at TYPO3\CMS\Backend\Controller\EditDocumentController->makeEditForm()
in /home/www/path/typo3_src-12.1.3/typo3/sysext/backend/Classes/Controller/EditDocumentController.php line 975
        if (is_array($this->editconf)) {
            $this->formResultCompiler = GeneralUtility::makeInstance(FormResultCompiler::class);

            // Creating the editing form, wrap it with buttons, document selector etc.
            $editForm = $this->makeEditForm($view

Actions #1

Updated by Franz Holzinger about 1 year ago

This is fixed in TYPO3 12.2.0.

Actions #2

Updated by Andreas Kienast about 1 year ago

  • Status changed from New to Closed

Hello.
The ticket was created for v12 and you stated that the issue is solved since v12.2. With v12.3 being released today, I'll therefore close this ticket, as there won't be any further updates for v12.1.

Kind regards
Andreas

Actions

Also available in: Atom PDF