Bug #16472 ยป class.tslib_fe.php.1.diff
typo3/sysext/cms/tslib/class.tslib_fe.php (working copy) | ||
---|---|---|
* @return void
|
||
* @access private
|
||
*/
|
||
function getPageAndRootline() {
|
||
function getPageAndRootline($itera=20) {
|
||
$this->page = $this->sys_page->getPage($this->id);
|
||
if (!count($this->page)) {
|
||
// If no page, we try to find the page before in the rootLine.
|
||
... | ... | |
}
|
||
}
|
||
$this->pageNotFound=0;
|
||
// Is the ID a link to another page??
|
||
if ($this->page['doktype']==4) {
|
||
$this->MP = ''; // We need to clear MP if the page is a shortcut. Reason is if the short cut goes to another page, then we LEAVE the rootline which the MP expects.
|
||
... | ... | |
exit;
|
||
}
|
||
} else {
|
||
$el = reset($this->rootLine);
|
||
$this->id = $el['uid'];
|
||
$this->page = $this->sys_page->getPage($this->id);
|
||
$this->rootLine = $this->sys_page->getRootLine($this->id,$this->MP);
|
||
if ($itera>0) {
|
||
$this->pageNotFound=0;
|
||
$el = reset($this->rootLine);
|
||
$this->id = $el['uid'];
|
||
$this->getPageAndRootline($itera-1);
|
||
} else {
|
||
$message = 'The requested page was not accessible due to much shortcut loopings into non accessible pages!';
|
||
header('HTTP/1.0 403 No Access');
|
||
t3lib_div::sysLog($message, 'cms', t3lib_div::SYSLOG_SEVERITY_ERROR);
|
||
$this->printError($message);
|
||
exit;
|
||
}
|
||
}
|
||
}
|
||
}
|