/**
  * tx_dam::config_setValue()
  */
 public function test_config_setValue()
 {
     tx_dam::config_init();
     tx_dam::config_setValue('setup.indexing.auto', true);
     $value = tx_dam::config_getValue('setup.indexing.auto');
     self::assertEquals($value, true);
     tx_dam::config_setValue('setup.indexing.auto', false);
     $value = tx_dam::config_getValue('setup.indexing.auto');
     self::assertEquals($value, false);
 }
 /**
  * constructor
  *
  * @return	void
  */
 function tx_dam_selectionCategory()
 {
     global $LANG, $BACK_PATH;
     $this->title = $LANG->sL('LLL:EXT:dam/lib/locallang.xml:categories');
     $this->treeName = 'txdamCat';
     $this->domIdPrefix = $this->treeName;
     $this->table = 'tx_dam_cat';
     $this->parentField = $GLOBALS['TCA'][$this->table]['ctrl']['treeParentField'];
     $this->typeField = $GLOBALS['TCA'][$this->table]['ctrl']['type'];
     $this->iconName = 'cat.gif';
     $this->iconPath = PATH_txdam_rel . 'i/';
     $this->rootIcon = PATH_txdam_rel . 'i/catfolder.gif';
     $this->fieldArray = array('uid', 'pid', 'title', 'sys_language_uid');
     if ($this->parentField) {
         $this->fieldArray[] = $this->parentField;
     }
     if ($this->typeField) {
         $this->fieldArray[] = $this->typeField;
     }
     $this->defaultList = 'uid,pid,tstamp,sorting';
     $this->clause = tx_dam_db::enableFields($this->table, 'AND');
     $this->clause .= ' AND sys_language_uid IN (0,-1)';
     // default_sortby might be not set
     $defaultSortby = $GLOBALS['TCA'][$this->table]['ctrl']['default_sortby'] ? $GLOBALS['TYPO3_DB']->stripOrderBy($GLOBALS['TCA'][$this->table]['ctrl']['default_sortby']) : '';
     // sortby might be not set or unset
     $sortby = $GLOBALS['TCA'][$this->table]['ctrl']['sortby'] ? $GLOBALS['TCA'][$this->table]['ctrl']['sortby'] : '';
     // if we have default_sortby it shall win
     $this->orderByFields = $defaultSortby ? $defaultSortby : $sortby;
     // get the right sys_language_uid for the BE users language
     if (is_object($GLOBALS['BE_USER']) and t3lib_extMgm::isLoaded('static_info_tables')) {
         // Hooray - it's so simple to develop with TYPO3
         $lang = $GLOBALS['BE_USER']->user['lang'];
         $lang = $lang ? $lang : 'en';
         // TYPO3 specific: Array with the iso names used for each system language in TYPO3:
         // Missing keys means: same as Typo3
         $isoArray = array('ba' => 'bs', 'br' => 'pt_BR', 'ch' => 'zh_CN', 'cz' => 'cs', 'dk' => 'da', 'si' => 'sl', 'se' => 'sv', 'gl' => 'kl', 'gr' => 'el', 'hk' => 'zh_HK', 'kr' => 'ko', 'ua' => 'uk', 'jp' => 'ja', 'vn' => 'vi');
         $iso = $isoArray[$lang] ? $isoArray[$lang] : $lang;
         // Finding the ISO code:
         if ($rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('sys_language.uid', 'sys_language LEFT JOIN static_languages ON static_languages.uid=sys_language.static_lang_isocode', 'static_languages.lg_iso_2=' . $GLOBALS['TYPO3_DB']->fullQuoteStr(strtoupper($iso), 'static_languages') . tx_dam_db::enableFields('static_languages', 'AND') . tx_dam_db::enableFields('sys_language', 'AND'))) {
             $row = current($rows);
             $this->langOvlUid = intval($row['uid']);
         }
     }
     $this->TSconfig = tx_dam::config_getValue('setup.selections.' . $this->treeName, true);
 }
    /**
     *
     */
    function indexing_getProgessTable()
    {
        global $BE_USER, $LANG, $BACK_PATH, $TYPO3_CONF_VARS;
        // JavaScript
        $this->pObj->doc->JScode = $this->pObj->doc->wrapScriptTags('
			function progress_bar_update(intCurrentPercent) {
				document.getElementById("progress_bar_left").style.width = intCurrentPercent+"%";
				document.getElementById("progress_bar_left").innerHTML = intCurrentPercent+" %";

				document.getElementById("progress_bar_left").style.background = "#448e44";
				if(intCurrentPercent >= 100) {
					document.getElementById("progress_bar_right").style.background = "#448e44";
				}
			}


			function addTableRow(cells) {

				document.getElementById("progressTable").style.visibility = "visible";

				var tbody = document.getElementById("progressTable").getElementsByTagName("tbody")[0];
				var row = document.createElement("TR");

				row.style.backgroundColor = "#D9D5C9";

				for (var cellId in cells) {
					var tdCell = document.createElement("TD");
					tdCell.innerHTML = cells[cellId];
					row.appendChild(tdCell);
				}
				var header = document.getElementById("progressTableheader");
				var headerParent = header.parentNode;
				headerParent.insertBefore(row,header.nextSibling);

				// tbody.appendChild(row);
				// tbody.insertBefore(row,document.getElementById("progressTableheader"));
			}

			function setMessage(msg) {
				var messageCnt = document.getElementById("message");
				messageCnt.innerHTML = msg;
			}

			function finished() {
				progress_bar_update(100);
				document.getElementById("progress_bar_left").innerHTML = "' . $LANG->getLL('tx_dam_tools_indexupdate.finished', 1) . '";
				// document.getElementById("btn_back").style.visibility = "visible";
			}
		');
        if (tx_dam::config_getValue('setup.devel')) {
            $iframeSize = 'width="100%" height="300" border="1" scrolling="yes" frameborder="1"';
        } else {
            $iframeSize = 'width="0" height="0" border="0" scrolling="no" frameborder="0"';
        }
        $code = '';
        $code .= '
			<table width="300px" border="0" cellpadding="0" cellspacing="0" id="progress_bar" summary="progress_bar" align="center" style="border:1px solid #888">
			<tbody>
			<tr>
			<td id="progress_bar_left" width="0%" align="center" style="background:#eee; color:#fff">&nbsp;</td>
			<td id="progress_bar_right" style="background:#eee;">&nbsp;</td>
			</tr>
			</tbody>
			</table>

			<iframe src="' . htmlspecialchars(t3lib_div::linkThisScript($this->pObj->addParams)) . '" name="indexiframe" ' . $iframeSize . '>
			Error!
			</iframe>
			<br />
		';
        $code .= '
			 <div id="message"></div>
			 <table id="progressTable" style="visibility:hidden" cellpadding="1" cellspacing="1" border="0" width="100%">
			 <tr id="progressTableheader" bgcolor="' . $this->pObj->doc->bgColor5 . '">
				 <th></th>
				 <th>' . $LANG->sL('LLL:EXT:dam/locallang_db.xml:tx_dam_item.file_name', 1) . '</th>
				 <th>' . $LANG->sL('LLL:EXT:dam/locallang_db.xml:tx_dam_item.file_path', 1) . '</th>
			</tr>
			</table>
		';
        return $code;
    }
 /**
  * Initializes the action objects.
  *
  * @param	boolean		$checkForPossiblyValid If set invalid will be done with isPossiblyValid().
  * @param	boolean		$keepInvalid If set invalid actions will not removed
  * @return	void
  */
 function initObjects($checkForPossiblyValid = false, $keepInvalid = false)
 {
     $setupAllowDeny = tx_dam::config_getValue('mod.txdamM1_SHARED.actions', true);
     $setupAllowDeny = isset($setupAllowDeny[$this->type . '.']) ? $setupAllowDeny[$this->type . '.'] : $setupAllowDeny['shared.'];
     $setupAllowDenyShared = tx_dam_allowdeny_list::transformSimpleSetup($setupAllowDeny);
     list($modName, $modFuncName) = explode('.', $this->moduleName);
     $setupAllowDeny = tx_dam::config_getValue('mod.' . $modName . '.actions', true);
     $setupAllowDeny = isset($setupAllowDeny[$this->type . '.']) ? $setupAllowDeny[$this->type . '.'] : $setupAllowDeny['shared.'];
     $setupAllowDenyMod = tx_dam_allowdeny_list::transformSimpleSetup($setupAllowDeny);
     if ($modFuncName) {
         $setupAllowDeny = tx_dam::config_getValue('mod.' . $modName . '.modfunc.' . $modFuncName . '.actions', true);
         $setupAllowDeny = isset($setupAllowDeny[$this->type . '.']) ? $setupAllowDeny[$this->type . '.'] : $setupAllowDeny['shared.'];
         $setupAllowDenyModfunc = tx_dam_allowdeny_list::transformSimpleSetup($setupAllowDeny);
     }
     $allowDeny = new tx_dam_allowdeny_list(array_keys($this->classes), $setupAllowDenyModfunc, $setupAllowDenyMod, $setupAllowDenyShared);
     foreach ($this->classes as $idName => $classRef) {
         if ($allowDeny->isAllowed($idName) and $this->makeObject($idName)) {
             $this->objects[$idName]->setItemInfo($this->itemInfo);
             $this->objects[$idName]->setEnv($this->env);
             $this->objects[$idName]->getIdName();
             if ($checkForPossiblyValid) {
                 $valid = $this->objects[$idName]->isPossiblyValid($this->type);
             } else {
                 $valid = $this->objects[$idName]->isValid($this->type);
             }
             if (!$keepInvalid and !$valid) {
                 unset($this->objects[$idName]);
             }
         }
     }
 }
    /**
     * Call gui item functions and return the output
     *
     * @param	string		Type name: header, footer
     * @param	string		List of item function which should be called instead of the default defined
     * @return	string		Items output
     */
    function getOutput($type = 'footer', $itemList = '')
    {
        if (is_null($itemList)) {
            return;
        }
        if ($itemList) {
            $itemListArr = t3lib_div::trimExplode(',', $itemList, 1);
        } else {
            $type = 'items_' . $type;
            if (!is_array($this->{$type})) {
                return;
            }
            $itemListArr = array_keys($this->{$type});
        }
        $elementList =& $this->{$type};
        $out = '';
        foreach ($itemListArr as $item) {
            $content = $this->items_callFunc($elementList[$item]);
            $out .= '
				<!-- GUI element section: ' . htmlspecialchars($item) . ' -->
					' . $content . '
				<!-- GUI element section end -->';
        }
        if ($type === 'items_footer' and is_array($GLOBALS['SOBE']->debugContent) and tx_dam::config_getValue('setup.devel')) {
            $content = '<div class="itemsFooter">' . '<h4>GUI Elements</h4>' . t3lib_div::view_array($GLOBALS['SOBE']->develAvailableGuiItems) . '</div>';
            $content .= '<div class="itemsFooter">' . '<h4>Options</h4>' . t3lib_div::view_array($GLOBALS['SOBE']->develAvailableOptions) . '</div>';
            $content .= '<div class="itemsFooter">' . '<h4>Registered actions (all)</h4>' . t3lib_div::view_array(array_keys($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['dam']['actionClasses'])) . '</div>';
            $out .= $GLOBALS['SOBE']->buttonToggleDisplay('devel', 'Module Info', $content);
            $content = '<div class="itemsFooter">' . implode('', $GLOBALS['SOBE']->debugContent) . '</div>';
            $out .= $GLOBALS['SOBE']->buttonToggleDisplay('debug', 'Debug output', $content);
        }
        return $out;
    }
Ejemplo n.º 6
0
 /**
  * Process auto indexing for the given file.
  * This should be used to index files easily.
  * When auto indexing is disabled the indexing will not be processed.
  *
  * @param	string		$filename Filename with path
  * @param	boolean		$reindex If set already indexed files will be reindexed
  * @return	array		Meta data array. $meta['fields'] has the record data. Returns false when nothing was indexed but file might be in index already.
  */
 function index_autoProcess($filename, $reindex = false)
 {
     global $TYPO3_CONF_VARS;
     // disable auto indexing by setup
     if (!tx_dam::config_getValue('setup.indexing.auto')) {
         return false;
     }
     $filename = tx_dam::file_absolutePath($filename);
     if (!@is_file($filename)) {
         return false;
     }
     // we don't index indexing setup files
     if (basename($filename) == '.indexing.setup.xml') {
         return false;
     }
     if (!$reindex and tx_dam::file_isIndexed($filename)) {
         return false;
     }
     require_once PATH_txdam . 'lib/class.tx_dam_indexing.php';
     $index = t3lib_div::makeInstance('tx_dam_indexing');
     $index->init();
     $index->setDefaultSetup(tx_dam::file_dirname($filename));
     $index->initEnabledRules();
     $index->enableReindexing($reindex);
     // overrule some parameter from setup
     $index->setPath($filename);
     $index->setPID(tx_dam_db::getPid());
     $index->setRunType('auto');
     $index->enableMetaCollect();
     // indexing ...
     $index->indexUsingCurrentSetup();
     return current($index->meta);
 }
 /**
  * Checks if $this->path is a path under one of the filemounts
  *
  * @param string $path If set this path will be set as current
  * @return	void
  * @see init()
  * @todo check path access in modules or set path to a valid path?
  */
 function checkOrSetPath($path = '')
 {
     global $FILEMOUNTS;
     if ($path) {
         $this->path = $path;
     }
     if (!$this->path) {
         reset($FILEMOUNTS);
         $fmount = current($FILEMOUNTS);
         $path = $fmount['path'];
     } else {
         $path = tx_dam::path_makeAbsolute($this->path);
     }
     $pathInfo = tx_dam::path_compileInfo($path);
     if ($this->checkPathAccess($pathInfo)) {
         $this->path = $pathInfo['dir_path_relative'];
         $this->pathInfo = $pathInfo;
         $this->pathAccess = true;
     } else {
         $this->path = $path;
         $this->pathInfo = $pathInfo;
         $this->pathAccess = false;
     }
     $this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, array('tx_dam_folder' => $this->path), $this->MCONF['name'], 'ses');
     if (tx_dam::config_getValue('setup.devel')) {
         $this->debugContent['pathInfo'] = '<h4>pathInfo</h4>' . t3lib_div::view_array($this->pathInfo);
     }
 }
Ejemplo n.º 8
0
 /**
  * Returns a single pid of a DAM folder.
  * This pid have to be used for storage of DAM records.
  *
  * For fetching data getPidList() have to be used.
  *
  * @return	integer		Current/default DAM folder pid for storage.
  */
 function getPid()
 {
     global $TYPO3_CONF_VARS;
     static $pid = 0;
     if (!$pid and is_object($GLOBALS['TSFE'])) {
         // get pid from TS
         //
         //  plugin.tx_dam.defaults {
         //  // The pid of the media folder. Needs to be set when multiple media folders exist
         //  pid =
         $pid = intval(tx_dam::config_getValue('plugin.defaults.pid'));
         # $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_dam.']['defaults.']['pid']);
     }
     if (!$pid) {
         require_once PATH_txdam . 'lib/class.tx_dam_sysfolder.php';
         $pid = tx_dam_sysfolder::init();
     }
     return $pid;
 }
 /**
  * tx_dam::config_getValue()
  */
 public function test_config_getValue()
 {
     tx_dam::config_setValue('setup.indexing.auto', true);
     $value = tx_dam::config_getValue('setup.indexing', true);
     self::assertTrue($value['auto']);
 }
 /**
  * Executes the query from the db querygen array.
  *
  * @param	boolean		$count If set count query will be generated
  * @param	string		$select Overrule SELECT query part
  * @return	mixed		Query result pointer
  */
 function execQuery($count = false, $select = '')
 {
     $this->prepareSelectionQuery($count);
     $queryArr = $this->qg->getQueryParts();
     if ($select) {
         $queryArr['SELECT'] = $select;
     }
     $this->error = '';
     $this->res = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($queryArr);
     $this->error = $GLOBALS['TYPO3_DB']->sql_error();
     if ($count) {
         if ($this->res) {
             $numRows = $GLOBALS['TYPO3_DB']->sql_num_rows($this->res);
             if ($numRows > 1) {
                 $this->pointer->setTotalCount($numRows);
             } else {
                 list($countTotal) = $GLOBALS['TYPO3_DB']->sql_fetch_row($this->res);
                 $this->pointer->setTotalCount($countTotal);
             }
         } else {
             $this->pointer->setTotalCount(0);
         }
     }
     // collect debug information
     if (tx_dam::config_getValue('setup.devel')) {
         if ($this->error or !$count or $countTotal == 0) {
             if ($this->error) {
                 $this->SOBE->debugContent['queryArr'] = '<h4>ERROR</h4>' . $this->error;
             }
             $this->SOBE->debugContent['queryArr'] = '<h4>$queryArr</h4>' . t3lib_div::view_array($queryArr);
             $query = $GLOBALS['TYPO3_DB']->SELECTquery($queryArr['SELECT'], $queryArr['FROM'], $queryArr['WHERE'], $queryArr['GROUPBY'], $queryArr['ORDERBY'], $queryArr['LIMIT']);
             $this->SOBE->debugContent['query'] = '<h4>$query</h4>' . $query;
         }
         $this->SOBE->debugContent['Pointer'] = '<h4>Pointer</h4>' . t3lib_div::view_array($this->pointer->getDebugArray());
     }
     return $this->res;
 }
    /**
     *
     */
    function doIndexingCallback($type, $meta, $absFile, $fileArrKey, $pObj)
    {
        global $LANG, $TYPO3_CONF_VARS;
        // get session data
        $indexSession = $this->indexSessionFetch();
        // increase progress bar
        $indexSession['currentCount']++;
        if (is_array($meta) and is_array($meta['fields'])) {
            if (tx_dam::config_getValue('setup.devel')) {
                t3lib_div::print_array(array('file_name' => $meta['fields']['file_name'], 'indexExist' => $meta['indexExist'], 'reindexed' => $meta['reindexed'], 'isIndexed' => $meta['isIndexed']));
            }
            if ($meta['isIndexed']) {
                $failure = '';
                $openRecPopup = '';
                if ($meta['failure']) {
                    $failure .= '<br /><img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/icon_fatalerror.gif', 'width="18" height="16"') . ' class="absmiddle" alt="" />';
                    $failure .= ' ' . htmlspecialchars($meta['failure']);
                } else {
                    $openRecPopup = $GLOBALS['SOBE']->btn_editRec_inNewWindow('tx_dam', $meta['fields']['uid']);
                }
                $ctable = array();
                $ctable[] = $openRecPopup;
                $ctable[] = '<span style="white-space:nowrap;">' . tx_dam::icon_getFileTypeImgTag($meta['fields'], 'align="top"') . '&nbsp;' . htmlspecialchars(t3lib_div::fixed_lgd_cs($meta['fields']['file_name'], 23)) . '</span>' . $failure;
                $ctable[] = strtoupper($meta['fields']['file_type']);
                $ctable[] = '<span style="white-space:nowrap;">' . htmlspecialchars(str_replace("\n", ' ', t3lib_div::fixed_lgd_cs($meta['fields']['abstract'], 14))) . '</span>';
                $ctable[] = htmlspecialchars(t3lib_div::fixed_lgd_cs($meta['fields']['file_path'], -15));
                $this->indexing_addTableRow($ctable);
                $msg = $LANG->getLL('tx_damindex_index.indexed_message', 1);
                $code = sprintf($msg, $this->index->stat['totalCount'], max(1, ceil($this->index->stat['totalTime'] / 1000)));
                $this->indexing_setMessage($code);
            }
        }
        $this->indexing_progressBar($indexSession['currentCount'], $indexSession['totalFilesCount']);
        $this->indexing_flushNow();
        // one step further - save session data
        unset($indexSession['filesTodo'][$fileArrKey]);
        $indexSession['indexStat'] = $this->index->stat;
        $indexSession['infoList'] = $this->index->infoList;
        $this->indexSessionWrite($indexSession);
        if ($this->indexEndtime < time() and $indexSession['currentCount'] < $indexSession['totalFilesCount']) {
            $params = $this->pObj->addParams;
            $params['indexSessionID'] = $indexSession['ID'];
            echo '
				<script type="text/javascript">  window.location.href = unescape("' . t3lib_div::rawUrlEncodeJS(tx_dam_SCbase::linkThisScriptStraight($params)) . '"); </script>';
            exit;
        }
    }
 /**
  * Initializes.
  *
  * @return	void
  */
 function init()
 {
     global $TYPO3_CONF_VARS;
     // enable dev logging if set
     if ($TYPO3_CONF_VARS['SC_OPTIONS']['ext/dam/lib/class.tx_dam_indexing.php']['writeDevLog']) {
         $this->writeDevLog = TRUE;
     }
     if (TYPO3_DLOG) {
         $this->writeDevLog = TRUE;
     }
     if ($this->writeDevLog && !isset($TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['debugData']['pid'])) {
         $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['debugData']['pid'] = tx_dam_db::getPid();
     }
     if ($this->writeDevLog) {
         t3lib_div::devLog('## Beginning of dam indexing logging.', 'tx_dam_indexing');
     }
     $this->setup['useInternalMediaTypeList'] = tx_dam::config_checkValueEnabled('setup.indexing.useInternalMediaTypeList', true);
     $this->setup['useInternalMimeList'] = tx_dam::config_checkValueEnabled('setup.indexing.useInternalMimeList', true);
     $this->setup['useMimeContentType'] = tx_dam::config_checkValueEnabled('setup.indexing.useMimeContentType', true);
     $this->setup['useFileCommand'] = tx_dam::config_checkValueEnabled('setup.indexing.useFileCommand', true);
     $this->defaultSetup = tx_dam::config_getValue('tx_dam.indexing.defaultSetup');
     $this->skipFileTypes = t3lib_div::trimExplode(',', tx_dam::config_getValue('setup.indexing.skipFileTypes'), true);
     $this->ruleConf = array();
     $this->dataPreset = array();
     $this->dataPostset = array();
     $this->dataAppend = array();
     $this->stat = array();
     $this->indexRun = time();
     $this->clearCollectedMeta();
     $this->initAvailableRules();
 }
 /**
  * initialize the browsable trees
  *
  * @param	array		$TYPO3_CONF_VARS['EXTCONF']['dam']['selectionClasses']
  * @param	string		script name to link to
  * @param	boolean		Element browser mode
  * @return	void
  */
 function initSelectionClasses($selectionClassesArr, $thisScript, $mode = 'browse', $excludeReadOnlyMounts = false)
 {
     global $BE_USER, $LANG, $BACK_PATH, $TYPO3_CONF_VARS;
     $this->selectionClasses = $selectionClassesArr;
     // configuration - default
     $default_modeSelIcons = tx_dam::config_checkValueEnabled('setup.selections.default.modeSelIcons', true);
     if (is_array($this->selectionClasses)) {
         foreach ($this->selectionClasses as $classKey => $classRef) {
             // configuration - class
             if (!tx_dam::config_checkValueEnabled('setup.selections.' . $classKey, true)) {
                 continue;
             }
             $config = tx_dam::config_getValue('setup.selections.' . $classKey, true);
             if (is_object($obj =& t3lib_div::getUserObj($classRef))) {
                 if (!$obj->isPureSelectionClass) {
                     if ($obj->isTreeViewClass) {
                         // object is a treeview class itself
                         $this->treeObjArr[$classKey] = $obj;
                         $this->treeObjArr[$classKey]->init('', '', $excludeReadOnlyMounts);
                     } else {
                         // object does not include treeview functionality. Therefore the standard browsetree is used with setup from the object
                         $this->treeObjArr[$classKey] =& t3lib_div::makeInstance('tx_dam_browseTree');
                         $this->treeObjArr[$classKey]->init();
                         $this->treeObjArr[$classKey]->title = $obj->getTreeTitle();
                         $this->treeObjArr[$classKey]->treeName = $obj->getTreeName();
                         $this->treeObjArr[$classKey]->domIdPrefix = $obj->domIdPrefix ? $obj->domIdPrefix : $obj->getTreeName();
                         $this->treeObjArr[$classKey]->rootIcon = PATH_txdam_rel . 'i/cat2folder.gif';
                         $this->treeObjArr[$classKey]->iconName = tx_dam::file_basename($obj->getDefaultIcon());
                         $this->treeObjArr[$classKey]->iconPath = tx_dam::file_dirname($obj->getDefaultIcon());
                         // workaround: Only variables can be passed by reference
                         $this->treeObjArr[$classKey]->_data = $obj->getTreeArray();
                         $this->treeObjArr[$classKey]->setDataFromArray($this->treeObjArr[$classKey]->_data);
                     }
                     $this->treeObjArr[$classKey]->thisScript = $thisScript;
                     $this->treeObjArr[$classKey]->BE_USER = $BE_USER;
                     $this->treeObjArr[$classKey]->mode = $mode;
                     $this->treeObjArr[$classKey]->ext_IconMode = '1';
                     // no context menu on icons
                     if (!$default_modeSelIcons or !tx_dam::config_isEnabledOption($config, 'modeSelIcons', true)) {
                         $this->treeObjArr[$classKey]->modeSelIcons = false;
                     }
                 }
                 if ($this->treeObjArr[$classKey]->supportMounts) {
                     $mounts = $this->getMountsForTreeClass($classKey, $this->treeObjArr[$classKey]->getTreeName());
                     if (count($mounts)) {
                         $this->treeObjArr[$classKey]->setMounts($mounts);
                     } else {
                         unset($this->treeObjArr[$classKey]);
                     }
                 }
             }
         }
     }
 }
 /**
  * Rendering
  * Called in SC_browse_links::main() when isValid() returns true;
  *
  * @param	string		$type Type: "file", ...
  * @param	object		$pObj Parent object.
  * @return	string		Rendered content
  * @see SC_browse_links::main()
  */
 function render($type, &$pObj)
 {
     global $LANG, $BE_USER;
     $this->pObj =& $pObj;
     $pObj->browser =& $this;
     $this->renderInit();
     $content = '';
     $debug = false;
     switch ((string) $type) {
         case 'rte':
             $content = $this->main_rte();
             break;
         case 'db':
         case 'file':
             $content = $this->main();
             break;
         default:
             $content .= '<h3>ERROR</h3>';
             $content .= '<h3>Unknown or missing mode!</h3>';
             $debug = true;
             break;
     }
     // debug output
     if ($debug or tx_dam::config_getValue('setup.devel')) {
         $bparams = explode('|', $this->bparams);
         $debugArr = array('act' => $this->act, 'mode' => $this->mode, 'thisScript' => $this->thisScript, 'bparams' => $bparams, 'allowedTables' => $this->allowedTables, 'allowedFileTypes' => $this->allowedFileTypes, 'disallowedFileTypes' => $this->disallowedFileTypes, 'addParams' => $this->addParams, 'pointer' => $this->damSC->selection->pointer->page, 'SLCMD' => t3lib_div::_GPmerged('SLCMD'), 'Selection' => $this->damSC->selection->sl->sel, 'Query' => $this->damSC->selection->qg->query, 'QueryArray' => $this->damSC->selection->qg->getQueryParts(), 'PM' => t3lib_div::_GPmerged('PM'));
         $this->damSC->debugContent['browse_links'] = '<h4>EB SETTINGS</h4>' . t3lib_div::view_array($debugArr);
         $dbgContent = '<div class="debugContent">' . implode('', $this->damSC->debugContent) . '</div>';
         $content .= $this->damSC->buttonToggleDisplay('debug', 'Debug output', $dbgContent);
     }
     return $content;
 }