Steps to reproduce
1. Create a workspace.
2. Create a new translation of a page within a workspace.
3. Change to live workspace.
4. Try to access the page where the new translation has been added in the page module.
Page can not be loaded in the page module. Responds with an error message.
"Uncaught TYPO3 Exception: Argument 2 passed to TYPO3\CMS\Core\Imaging\IconFactory::getIconForRecord() must be of the type array, boolean given"
Please find a patch solving the problem attached.
Updated by Riccardo De Contardi over 3 years ago
some info maybe also on #82535; I copy here part of the issue description:
Debugged a little and the problems seems to be that he tries to fetch the WorkspaceStaging Record within this query:$lpRecord = $queryBuilder->select('*') ->from('pages_language_overlay') ->where( $queryBuilder->expr()->eq( 'pid', $queryBuilder->createNamedParameter($id, \PDO::PARAM_INT) ), $queryBuilder->expr()->eq( 'sys_language_uid', $queryBuilder->createNamedParameter($lP, \PDO::PARAM_INT) ) ) ->setMaxResults(1) ->execute() ->fetch();
pid is set to the ID of the originial Page but he tries to fetch the page_language_overlay record from the workspace with the pid -1. So $lpRecord is not a $row but a boolea with the value "false" causing the error.
Updated by Benni Mack over 2 years ago
- Status changed from New to Needs Feedback
we could fix this conceptually - we migrated pages_language_overlay into pages in v9. Can you check if this solves your issue?
The change was a conceptual problem so an "easy" fix wasn't possible without side effects.
Updated by Riccardo De Contardi over 2 years ago
I tried to reproduce the issue with the steps written on the issue description, following this procedure:
- create a draft workspace with the home page as mount point;
- create a page in LIVE; headline: "Test"
- switch to draft workspace
- create a translation in the draft workspace
- click on the "Test" page
- switch to LIVE
TYPO3 8.7.24 > the issue is still present
Oops, an error occurred! Argument 2 passed to TYPO3\CMS\Core\Imaging\IconFactory::getIconForRecord() must be of the type array, boolean given, called in /Users/riccardo/TYPO3-dists/typo3_src-8.7.24/typo3/sysext/backend/Classes/View/PageLayoutView.php on line 900
TYPO3 9.5.5 and latest master > Not reproducible