Copy get.php into files_sharing, public links now use files templates
This commit is contained in:
parent
115a6c8785
commit
498356fcb8
|
@ -0,0 +1,85 @@
|
||||||
|
<?php
|
||||||
|
$RUNTIME_NOAPPS=true; //no need to load the apps
|
||||||
|
$RUNTIME_NOSETUPFS=true; //don't setup the fs yet
|
||||||
|
|
||||||
|
require_once '../../lib/base.php';
|
||||||
|
require_once 'lib_share.php';
|
||||||
|
|
||||||
|
//get the path of the shared file
|
||||||
|
$token = $_GET['token'];
|
||||||
|
$source = OC_Share::getSource($token);
|
||||||
|
if ($source !== false) {
|
||||||
|
// TODO Manipulating the string may not be the best choice. Is there an alternative?
|
||||||
|
$user = substr($source, 1, strpos($source, "/", 1) - 1);
|
||||||
|
OC_Util::setupFS($user);
|
||||||
|
$source = substr($source, strlen("/".$user."/files"));
|
||||||
|
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
|
||||||
|
print_r($dir);
|
||||||
|
$root = $source;
|
||||||
|
$source .= $dir;
|
||||||
|
if (!OC_Filesystem::file_exists($source)) {
|
||||||
|
header("HTTP/1.0 404 Not Found");
|
||||||
|
$tmpl = new OC_Template("", "404", "guest");
|
||||||
|
$tmpl->assign("file", $dir);
|
||||||
|
$tmpl->printPage();
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (OC_Filesystem::is_dir($source)) {
|
||||||
|
$files = array();
|
||||||
|
$rootLength = strlen($root);
|
||||||
|
foreach (OC_Files::getdirectorycontent($source) as $i) {
|
||||||
|
$i['date'] = OC_Util::formatDate($i['mtime'] );
|
||||||
|
if ($i['type'] == 'file') {
|
||||||
|
$i['extention'] = substr($i['name'], strrpos($i['name'], "."));
|
||||||
|
$i['basename'] = substr($i['name'], 0, strrpos($i['name'], "."));
|
||||||
|
}
|
||||||
|
$i['directory'] = substr($i['directory'], $rootLength);
|
||||||
|
if ($i['directory'] == "/") {
|
||||||
|
$i['directory'] = "";
|
||||||
|
}
|
||||||
|
$files[] = $i;
|
||||||
|
}
|
||||||
|
// Make breadcrumb
|
||||||
|
$breadcrumb = array();
|
||||||
|
$pathtohere = "/";
|
||||||
|
foreach (explode("/", $dir) as $i) {
|
||||||
|
if ($i != "") {
|
||||||
|
$pathtohere .= "$i/";
|
||||||
|
$breadcrumb[] = array("dir" => $pathtohere, "name" => $i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Load the files we need
|
||||||
|
OC_Util::addStyle("files", "files");
|
||||||
|
OC_Util::addScript("files", "files");
|
||||||
|
OC_Util::addScript("files", "filelist");
|
||||||
|
$breadcrumbNav = new OC_Template("files", "part.breadcrumb", "");
|
||||||
|
$breadcrumbNav->assign("breadcrumb", $breadcrumb);
|
||||||
|
$breadcrumbNav->assign("baseUrl", OC_Helper::linkTo("files_sharing", "get.php")."?token=".$token."&");
|
||||||
|
$list = new OC_Template("files", "part.list", "");
|
||||||
|
$list->assign("files", $files);
|
||||||
|
$list->assign("baseUrl", OC_Helper::linkTo("files_sharing", "get.php")."?token=".$token."&");
|
||||||
|
$tmpl = new OC_Template("files", "index", "user");
|
||||||
|
$tmpl->assign("fileList", $list->fetchPage());
|
||||||
|
$tmpl->assign("breadcrumb", $breadcrumbNav->fetchPage());
|
||||||
|
$tmpl->printPage();
|
||||||
|
} else {
|
||||||
|
//get time mimetype and set the headers
|
||||||
|
$mimetype = OC_Filesystem::getMimeType($source);
|
||||||
|
header("Content-Transfer-Encoding: binary");
|
||||||
|
header("Expires: 0");
|
||||||
|
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
||||||
|
header("Pragma: public");
|
||||||
|
header("Content-Disposition: filename='".basename($source)."'");
|
||||||
|
header("Content-Type: " . $mimetype);
|
||||||
|
header("Content-Length: " . OC_Filesystem::filesize($source));
|
||||||
|
//download the file
|
||||||
|
@ob_clean();
|
||||||
|
OC_Filesystem::readfile($source);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
header("HTTP/1.0 404 Not Found");
|
||||||
|
$tmpl = new OC_Template("", "404", "guest");
|
||||||
|
$tmpl->printPage();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
?>
|
|
@ -135,6 +135,7 @@ class OC_Share {
|
||||||
$in .= ", '".$uid."@".$group."'";
|
$in .= ", '".$uid."@".$group."'";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$in .= ", '".self::PUBLICLINK."'";
|
||||||
$in .= ")";
|
$in .= ")";
|
||||||
return $in;
|
return $in;
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,8 +69,10 @@ foreach( explode( "/", $dir ) as $i ){
|
||||||
// make breadcrumb und filelist markup
|
// make breadcrumb und filelist markup
|
||||||
$list = new OC_Template( "files", "part.list", "" );
|
$list = new OC_Template( "files", "part.list", "" );
|
||||||
$list->assign( "files", $files );
|
$list->assign( "files", $files );
|
||||||
|
$list->assign( "baseUrl", OC_Helper::linkTo("files", "index.php?"));
|
||||||
$breadcrumbNav = new OC_Template( "files", "part.breadcrumb", "" );
|
$breadcrumbNav = new OC_Template( "files", "part.breadcrumb", "" );
|
||||||
$breadcrumbNav->assign( "breadcrumb", $breadcrumb );
|
$breadcrumbNav->assign( "breadcrumb", $breadcrumb );
|
||||||
|
$breadcrumbNav->assign( "baseUrl", OC_Helper::linkTo("files", "index.php?"));
|
||||||
|
|
||||||
$maxUploadFilesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
|
$maxUploadFilesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?php foreach($_["breadcrumb"] as $crumb): ?>
|
<?php foreach($_["breadcrumb"] as $crumb): ?>
|
||||||
<div class="crumb svg" data-dir='<?php echo $crumb["dir"];?>' style='background-image:url("<?php echo image_path('core','breadcrumb.png');?>")'>
|
<div class="crumb svg" data-dir='<?php echo $crumb["dir"];?>' style='background-image:url("<?php echo image_path('core','breadcrumb.png');?>")'>
|
||||||
<a href="<?php echo link_to("files", "index.php?dir=".$crumb["dir"]); ?>"><?php echo htmlspecialchars($crumb["name"]); ?></a>
|
<a href="<?php echo $_['baseUrl']."dir=".$crumb["dir"]; ?>"><?php echo htmlspecialchars($crumb["name"]); ?></a>
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<tr data-file="<?php echo $file['name'];?>" data-type="<?php echo ($file['type'] == 'dir')?'dir':'file'?>" data-mime="<?php echo $file['mime']?>" data-size='<?php echo $file['size'];?>'>
|
<tr data-file="<?php echo $file['name'];?>" data-type="<?php echo ($file['type'] == 'dir')?'dir':'file'?>" data-mime="<?php echo $file['mime']?>" data-size='<?php echo $file['size'];?>'>
|
||||||
<td class="filename svg" style="background-image:url(<?php if($file['type'] == 'dir') echo mimetype_icon('dir'); else echo mimetype_icon($file['mime']); ?>)">
|
<td class="filename svg" style="background-image:url(<?php if($file['type'] == 'dir') echo mimetype_icon('dir'); else echo mimetype_icon($file['mime']); ?>)">
|
||||||
<input type="checkbox" />
|
<input type="checkbox" />
|
||||||
<a class="name" href="<?php if($file['type'] == 'dir') echo link_to('files', 'index.php?dir='.$file['directory'].'/'.$file['name']); else echo link_to('files', 'download.php?file='.$file['directory'].'/'.$file['name']); ?>" title="">
|
<a class="name" href="<?php if($file['type'] == 'dir') echo $_['baseUrl'].'dir='.$file['directory'].'/'.$file['name']; else echo link_to('files', 'download.php?file='.$file['directory'].'/'.$file['name']); ?>" title="">
|
||||||
<span class="nametext">
|
<span class="nametext">
|
||||||
<?php if($file['type'] == 'dir'):?>
|
<?php if($file['type'] == 'dir'):?>
|
||||||
<?php echo htmlspecialchars($file['name']);?>
|
<?php echo htmlspecialchars($file['name']);?>
|
||||||
|
|
Loading…
Reference in New Issue