Bug #88083

ContentObjectRenderer::getTreeList isn't aware of Workspace/NonCacheRequests and expires not respected / mishandled

Added by Alexander Opitz about 2 months ago. Updated about 1 month ago.

Status:
New
Priority:
Should have
Assignee:
-
Category:
Frontend
Target version:
-
Start date:
2019-04-04
Due date:
% Done:

0%

TYPO3 Version:
8
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

This issue seams very old, didn't found a report yet.

Multiple issues in the tree implementation:

  • If the tree between LIVE and a WS differs (maybe you hide a page in the tree line)
    • First page request on LIVE => tree is wrong for WS (You may show to much)
    • First page request is BE user in WS => tree is wrong for LIVE (maybe you hide an element in WS it gets invisible in LIVE)
  • If no cache entry exists, all data from a FE request is saved as "Expires never" but what is with pages which have a start-/endtime? This isn't respected while generating the treelist.
  • If a cache entry exists, and a page gets in BE changed endtime (not for starttime) then setCacheExpiration in TreelistCacheUpdateHooks should be called (works as expected) but the expire time is also set regardless if already a lower expire time exists.
  • If a cache entry exists, and a page gets in BE changed starttime cache is cleared for this pid.

Set to TYPO3 Version 8, as analyzed on this, but the issues may be older.

BTW: The functionality isn't splited in caching and treelist generating
  • Hard to read/understand
  • Not useable without caching

History

#1 Updated by Alexander Opitz about 2 months ago

  • Description updated (diff)

#2 Updated by Susanne Moog about 1 month ago

  • Category changed from Frontend to Workspaces

#3 Updated by Susanne Moog about 1 month ago

  • Category changed from Workspaces to Frontend
  • Status changed from New to Needs Feedback

Category is hard to say ;) Maybe `Workspaces`, too. Did you by chance analyze whether this still happens in v9 with the newly introduced context?

#4 Updated by Alexander Opitz about 1 month ago

@Susanne Yes, I checked this also with v9LTS and master, the hash is calculated with following array

$parameters = [
    $id,
    $depth,
    $begin,
    $dontCheckEnableFields,
    $addSelectFields,
    $moreWhereClauses,
    $prevId_array,
    GeneralUtility::makeInstance(Context::class)->getPropertyFromAspect('frontend.user', 'groupIds', [0, -1])
];

#5 Updated by Alexander Opitz about 1 month ago

  • Status changed from Needs Feedback to New

Also available in: Atom PDF