[BUGFIX] Page within a mountpoint using Show Content from Page fatals 37/12837/5
authorPatrick <patrick@patrickbroens.nl>
Mon, 5 Dec 2011 09:00:31 +0000 (10:00 +0100)
committerErnesto Baschny <ernst@cron-it.de>
Mon, 22 Jul 2013 16:19:15 +0000 (18:19 +0200)
When pages:content_from_pid is used, the TSFE for the current object
will be cloned to a temporary object for the page to get the content
from.  In this temporary object, the id for the page will be changed to
the contents of content_from_pid.  However, the MP variable will not be
changed.

This results in a TSFE object with the wrong MP variable connected to
the id.  Within this temporary object the rootline will be calculated,
which will be empty, because of the wrong MP variable.  This triggers
"The requested page didn't have a proper connection to the tree-root"

This bugfix fixes this by emptying the MP variable.

Change-Id: I56fc25924a1766d2befaffee8abbed5466a04942
Fixes: #32292
Releases: 4.7, 4.6, 4.5
Reviewed-on: https://review.typo3.org/12837
Reviewed-by: Ernesto Baschny
Tested-by: Ernesto Baschny
typo3/sysext/cms/tslib/class.tslib_pagegen.php

index edfea36..f995d25 100644 (file)
@@ -96,6 +96,7 @@ class TSpagegen {
                if ($GLOBALS['TSFE']->page['content_from_pid']>0)       {
                        $temp_copy_TSFE = clone($GLOBALS['TSFE']);      // make REAL copy of TSFE object - not reference!
                        $temp_copy_TSFE->id = $GLOBALS['TSFE']->page['content_from_pid'];       // Set ->id to the content_from_pid value - we are going to evaluate this pid as was it a given id for a page-display!
+                       $temp_copy_TSFE->MP = '';
                        $temp_copy_TSFE->getPageAndRootlineWithDomain($GLOBALS['TSFE']->config['config']['content_from_pid_allowOutsideDomain']?0:$GLOBALS['TSFE']->domainStartPage);
                        $GLOBALS['TSFE']->contentPid = intval($temp_copy_TSFE->id);
                        unset($temp_copy_TSFE);