. * */ // Check if we are a user OCP\User::checkLoggedIn(); // Load the files we need OCP\Util::addStyle( 'files', 'files' ); OCP\Util::addscript( 'files', 'jquery.iframe-transport' ); OCP\Util::addscript( 'files', 'jquery.fileupload' ); OCP\Util::addscript( 'files', 'files' ); OCP\Util::addscript( 'files', 'filelist' ); OCP\Util::addscript( 'files', 'fileactions' ); OCP\Util::addscript( 'files', 'keyboardshortcuts' ); if(!isset($_SESSION['timezone'])) { OCP\Util::addscript( 'files', 'timezone' ); } OCP\App::setActiveNavigationEntry( 'files_index' ); // Load the files $dir = isset( $_GET['dir'] ) ? stripslashes($_GET['dir']) : ''; // Redirect if directory does not exist if(!\OC\Files\Filesystem::is_dir($dir.'/')) { header('Location: '.$_SERVER['SCRIPT_NAME'].''); exit(); } function fileCmp($a, $b) { if ($a['type'] == 'dir' and $b['type'] != 'dir') { return -1; } elseif ($a['type'] != 'dir' and $b['type'] == 'dir') { return 1; } else { return strnatcasecmp($a['name'], $b['name']); } } $files = array(); foreach( \OC\Files\Filesystem::getDirectoryContent( $dir ) as $i ) { $i['date'] = OCP\Util::formatDate($i['mtime'] ); if($i['type']=='file') { $fileinfo=pathinfo($i['name']); $i['basename']=$fileinfo['filename']; if (!empty($fileinfo['extension'])) { $i['extension']='.' . $fileinfo['extension']; } else { $i['extension']=''; } } $i['directory'] = $dir; $files[] = $i; } usort($files, "fileCmp"); // Make breadcrumb $breadcrumb = array(); $pathtohere = ''; foreach( explode( '/', $dir ) as $i ) { if( $i != '' ) { $pathtohere .= '/'.str_replace('+','%20', urlencode($i)); $breadcrumb[] = array( 'dir' => $pathtohere, 'name' => $i ); } } // make breadcrumb und filelist markup $list = new OCP\Template( 'files', 'part.list', '' ); $list->assign( 'files', $files, false ); $list->assign( 'baseURL', OCP\Util::linkTo('files', 'index.php').'?dir=', false); $list->assign( 'downloadURL', OCP\Util::linkTo('files', 'download.php').'?file=', false); $breadcrumbNav = new OCP\Template( 'files', 'part.breadcrumb', '' ); $breadcrumbNav->assign( 'breadcrumb', $breadcrumb, false ); $breadcrumbNav->assign( 'baseURL', OCP\Util::linkTo('files', 'index.php').'?dir=', false); $upload_max_filesize = OCP\Util::computerFileSize(ini_get('upload_max_filesize')); $post_max_size = OCP\Util::computerFileSize(ini_get('post_max_size')); $maxUploadFilesize = min($upload_max_filesize, $post_max_size); $freeSpace=\OC\Files\Filesystem::free_space($dir); $freeSpace=max($freeSpace,0); $maxUploadFilesize = min($maxUploadFilesize, $freeSpace); $permissions = OCP\PERMISSION_READ; if (OC_Filesystem::isUpdatable($dir.'/')) { $permissions |= OCP\PERMISSION_UPDATE; } if (OC_Filesystem::isDeletable($dir.'/')) { $permissions |= OCP\PERMISSION_DELETE; } if (OC_Filesystem::isSharable($dir.'/')) { $permissions |= OCP\PERMISSION_SHARE; } $tmpl = new OCP\Template( 'files', 'index', 'user' ); $tmpl->assign( 'fileList', $list->fetchPage(), false ); $tmpl->assign( 'breadcrumb', $breadcrumbNav->fetchPage(), false ); $tmpl->assign( 'dir', \OC\Files\Filesystem::normalizePath($dir)); $tmpl->assign( 'isCreatable', \OC\Files\Filesystem::isCreatable($dir.'/')); $tmpl->assign('permissions', $permissions); $tmpl->assign( 'files', $files ); $tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize); $tmpl->assign( 'uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize)); $tmpl->assign( 'allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); $tmpl->printPage();