48 $pagesEnableFields =
$GLOBALS[
'TCA'][
'pages'][
'ctrl'][
'enablecolumns'];
49 foreach ($pagesEnableFields as $pagesEnableField) {
50 $this->updateRequiringFields[] = $pagesEnableField;
52 $this->updateRequiringFields[] =
$GLOBALS[
'TCA'][
'pages'][
'ctrl'][
'delete'];
56 if (!empty(
$GLOBALS[
'TYPO3_CONF_VARS'][
'BE'][
'additionalTreelistUpdateFields'])) {
57 $additionalTreelistUpdateFields = GeneralUtility::trimExplode(
',',
$GLOBALS[
'TYPO3_CONF_VARS'][
'BE'][
'additionalTreelistUpdateFields'],
true);
58 $this->updateRequiringFields = array_merge($this->updateRequiringFields, $additionalTreelistUpdateFields);
77 if ($status ===
'new') {
80 $affectedPageUid = $dataHandler->substNEWwithIDs[$recordId];
81 $affectedPagePid = $updatedFields[
'pid'];
82 } elseif ($status ===
'update') {
84 $affectedPageUid = $recordId;
88 $affectedPagePid = $fullPageRecord[
'pid'];
107 $action = (is_array($commandValue) && isset($commandValue[
'action'])) ? (
string)$commandValue[
'action'] :
'';
108 if ($table ===
'pages' && ($command ===
'delete' || ($command ===
'version' && $action ===
'swap'))) {
110 $affectedPageUid = $affectedRecord[
'uid'];
111 $affectedPagePid = $affectedRecord[
'pid'];
115 if ($command ===
'delete') {
116 $updatedFields[
'deleted'] = 1;
119 $updatedFields[
't3ver_wsid'] = 0;
144 $affectedPageUid = $recordId;
145 $affectedPageOldPid = $movedRecord[
'pid'];
146 $affectedPageNewPid = $updatedFields[
'pid'];
170 $affectedPageUid = $recordId;
171 $affectedPageOldPid = $movedRecord[
'pid'];
172 $affectedPageNewPid = $updatedFields[
'pid'];
189 $requiresUpdate =
false;
190 $updatedFieldNames = array_keys($updatedFields);
191 foreach ($updatedFieldNames as $updatedFieldName) {
192 if (in_array($updatedFieldName, $this->updateRequiringFields,
true)) {
193 $requiresUpdate =
true;
197 return $requiresUpdate;
210 $actionNames = array_keys($actions);
211 foreach ($actionNames as $actionName) {
212 switch ($actionName) {
216 case 'setExpiration':
218 $expirationTime = $updatedFields[
'endtime'];
221 case 'uidInTreelist':
228 $randomNumber = rand(1, 1000);
229 if ($randomNumber === 500) {
244 foreach ($rootLine as $page) {
245 if ($page[
'uid'] != 0) {
246 $rootLineIds[] = $page[
'uid'];
249 if (!empty($rootLineIds)) {
250 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
251 ->getQueryBuilderForTable(
'cache_treelist');
253 ->delete(
'cache_treelist')
255 $queryBuilder->expr()->in(
257 $queryBuilder->createNamedParameter($rootLineIds, Connection::PARAM_INT_ARRAY)
272 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
273 ->getQueryBuilderForTable(
'cache_treelist');
275 ->delete(
'cache_treelist')
277 $queryBuilder->expr()->inSet(
'treelist', $queryBuilder->quote($affectedPage))
291 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
292 ->getQueryBuilderForTable(
'cache_treelist');
294 ->update(
'cache_treelist')
296 $queryBuilder->expr()->inSet(
'treelist', $queryBuilder->quote($affectedPage))
298 ->set(
'expires', $expirationTime)
307 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
308 ->getQueryBuilderForTable(
'cache_treelist');
310 ->delete(
'cache_treelist')
312 $queryBuilder->expr()->lte(
314 $queryBuilder->createNamedParameter(
$GLOBALS[
'EXEC_TIME'], \PDO::PARAM_INT)
331 if ($status ===
'new') {
333 $actions[
'allParents'] =
true;
334 } elseif ($status ===
'update') {
335 $updatedFieldNames = array_keys($updatedFields);
336 foreach ($updatedFieldNames as $updatedFieldName) {
337 switch ($updatedFieldName) {
340 case $GLOBALS[
'TCA'][
'pages'][
'ctrl'][
'enablecolumns'][
'disabled']:
342 case $GLOBALS[
'TCA'][
'pages'][
'ctrl'][
'delete']:
344 case $GLOBALS[
'TCA'][
'pages'][
'ctrl'][
'enablecolumns'][
'starttime']:
346 case $GLOBALS[
'TCA'][
'pages'][
'ctrl'][
'enablecolumns'][
'fe_group']:
348 case 'extendToSubpages':
352 case 'php_tree_stop':
354 $actions[
'allParents'] =
true;
355 $actions[
'uidInTreelist'] =
true;
357 case $GLOBALS[
'TCA'][
'pages'][
'ctrl'][
'enablecolumns'][
'endtime']:
362 if ($updatedFields[
'endtime'] > 0) {
363 $actions[
'setExpiration'] =
true;
365 $actions[
'uidInTreelist'] =
true;
369 if (in_array($updatedFieldName, $this->updateRequiringFields,
true)) {
370 $actions[
'uidInTreelist'] =
true;