/***************************************************************
* Copyright notice
*
-* (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
+* (c) 1999-2009 Kasper Skaarhoj (kasperYYYY@typo3.com)
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* $Id$
* Revised for TYPO3 3.6 November/2003 by Kasper Skaarhoj
*
- * @author Kasper Skaarhoj <kasper@typo3.com>
+ * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @coauthor René Fritz <r.fritz@colorcube.de>
*/
/**
*
* 74: class t3lib_browseTree extends t3lib_treeView
* 83: function init($clause='')
- * 106: function getTitleAttrib($row)
- * 118: function wrapIcon($icon,$row)
+ * 116: function getTitleAttrib($row)
+ * 128: function wrapIcon($icon,$row)
+ * 150: function getTitleStr($row,$titleLen=30)
*
- * TOTAL FUNCTIONS: 3
+ * TOTAL FUNCTIONS: 4
* (This index is automatically created/updated by the extension "extdeveval")
*
*/
-require_once (PATH_t3lib.'class.t3lib_treeview.php');
-
/**
* Extension class for the t3lib_treeView class, specially made for browsing pages
*
- * @author Kasper Skaarhoj <kasper@typo3.com>
+ * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @coauthor René Fritz <r.fritz@colorcube.de>
* @see t3lib_treeView, t3lib_pageTree
* @package TYPO3
* @return void
*/
function init($clause='') {
+
+ // this will hide records from display - it has nothing todo with user rights!!
+ $clauseExludePidList = '';
+ if ($pidList = $GLOBALS['BE_USER']->getTSConfigVal('options.hideRecords.pages')) {
+ if ($pidList = $GLOBALS['TYPO3_DB']->cleanIntList($pidList)) {
+ $clauseExludePidList = ' AND pages.uid NOT IN ('.$pidList.')';
+ }
+ }
+
// This is very important for making trees of pages: Filtering out deleted pages, pages with no access to and sorting them correctly:
- parent::init(' AND '.$GLOBALS['BE_USER']->getPagePermsClause(1).' '.$clause, 'sorting');
+ parent::init(' AND '.$GLOBALS['BE_USER']->getPagePermsClause(1).' '.$clause.$clauseExludePidList, 'sorting');
- $this->table='pages';
- $this->treeName='browsePages';
+ $this->table = 'pages';
+ $this->setTreeName('browsePages');
$this->domIdPrefix = 'pages';
$this->iconName = '';
$this->title = $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'];
$this->MOUNTS = $GLOBALS['WEBMOUNTS'];
+ if ($pidList) {
+ // Remove mountpoint if explicitely set in options.hideRecords.pages (see above)
+ $hideList = explode(',',$pidList);
+ $this->MOUNTS = array_diff($this->MOUNTS,$hideList);
+ }
+
+ $this->fieldArray = array_merge($this->fieldArray,array('doktype','php_tree_stop','t3ver_id','t3ver_state','t3ver_wsid','t3ver_swapmode','t3ver_state','t3ver_move_id'));
if (t3lib_extMgm::isLoaded('cms')) {
- $this->fieldArray=array_merge($this->fieldArray,array('doktype','php_tree_stop','hidden','starttime','endtime','fe_group','module','extendToSubpages'));
+ $this->fieldArray = array_merge(
+ $this->fieldArray,
+ array('hidden', 'starttime', 'endtime', 'fe_group', 'module', 'extendToSubpages', 'is_siteroot', 'nav_hide')
+ );
}
}
if (!$this->ext_IconMode) {
$theIcon = $GLOBALS['TBE_TEMPLATE']->wrapClickMenuOnIcon($theIcon,$this->treeName,$this->getId($row),0);
} elseif (!strcmp($this->ext_IconMode,'titlelink')) {
- $aOnClick = 'return jumpTo('.$this->getJumpToParm($row).',this,\''.$this->domIdPrefix.$this->getId($row).'_'.$this->bank.'\');';
+ $aOnClick = 'return jumpTo(\''.$this->getJumpToParam($row).'\',this,\''.$this->domIdPrefix.$this->getId($row).'\','.$this->bank.');';
$theIcon='<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.$theIcon.'</a>';
}
return $theIcon;
}
+
+ /**
+ * Returns the title for the input record. If blank, a "no title" label (localized) will be returned.
+ * Do NOT htmlspecialchar the string from this function - has already been done.
+ *
+ * @param array The input row array (where the key "title" is used for the title)
+ * @param integer Title length (30)
+ * @return string The title.
+ */
+ function getTitleStr($row,$titleLen=30) {
+ // get the basic title from the parent implementation in t3lib_treeview
+ $title = parent::getTitleStr($row,$titleLen);
+ if (isset($row['is_siteroot']) && $row['is_siteroot'] != 0 && $GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.showDomainNameWithTitle')) {
+ $rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('domainName,sorting', 'sys_domain',
+ 'pid=' . $GLOBALS['TYPO3_DB']->quoteStr($row['uid'], 'sys_domain'), '', 'sorting', 1);
+ if (is_array($rows) && count($rows) > 0) {
+ $title = sprintf('%s [%s]', $title, $rows[0]['domainName']);
+ }
+ }
+ return $title;
+ }
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_browsetree.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_browsetree.php']);
}
-?>
+
+?>
\ No newline at end of file