/**
     * Returns rendered previewer
     * used player:
     * http://aktuell.de.selfhtml.org/artikel/grafik/flashmusik/
     * http://loudblog.de/index.php?s=download
     *
     * @param	array		$row Meta data array
     * @param	integer		$size The maximum size of the previewer
     * @param	string		$type The wanted previewer type
     * @param	array		$conf Additional configuration values. Might be empty.
     * @return	array		True if this is the right previewer for the file
     */
    function render($row, $size, $type, $conf = array())
    {
        $outArr = array('htmlCode' => '', 'headerCode' => '');
        $absFile = tx_dam::file_absolutePath($row['file_path'] . $row['file_name']);
        $siteUrl = t3lib_div::getIndpEnv('TYPO3_SITE_URL');
        $fileRelPath = tx_dam::file_relativeSitePath($row['file_path'] . $row['file_name']);
        $playerRelPath = str_replace(PATH_site, '', PATH_txdam);
        #$size = 'width="200" height="55"';
        #$playerRelPath .= 'res/emff_lila.swf';
        $size = 'width="120" height="37"';
        $playerRelPath .= 'res/emff_inx.swf';
        $outArr['htmlCode'] = '<div class="previewMP3">
			<object type="application/x-shockwave-flash" data="' . htmlspecialchars($siteUrl . $playerRelPath) . '?streaming=yes&src=' . htmlspecialchars($siteUrl . t3lib_div::rawUrlEncodeFP($fileRelPath)) . '" ' . $size . '>
			<param name="movie" value="' . htmlspecialchars($siteUrl . $playerRelPath) . '?streaming=yes&src=' . htmlspecialchars($siteUrl . t3lib_div::rawUrlEncodeFP($fileRelPath)) . '" />
			<param name="quality" value="high" />
			</object>
			</div>';
        return $outArr;
    }
 /**
  * Fetches the meta data from the index by a given file path or file info array.
  * This function tries to find an index entry for a file from uploads/. Files in uploads/ are copies from files from fileadmin/ or direct uploads.
  * The meta data that might be found is not directly meant for the uploads-file but normally it matches the file and you get what you expect.
  * But for example the file might be placed in fileadmin/ twice with different meta data. Then you can't say which meta data you will get for the uploads-file.
  *
  * IMPORTANT
  * The meta data does NOT include data of the uploads file itself but a matching file which is placed in fileadmin/!
  *
  * @param	mixed		$fileInfo Is a file path or an array containing a file info from tx_dam::file_compileInfo().
  * @param 	string 		$uploadsPath Uploads path. will be prepended if $fileInfo is a path (string).
  * @param	string		$fields A list of fields to be fetched. Default is a list of fields generated by tx_dam_db::getMetaInfoFieldList().
  * @param	string		$mode TYPO3_MODE to be used: 'FE', 'BE'. Constant TYPO3_MODE is default.
  * @return	array
  */
 function meta_findDataForUploadsFile($fileInfo, $uploadsPath = '', $fields = '', $mode = TYPO3_MODE)
 {
     $meta = false;
     if (!is_array($fileInfo)) {
         $uploadsPath = tx_dam::path_makeClean($uploadsPath);
         $fileInfo = tx_dam::file_compileInfo($uploadsPath . $fileInfo);
     }
     if (is_array($fileInfo) and $fileInfo['__exists']) {
         $fields = $fields ? $fields : tx_dam_db::getMetaInfoFieldList();
         $where = array();
         $where['enableFields'] = tx_dam_db::enableFields('tx_dam', '', $mode);
         $fileList = tx_dam::file_relativeSitePath($fileInfo);
         if ($rows = tx_dam_db::getMetaForUploads($fileList, '', $fields)) {
             reset($rows);
             $meta = current($rows);
         }
     }
     return $meta;
 }
 /**
  * Returns a command array for the current type
  *
  * @return	array		Command array
  * @access private
  */
 function _getCommand()
 {
     $href = tx_dam::file_relativeSitePath($this->itemInfo['file_path_absolute'] . $this->itemInfo['file_name']);
     $onClick = "top.openUrlInWindow('" . t3lib_div::getIndpEnv('TYPO3_SITE_URL') . $href . "','WebFile');";
     if ($this->type === 'context') {
         $commands['onclick'] = $onClick . ' return hideCM();';
     } else {
         $commands['onclick'] = 'return ' . $onClick;
     }
     return $commands;
 }
 /**
  * tx_dam::file_relativeSitePath()
  */
 public function test_file_relativeSitePath()
 {
     $GLOBALS['T3_VAR']['ext']['dam']['pathInfoCache'] = array();
     $filepath = $this->getFixtureFilename();
     $filename = tx_dam::file_basename($filepath);
     $testpath = tx_dam::file_dirname($filepath);
     $relPath = t3lib_extmgm::siteRelPath('dam') . 'tests/fixtures/' . $filename;
     $path = tx_dam::path_makeClean($testpath);
     $path = tx_dam::path_makeRelative($path);
     $path = tx_dam::file_relativeSitePath($path . $filename);
     self::assertEquals($path, $relPath, 'File path differs: ' . $path . ' (' . $relPath . ')');
     $filepath = $this->getFixtureFilename();
     $fileinfo = tx_dam::file_compileInfo($filepath, $ignoreExistence = false);
     $path = tx_dam::file_relativeSitePath($fileinfo);
     self::assertEquals($path, $relPath, 'File path differs: ' . $path . ' (' . $relPath . ')');
 }
 /**
  * Creates a list of uploaded files
  *
  * @param	array		$log: ...
  * @return	string		HTML content
  */
 function getUploadedFileList($files)
 {
     global $BACK_PATH, $LANG;
     $content = '';
     // init table layout
     $tableLayout = array('table' => array('<table border="0" cellpadding="1" cellspacing="1" id="typo3-filelist">', '</table>'), 'defRow' => array('tr' => array('<tr>', '</tr>'), 'defCol' => array('<td valign="middle" class="bgColor4">', '</td>'), '990' => array('<td valign="middle" class="bgColor4">', '</td>'), '996' => array('<td valign="middle" class="bgColor5">', '</td>')), '0' => array('tr' => array('<tr class="c-headLine">', '</tr>'), 'defCol' => array('<td valign="middle" class="c-headLine">', '</td>'), '2' => array('<td valign="middle" class="c-headLine" style="width:165px;">', '</td>')));
     $table = array();
     $tr = 0;
     // header
     $td = 0;
     $table[$tr][$td++] = '&nbsp;';
     $table[$tr][$td++] = '&nbsp;';
     $table[$tr][$td++] = $LANG->getLL('c_file');
     $table[$tr][$td++] = $LANG->getLL('c_fileext');
     $table[$tr][$td++] = $LANG->getLL('c_tstamp');
     $table[$tr][$td++] = $LANG->getLL('c_size');
     # $table[$tr][$td++] = $LANG->getLL('c_rw');
     $table[$tr][$td++] = '&nbsp;';
     if (is_object($this->ebObj) && !$this->rteMode) {
         $table[$tr][$td++] = '&nbsp;';
     }
     $addAllJS = '';
     foreach ($files as $item) {
         $tr++;
         $row = $item['meta'];
         $fileIcon = tx_dam::icon_getFileTypeImgTag($row, 'title="' . htmlspecialchars($row['file_type']) . '"');
         // Add row to table
         $td = 0;
         if ($row['uid']) {
             #$table[$tr][$td++] = $this->pObj->doc->icons(-1); // Ok;
             $table[$tr][$td++] = $this->enableBatchProcessing ? '<input type="checkbox" name="process_recs[]" value="' . $row['uid'] . '" />' : '';
             $table[$tr][$td++] = $fileIcon;
             // if upload is called from RTE, allow direct linking by a click on file name
             if ($this->rteMode && is_object($this->ebObj)) {
                 $row = $this->ebObj->enhanceItemArray($row, $this->ebObj->mode);
                 $onClick = 'return link_folder(' . t3lib_div::quoteJSvalue(t3lib_div::rawUrlEncodeFP(tx_dam::file_relativeSitePath($row['_ref_file_path']))) . ');';
                 $ATag_insert = '<a href="#" onclick="' . htmlspecialchars($onClick) . '"' . $titleAttrib . '>';
                 $table[$tr][$td++] = $ATag_insert . htmlspecialchars(t3lib_div::fixed_lgd_cs($row['file_name'], 30)) . '</a>';
             } else {
                 $table[$tr][$td++] = htmlspecialchars(t3lib_div::fixed_lgd_cs($row['file_name'], 30));
             }
             $table[$tr][$td++] = htmlspecialchars(strtoupper($row['file_type']));
             $table[$tr][$td++] = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'], $row['file_ctime']);
             $table[$tr][$td++] = htmlspecialchars(t3lib_div::formatSize($row['file_size']));
             $table[$tr][$td++] = $this->pObj->btn_editRec_inNewWindow('tx_dam', $item['uid']);
             if (is_object($this->ebObj)) {
                 if (intval($row['uid']) && !$this->rteMode) {
                     $row = $this->ebObj->enhanceItemArray($row, $this->ebObj->mode);
                     $iconFile = tx_dam::icon_getFileType($row);
                     $titleAttrib = tx_dam_guiFunc::icon_getTitleAttribute($row);
                     // JS: insertElement(table, uid, type, filename, fpath, filetype, imagefile ,action, close)
                     $onClick_params = implode(', ', array("'" . $row['_ref_table'] . "'", "'" . $row['_ref_id'] . "'", "'" . $this->ebObj->mode . "'", t3lib_div::quoteJSvalue($row['file_name']), t3lib_div::quoteJSvalue($row['_ref_file_path']), "'" . $row['file_type'] . "'", "'" . $iconFile . "'"));
                     $onClick = 'return insertElement(' . $onClick_params . ');';
                     $ATag_add = '<a href="#" onclick="' . htmlspecialchars($onClick) . '"' . $titleAttrib . '>';
                     $onClick = 'return insertElement(' . $onClick_params . ', \'\', 1);';
                     $ATag_insert = '<a href="#" onclick="' . htmlspecialchars($onClick) . '"' . $titleAttrib . '>';
                     $addAllJS .= 'insertElement(' . $onClick_params . '); ';
                     $table[$tr][$td++] = $ATag_add . '<img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/plusbullet2.gif', 'width="18" height="16"') . ' title="' . $LANG->getLL('addToList', 1) . '" alt="" /></a>';
                 } elseif ($this->rteMode) {
                     continue;
                 } else {
                     $table[$tr][$td++] = '';
                 }
             }
         } else {
             // failure
             $table[$tr][$td++] = $this->pObj->doc->icons(2);
             // warning
             $table[$tr][$td++] = $fileIcon;
             $table[$tr][$td++] = htmlspecialchars(t3lib_div::fixed_lgd_cs($row['file_name'], 30));
             $table[$tr][$td++] = htmlspecialchars(strtoupper($row['file_type']));
             $table[$tr][$td++] = '';
             $table[$tr][$td++] = '';
             $table[$tr][$td++] = htmlspecialchars($this->getErrorMsgFromItem($item));
         }
     }
     // render table
     if ($tr) {
         $code = '';
         // folder_link expects a form named ltargetform to look for link settings, so we need this if it's called from RTE
         if ($this->rteMode) {
             $code .= '<form action="" name="ltargetform" id="ltargetform"></form>';
         }
         $code .= $this->pObj->doc->table($table, $tableLayout);
         if ($addAllJS) {
             $label = $LANG->getLL('eb_addAllToList', true);
             $titleAttrib = ' title="' . $label . '"';
             $onClick = $addAllJS . 'return true;';
             $ATag_add = '<a href="#" onclick="' . htmlspecialchars($onClick) . '"' . $titleAttrib . '>';
             $addIcon = $ATag_add . '<img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/plusbullet2.gif', 'width="18" height="16"') . ' alt="" />';
             $addAllButton = '<div style="margin:1em 0 1em 1em;"><span class="button"' . $titleAttrib . '>' . $ATag_add . $addIcon . $label . '</a></span></div>';
             $code = $code . $addAllButton;
         }
     } else {
         $code = false;
     }
     return $code;
 }
 /**
  * Returns a file path relative to PATH_site or getIndpEnv('TYPO3_SITE_URL').
  *
  * @return	string		Relative path to file
  */
 function getPathForSite()
 {
     /*
      * A secure download framework is in preparation which will be used here
      */
     $file_path = tx_dam::file_relativeSitePath($this->getPathAbsolute());
     return $file_path;
 }
    /**
     * Render list of files.
     *
     * @param	array		List of files. See t3lib_div::getFilesInDir
     * @param	string		$mode EB mode: "db", "file", ...
     * @return	string		HTML output
     */
    function renderFileList($files, $mode = 'file', $act = '')
    {
        global $LANG, $BACK_PATH, $TCA, $TYPO3_CONF_VARS;
        $out = '';
        // sorting selector
        // TODO move to scbase (see tx_dam_list_thumbs too)
        $allFields = tx_dam_db::getFieldListForUser('tx_dam');
        if (is_array($allFields) && count($allFields)) {
            $fieldsSelItems = array();
            foreach ($allFields as $field => $title) {
                $fL = is_array($TCA['tx_dam']['columns'][$field]) ? preg_replace('#:$#', '', $GLOBALS['LANG']->sL($TCA['tx_dam']['columns'][$field]['label'])) : '[' . $field . ']';
                $fieldsSelItems[$field] = t3lib_div::fixed_lgd_cs($fL, 15);
            }
            $sortingSelector = '<label>' . $GLOBALS['LANG']->sL('LLL:EXT:dam/lib/locallang.xml:labelSorting', 1) . '</label> ';
            $sortingSelector .= t3lib_befunc::getFuncMenu($this->addParams, 'SET[txdam_sortField]', $this->damSC->MOD_SETTINGS['txdam_sortField'], $fieldsSelItems);
            if ($this->damSC->MOD_SETTINGS['txdam_sortRev']) {
                $params = (array) $this->addParams + array('SET[txdam_sortRev]' => '0');
                $href = t3lib_div::linkThisScript($params);
                $sortingSelector .= '<button name="SET[txdam_sortRev]" type="button" onclick="self.location.href=\'' . htmlspecialchars($href) . '\'">' . '<img' . t3lib_iconWorks::skinImg($BACK_PATH, 'gfx/pil2up.gif', 'width="12" height="7"') . ' alt="" />' . '</button>';
            } else {
                $params = (array) $this->addParams + array('SET[txdam_sortRev]' => '1');
                $href = t3lib_div::linkThisScript($params);
                $sortingSelector .= '<button name="SET[txdam_sortRev]" type="button" onclick="self.location.href=\'' . htmlspecialchars($href) . '\'">' . '<img' . t3lib_iconWorks::skinImg($BACK_PATH, 'gfx/pil2down.gif', 'width="12" height="7"') . ' alt="" />' . '</button>';
            }
            $sortingSelector = $this->getFormTag('', 'sortingSelector') . $sortingSelector . '</form>';
        }
        $out .= '<div id="medialistfunctions">';
        $out .= $this->getSelectionSelector();
        $out .= $this->getFormTag();
        $out .= $this->damSC->getSearchBox('simple', false, '', true);
        $out .= '</form>';
        $out .= $sortingSelector;
        $out .= '</div>';
        $out .= $this->doc->spacer(10);
        $out .= $this->damSC->getResultInfoBar();
        $out .= $this->doc->spacer(10);
        // Listing the files:
        if (is_array($files) and count($files)) {
            $displayThumbs = $this->displayThumbs();
            $dragdropImage = $mode == 'rte' && ($act == 'dragdrop' || $act == 'media_dragdrop');
            $addAllJS = '';
            $displayItems = '';
            if ($mode == 'rte' && $act == 'media') {
                if (t3lib_div::inList($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rtehtmlarea']['plugins']['TYPO3Link']['additionalAttributes'], 'usedamcolumn') && $this->thisConfig['buttons.']['link.'][$act . '.']['properties.']['title.']['useDAMColumn']) {
                    $displayItems = $this->thisConfig['buttons.']['link.'][$act . '.']['properties.']['title.']['useDAMColumn.']['displayItems'] ? $this->thisConfig['buttons.']['link.'][$act . '.']['properties.']['title.']['useDAMColumn.']['displayItems'] : '';
                }
            }
            // Traverse the file list:
            $lines = array();
            foreach ($files as $fI) {
                if (!$fI['__exists']) {
                    tx_dam::meta_updateStatus($fI);
                    continue;
                }
                // Create file icon:
                $iconFile = tx_dam::icon_getFileType($fI);
                $iconTag = tx_dam_guiFunc::icon_getFileTypeImgTag($fI);
                $iconAndFilename = $iconTag . htmlspecialchars(t3lib_div::fixed_lgd_cs($fI['file_title'], max($GLOBALS['BE_USER']->uc['titleLen'], 120)));
                // Create links for adding the file:
                if (strstr($fI['file_name_absolute'], ',') || strstr($fI['file_name_absolute'], '|')) {
                    // In case an invalid character is in the filepath, display error message:
                    $eMsg = $LANG->JScharCode(sprintf($LANG->getLL('invalidChar'), ', |'));
                    $ATag_insert = '<a href="#" onclick="alert(' . $eMsg . ');return false;">';
                    // If filename is OK, just add it:
                } else {
                    // JS: insertElement(table, uid, type, filename, fpath, filetype, imagefile ,action, close)
                    $onClick_params = implode(', ', array("'" . $fI['_ref_table'] . "'", "'" . $fI['_ref_id'] . "'", "'" . $mode . "'", t3lib_div::quoteJSvalue($fI['file_name']), t3lib_div::quoteJSvalue($fI['_ref_file_path']), "'" . $fI['file_type'] . "'", "'" . $iconFile . "'"));
                    $titleAttrib = tx_dam_guiFunc::icon_getTitleAttribute($fI);
                    if ($mode === 'rte' and $act === 'media') {
                        $onClick = 'return link_folder(\'' . t3lib_div::rawUrlEncodeFP(tx_dam::file_relativeSitePath($fI['_ref_file_path'])) . '\');';
                        if (t3lib_div::inList($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rtehtmlarea']['plugins']['TYPO3Link']['additionalAttributes'], 'txdam')) {
                            $onClick = 'browse_links_setAdditionalValue(\'txdam\', \'' . $fI['uid'] . '\');' . $onClick;
                        }
                        if (t3lib_div::inList($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rtehtmlarea']['plugins']['TYPO3Link']['additionalAttributes'], 'usedamcolumn') && $this->thisConfig['buttons.']['link.'][$act . '.']['properties.']['title.']['useDAMColumn']) {
                            $damTitle = t3lib_div::quoteJSvalue(tx_dam_guiFunc::meta_compileHoverText($fI, $displayItems, ', '));
                            $onClick = 'if (document.getElementById(\'rtehtmlarea-dam-browse-links-useDAMColumn\') && document.getElementById(\'rtehtmlarea-dam-browse-links-useDAMColumn\').checked) { document.getElementById(\'rtehtmlarea-browse-links-anchor_title\').value = ' . $damTitle . '; }' . $onClick;
                        }
                        $ATag_insert = '<a href="#" onclick="' . htmlspecialchars($onClick) . '"' . $titleAttrib . '>';
                    } elseif (!$dragdropImage) {
                        $onClick = 'return insertElement(' . $onClick_params . ');';
                        $ATag_add = '<a href="#" onclick="' . htmlspecialchars($onClick) . '"' . $titleAttrib . '>';
                        $addIcon = $ATag_add . '<img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/plusbullet2.gif', 'width="18" height="16"') . ' title="' . $LANG->getLL('addToList', 1) . '" alt="" /></a>';
                        $onClick = 'return insertElement(' . $onClick_params . ', \'\', 1);';
                        $ATag_insert = '<a href="#" onclick="' . htmlspecialchars($onClick) . '"' . $titleAttrib . '>';
                        $addAllJS .= $mode === 'rte' ? '' : 'insertElement(' . $onClick_params . '); ';
                    }
                }
                // Create link to showing details about the file in a window:
                if ($fI['__exists']) {
                    $infoOnClick = 'launchView(\'' . t3lib_div::rawUrlEncodeFP($fI['file_name_absolute']) . '\', \'\'); return false;';
                    $ATag_info = '<a href="#" onclick="' . htmlspecialchars($infoOnClick) . '">';
                    $info = $ATag_info . '<img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/zoom2.gif', 'width="12" height="12"') . ' title="' . $LANG->getLL('info', 1) . '" alt="" /> ' . $LANG->getLL('info', 1) . '</a>';
                    $info = '<span class="button">' . $info . '</span>';
                } else {
                    $info = '&nbsp;';
                }
                // Thumbnail/size generation:
                $clickThumb = '';
                if ($displayThumbs and is_file($fI['file_name_absolute']) and tx_dam_image::isPreviewPossible($fI)) {
                    $addAttrib = array();
                    $addAttrib['title'] = tx_dam_guiFunc::meta_compileHoverText($fI);
                    $clickThumb = tx_dam_image::previewImgTag($fI, '', $addAttrib);
                    $clickThumb = '<div class="clickThumb">' . $ATag_insert . $clickThumb . '</a>' . '</div>';
                } elseif ($displayThumbs) {
                    $clickThumb = '<div style="width:68px"></div>';
                }
                // Image for drag & drop replaces the thumbnail
                if ($dragdropImage and t3lib_div::inList($TYPO3_CONF_VARS['GFX']['imagefile_ext'], $fI['file_type']) and is_file($fI['file_name_absolute'])) {
                    if (t3lib_div::_GP('noLimit')) {
                        $maxW = 10000;
                        $maxH = 10000;
                    } else {
                        $maxW = 380;
                        $maxH = 500;
                    }
                    $IW = $fI['hpixels'];
                    $IH = $fI['vpixels'];
                    if ($IW > $maxW) {
                        $IH = ceil($IH / $IW * $maxW);
                        $IW = $maxW;
                    }
                    if ($IH > $maxH) {
                        $IW = ceil($IW / $IH * $maxH);
                        $IH = $maxH;
                    }
                    $clickThumb = '<img src="' . t3lib_div::getIndpEnv('TYPO3_SITE_URL') . substr($fI['file_name_absolute'], strlen(PATH_site)) . '" width="' . $IW . '" height="' . $IH . '"' . ($this->defaultClass ? ' class="' . $this->defaultClass . '"' : '') . ' alt="' . $fI['alt_text'] . '" title="' . $fI[$this->imgTitleDAMColumn] . '" txdam="' . $fI['uid'] . '" />';
                    $clickThumb = '<div class="clickThumb2">' . $clickThumb . '</div>';
                }
                // Show element:
                $lines[] = '
					<tr>
						<td valign="middle" class="bgColor4" nowrap="nowrap" style="min-width:20em">' . ($dragdropImage ? '' : $ATag_insert) . $iconAndFilename . '</a>' . '&nbsp;</td>
						<td valign="middle" class="bgColor4" width="1%">' . ($mode == 'rte' ? '' : $addIcon) . '</td>
						<td valign="middle" nowrap="nowrap" width="1%">' . $info . '</td>
					</tr>';
                $infoText = '';
                if ($this->getModSettings('extendedInfo')) {
                    $infoText = tx_dam_guiFunc::meta_compileInfoData($fI, 'file_name, file_size:filesize, _dimensions, caption:truncate:50, instructions', 'table');
                    $infoText = str_replace('<table>', '<table border="0" cellpadding="0" cellspacing="1">', $infoText);
                    $infoText = str_replace('<strong>', '<strong style="font-weight:normal;">', $infoText);
                    $infoText = str_replace('</td><td>', '</td><td class="bgColor-10">', $infoText);
                }
                if ($displayThumbs || $dragdropImage and $infoText) {
                    $lines[] = '
						<tr class="bgColor">
							<td valign="top" colspan="3">
							<table border="0" cellpadding="0" cellspacing="0"><tr>
								<td valign="top">' . $clickThumb . '</td>
								<td valign="top" style="padding-left:1em">' . $infoText . '</td></tr>
							</table>
							<div style="height:0.5em;"></div>
							</td>
						</tr>';
                } elseif ($clickThumb or $infoText) {
                    $lines[] = '
						<tr class="bgColor">
							<td valign="top" colspan="3" style="padding-left:22px">
							' . $clickThumb . $infoText . '
							<div style="height:0.5em;"></div>
							</td>
						</tr>';
                }
                $lines[] = '
						<tr>
							<td colspan="3"><div style="height:0.5em;"></div></td>
						</tr>';
            }
            // Wrap all the rows in table tags:
            $out .= '



		<!--
			File listing
		-->
				<table border="0" cellpadding="1" cellspacing="0" id="typo3-fileList">
					' . implode('', $lines) . '
				</table>';
        }
        if ($addAllJS) {
            $label = $LANG->getLL('eb_addAllToList', true);
            $titleAttrib = ' title="' . $label . '"';
            $onClick = $addAllJS . 'return true;';
            $ATag_add = '<a href="#" onclick="' . htmlspecialchars($onClick) . '"' . $titleAttrib . '>';
            $addIcon = $ATag_add . '<img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/plusbullet2.gif', 'width="18" height="16"') . ' alt="" />';
            $addAllButton = '<div class="addAllButton"><span class="button"' . $titleAttrib . '>' . $ATag_add . $addIcon . $label . '</a></span></div>';
            $out = $out . $addAllButton;
        }
        $out .= $this->doc->spacer(20);
        $out .= $this->damSC->getResultInfoBar();
        // Return accumulated content for filelisting:
        return $out;
    }
 /**
  * Wraps filenames in links which opens them in a window IF they are in web-path.
  *
  * @param	string		$title String to be wrapped in link
  * @param	string		$pathInfo
  * @return	string		A tag
  */
 function linkWrapFile($title, $pathInfo)
 {
     if (!$this->enableFilePopup) {
         return htmlspecialchars($title);
     }
     if (!isset($pathInfo['file_path_absolute'])) {
         $pathInfo['file_path_absolute'] = tx_dam::path_makeAbsolute($pathInfo['file_path']);
     }
     if (t3lib_div::isFirstPartOfStr($pathInfo['file_path_absolute'], PATH_site)) {
         $href = tx_dam::file_relativeSitePath($pathInfo['file_path_absolute'] . $pathInfo['file_name']);
         $aOnClick = "return top.openUrlInWindow('" . t3lib_div::getIndpEnv('TYPO3_SITE_URL') . $href . "','WebFile');";
         if (!strcmp($title, strip_tags($title))) {
             return '<a href="' . htmlspecialchars($href) . '" onclick="' . htmlspecialchars($aOnClick) . '" title="' . htmlspecialchars($title) . '">' . htmlspecialchars($title) . '</a>';
         } else {
             return '<a href="' . htmlspecialchars($href) . '" onclick="' . htmlspecialchars($aOnClick) . '">' . $title . '</a>';
         }
     }
     return $title;
 }