Bug #82953
closed
Epic #58282: Workspaces Workpackage #2
Story #58284: Bug fixes & Behaviour
Page Module throws errors after creating translation in a stage workspace
Added by Daniel Hinderink about 7 years ago.
Updated over 5 years ago.
Description
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.
Result
Page can not be loaded in the page module. Responds with an error message.
Error Message:
"Uncaught TYPO3 Exception: Argument 2 passed to TYPO3\CMS\Core\Imaging\IconFactory::getIconForRecord() must be of the type array, boolean given"
Affected Versions
8.7.0-8.7.8.
Solution:
./sysext/backend/Classes/Controller/PageLayoutController.php
Line 388
$queryBuilder->expr()->gte(
must be
$queryBuilder->expr()->lte(
Please find a patch solving the problem attached.
Files
- Status changed from New to Under Review
- Related to Bug #81659: Workspace page translation fatal error in the backend added
- Category changed from Backend User Interface to Workspaces
- Related to Bug #82535: Non published Translation in Workspace causes Exception in Live Workspace added
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.
- Parent task set to #58284
Any news on this? The problem still exists in the current release 8.7.16 :-(
- Status changed from Under Review to New
The patch has been abandoned.
Problem still exists in 8.7.24. Error dissapears when translations are published to live but reoccurs when pages are translated in draft-ws.
- Status changed from New to Needs Feedback
Hey all,
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.
Thanks.
Benni.
I tried to reproduce the issue with the steps written on the issue description, following this procedure:
Prerequsites¶
- create a draft workspace with the home page as mount point;
Test execution¶
- create a page in LIVE; headline: "Test"
- switch to draft workspace
- create a translation in the draft workspace
- save
- click on the "Test" page
- switch to LIVE
Results¶
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
- Target version changed from next-patchlevel to Candidate for patchlevel
- Status changed from Needs Feedback to Closed
- Target version changed from Candidate for patchlevel to next-patchlevel
Also available in: Atom
PDF