/admin/filebrowser.php
PHP | 201 lines | 168 code | 17 blank | 16 comment | 40 complexity | 05dbf1486b230623f4a0980123c7ea67 MD5 | raw file
Possible License(s): GPL-3.0
- <?php
- /**
- * Basic File Browser for CKEditor
- *
- * Displays and selects file link to insert into CKEditor
- *
- * @package GetSimple
- * @subpackage Files
- *
- * Version: 1.1 (2011-03-12)
- */
- // Setup inclusions
- include('inc/common.php');
- login_cookie_check();
- $filesSorted=null;$dirsSorted=null;
- $path = (isset($_GET['path'])) ? "../data/uploads/".$_GET['path'] : "../data/uploads/";
- $subPath = (isset($_GET['path'])) ? $_GET['path'] : "";
- $returnid = (isset($_GET['returnid'])) ? $_GET['returnid'] : "";
- $func = (isset($_GET['func'])) ? $_GET['func'] : "";
- $path = tsl($path);
- // check if host uses Linux (used for displaying permissions
- $isUnixHost = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' ? false : true);
- $CKEditorFuncNum = $_GET['CKEditorFuncNum'];
- $sitepath = suggest_site_path();
- $fullPath = $sitepath . "data/uploads/";
- $type = $_GET['type'];
- if(!defined('IN_GS')){ die('you cannot load this page directly.'); }
- global $LANG;
- $LANG_header = preg_replace('/(?:(?<=([a-z]{2}))).*/', '', $LANG);
- ?>
- <!DOCTYPE html>
- <html lang="<?php echo $LANG_header; ?>">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title><?php echo i18n_r('FILE_BROWSER'); ?></title>
- <link rel="shortcut icon" href="favicon.png" type="image/x-icon" />
- <link rel="stylesheet" type="text/css" href="template/style.php?v=<?php echo GSVERSION; ?>" media="screen" />
- <style>
- .wrapper, #maincontent, #imageTable { width: 100% }
- </style>
- <script type='text/javascript'>
-
- function submitLink($funcNum, $url) {
- <?php if (isset($_GET['returnid'])){ ?>
- if(window.opener){
- window.opener.document.getElementById('<?php echo $returnid; ?>').focus();
- window.opener.document.getElementById('<?php echo $returnid; ?>').value=$url;
- }
- <?php
- if (isset($_GET['func'])){
- $func = @$_GET['func'];
- ?>
- if(window.opener){
- if(typeof window.opener.<?php echo $func; ?> == 'function') {
- window.opener.<?php echo $func; ?>('<?php echo $returnid; ?>');
- }
- }
- <?php
- }
- }
- else { ?>
- if(window.opener){
- window.opener.CKEDITOR.tools.callFunction($funcNum, $url);
- }
- <?php } ?>
- window.close();
- }
- </script>
- </head>
- <body id="filebrowser" >
- <div class="wrapper">
- <div id="maincontent">
- <div class="main" style="border:none;">
- <h3><?php echo i18n('UPLOADED_FILES'); ?><span id="filetypetoggle"> / <?php echo ($type == 'images' ? i18n('IMAGES') : i18n('SHOW_ALL') ); ?></span></h3>
- <?php
- $count="0";
- $dircount="0";
- $counter = "0";
- $totalsize = 0;
- $filesArray = array();
- $dirsArray = array();
- $filenames = getFiles($path);
- if (count($filenames) != 0) {
- foreach ($filenames as $file) {
- if ($file == "." || $file == ".." || $file == ".htaccess" ){
- // not a upload file
- } elseif (is_dir($path . $file)) {
- $dirsArray[$dircount]['name'] = $file;
- $dircount++;
- } else {
- $filesArray[$count]['name'] = $file;
- $ext = substr($file, strrpos($file, '.') + 1);
- $extention = get_FileType($ext);
- $filesArray[$count]['type'] = $extention;
- clearstatcache();
- $ss = @stat($path . $file);
- $filesArray[$count]['date'] = @date('M j, Y',$ss['ctime']);
- $filesArray[$count]['size'] = fSize($ss['size']);
- $totalsize = $totalsize + $ss['size'];
- $count++;
- }
- }
- $filesSorted = subval_sort($filesArray,'name');
- $dirsSorted = subval_sort($dirsArray,'name');
- }
- $pathParts=explode("/",$subPath);
- $urlPath="";
- echo '<div class="h5">/ <a href="?CKEditorFuncNum='.$CKEditorFuncNum.'&type='.$type.'">uploads</a> / ';
- foreach ($pathParts as $pathPart){
- if ($pathPart!=''){
- $urlPath.=$pathPart."/";
- echo '<a href="?path='.$urlPath.'&CKEditorFuncNum='.$CKEditorFuncNum.'&type='.$type.'&func='.$func.'">'.$pathPart.'</a> / ';
- }
- }
- echo "</div>";
- echo '<table class="highlight" id="imageTable">';
- if (count($dirsSorted) != 0) {
- foreach ($dirsSorted as $upload) {
- echo '<tr class="All" >';
- echo '<td class="" colspan="5">';
- $adm = substr($path . $upload['name'] , 16);
- if ($returnid!='') {
- $returnlink = '&returnid='.$returnid;
- } else {
- $returnlink='';
- }
- if ($func!='') {
- $funct = '&func='.$func;
- } else {
- $funct='';
- }
- echo '<img src="template/images/folder.png" width="11" /> <a href="filebrowser.php?path='.$adm.'&CKEditorFuncNum='.$CKEditorFuncNum.'&type='.$type.$returnlink.'&'.$funct.'" title="'. $upload['name'] .'" ><strong>'.$upload['name'].'</strong></a>';
- echo '</td>';
- echo '</tr>';
- }
- }
- if (count($filesSorted) != 0) {
- foreach ($filesSorted as $upload) {
- $upload['name'] = rawurlencode($upload['name']);
- $thumb = null; $thumbnailLink = null;
- $subDir = ($subPath == '' ? '' : $subPath.'/');
- $selectLink = 'title="'.i18n_r('SELECT_FILE').': '. htmlspecialchars($upload['name']) .'" href="javascript:void(0)" onclick="submitLink('.$CKEditorFuncNum.',\''.$fullPath.$subDir.$upload['name'].'\')"';
- if ($type == 'images') {
- if ($upload['type'] == i18n_r('IMAGES') .' Images') {
- # get internal thumbnail to show beside link in table
- $thumb = '<td class="imgthumb" style="display:table-cell" >';
- $thumbLink = $urlPath.'thumbsm.'.$upload['name'];
- if (file_exists('../data/thumbs/'.$thumbLink)) {
- $imgSrc='<img src="../data/thumbs/'. $thumbLink .'" />';
- } else {
- $imgSrc='<img src="inc/thumb.php?src='. $urlPath . $upload['name'] .'&dest='. $thumbLink .'&x=65&f=1" />';
- }
- $thumb .= '<a '.$selectLink.' >'.$imgSrc.'</a>';
- $thumb .= '</td>';
-
- # get external thumbnail link
- $thumbLinkExternal = 'data/thumbs/'.$urlPath.'thumbnail.'.$upload['name'];
- if (file_exists('../'.$thumbLinkExternal)) {
- $thumbnailLink = '<span> – </span><a href="javascript:void(0)" onclick="submitLink('.$CKEditorFuncNum.',\''.$sitepath.$thumbLinkExternal.'\')">'.i18n_r('THUMBNAIL').'</a>';
- }
- }
- else { continue; }
- }
- $counter++;
- echo '<tr class="All '.$upload['type'].'" >';
- echo ($thumb=='' ? '<td style="display: none"></td>' : $thumb);
- echo '<td><a '.$selectLink.' class="primarylink">'.htmlspecialchars($upload['name']) .'</a>'.$thumbnailLink.'</td>';
- echo '<td style="width:80px;text-align:right;" ><span>'. $upload['size'] .'</span></td>';
- // get the file permissions.
- if ($isUnixHost && defined('GSDEBUG') && function_exists('posix_getpwuid')) {
- $filePerms = substr(sprintf('%o', fileperms($path.$upload['name'])), -4);
- $fileOwner = posix_getpwuid(fileowner($path.$upload['name']));
- echo '<td style="width:70px;text-align:right;"><span>'.$fileOwner['name'].'/'.$filePerms.'</span></td>';
- }
- echo '<td style="width:85px;text-align:right;" ><span>'. shtDate($upload['date']) .'</span></td>';
- echo '</tr>';
- }
- }
- echo '</table>';
- echo '<p><em><b>'. $counter .'</b> '.i18n_r('TOTAL_FILES').' ('. fSize($totalsize) .')</em></p>';
- ?>
- </div>
- </div>
- </div>
- </body>
- </html>