Project

General

Profile

Bug #20509 » 11194_sliced_rootline.diff

Administrator Admin, 2009-07-02 22:00

View differences:

class.tslib_fe.php (Arbeitskopie)
*/
function checkRootlineForIncludeSection() {
$c=count($this->rootLine);
$removeTheRestFlag=0;
$remove=0; $sliced=0;
for ($a=0;$a<$c;$a++) {
if (!$this->checkPagerecordForIncludeSection($this->rootLine[$a])) {
// Add to page access failure history:
$this->pageAccessFailureHistory['sub_section'][] = $this->rootLine[$a];
$removeTheRestFlag=1;
$remove=1;
}
if ($this->rootLine[$a]['doktype']==6) {
if ($this->beUserLogin) { // If there is a backend user logged in, check if he has read access to the page:
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', 'pages', 'uid='.intval($this->id).' AND '.$GLOBALS['BE_USER']->getPagePermsClause(1)); // versionOL()?
list($isPage) = $GLOBALS['TYPO3_DB']->sql_fetch_row($res);
if (!$isPage) $removeTheRestFlag=1; // If there was no page selected, the user apparently did not have read access to the current PAGE (not position in rootline) and we set the remove-flag...
if (!$isPage) $remove=1; // If there was no page selected, the user apparently did not have read access to the current PAGE (not position in rootline) and we set the remove-flag...
} else { // Dont go here, if there is no backend user logged in.
$removeTheRestFlag=1;
$remove=1;
}
}
if ($removeTheRestFlag) {
if ($remove) {
$remove=0; $sliced=1;
$this->pageNotFound=2; // Page is 'not found' in case a subsection was found and not accessible, code 2
unset($this->rootLine[$a]);
}
}
return $removeTheRestFlag;
return $remove||$sliced;
}
/**
(1-1/2)