00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00052 require_once (PATH_t3lib.'class.t3lib_treeview.php');
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00074 class t3lib_browseTree extends t3lib_treeView {
00075
00083 function init($clause='') {
00084
00085
00086 $clauseExludePidList = '';
00087 if ($pidList = $GLOBALS['BE_USER']->getTSConfigVal('options.hideRecords.pages')) {
00088 if ($pidList = $GLOBALS['TYPO3_DB']->cleanIntList($pidList)) {
00089 $clauseExludePidList = ' AND pages.uid NOT IN ('.$pidList.')';
00090 }
00091 }
00092
00093
00094 parent::init(' AND '.$GLOBALS['BE_USER']->getPagePermsClause(1).' '.$clause.$clauseExludePidList, 'sorting');
00095
00096 $this->table = 'pages';
00097 $this->setTreeName('browsePages');
00098 $this->domIdPrefix = 'pages';
00099 $this->iconName = '';
00100 $this->title = $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'];
00101 $this->MOUNTS = $GLOBALS['WEBMOUNTS'];
00102
00103 if ($pidList) {
00104
00105 $hideList = explode(',',$pidList);
00106 $this->MOUNTS = array_diff($this->MOUNTS,$hideList);
00107 }
00108
00109 $this->fieldArray = array_merge($this->fieldArray,array('doktype','php_tree_stop','t3ver_id','t3ver_state','t3ver_wsid','t3ver_swapmode'));
00110 if (t3lib_extMgm::isLoaded('cms')) {
00111 $this->fieldArray = array_merge($this->fieldArray,array('hidden','starttime','endtime','fe_group','module','extendToSubpages', 'is_siteroot'));
00112 }
00113 }
00114
00122 function getTitleAttrib($row) {
00123 return t3lib_BEfunc::titleAttribForPages($row,'1=1 '.$this->clause,0);
00124 }
00125
00134 function wrapIcon($icon,$row) {
00135
00136 $theIcon = $this->addTagAttributes($icon,($this->titleAttrib ? $this->titleAttrib.'="'.$this->getTitleAttrib($row).'"' : ''));
00137
00138
00139 if (!$this->ext_IconMode) {
00140 $theIcon = $GLOBALS['TBE_TEMPLATE']->wrapClickMenuOnIcon($theIcon,$this->treeName,$this->getId($row),0);
00141 } elseif (!strcmp($this->ext_IconMode,'titlelink')) {
00142 $aOnClick = 'return jumpTo(\''.$this->getJumpToParam($row).'\',this,\''.$this->domIdPrefix.$this->getId($row).'\','.$this->bank.');';
00143 $theIcon='<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.$theIcon.'</a>';
00144 }
00145 return $theIcon;
00146 }
00147
00156 function getTitleStr($row,$titleLen=30) {
00157 $title = (!strcmp(trim($row['title']),'')) ? '<em>['.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.no_title',1).']</em>' : htmlspecialchars(t3lib_div::fixed_lgd_cs($row['title'],$titleLen));
00158 if (isset($row['is_siteroot']) && $row['is_siteroot'] != 0 && $GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.showDomainNameWithTitle')) {
00159 $rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('domainName,sorting', 'sys_domain',
00160 'pid=' . $GLOBALS['TYPO3_DB']->quoteStr($row['uid'], 'sys_domain'), '', 'sorting', 1);
00161 if (is_array($rows) && count($rows) > 0) {
00162 $title = sprintf('%s [%s]', $title, $rows[0]['domainName']);
00163 }
00164 }
00165 return $title;
00166 }
00167 }
00168
00169 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_browsetree.php']) {
00170 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_browsetree.php']);
00171 }
00172 ?>