You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
5.6 KiB
178 lines
5.6 KiB
<?php
|
|
if (!defined('IN_DZZ')) {
|
|
exit('Access Denied');
|
|
}
|
|
Hook::listen('check_login');//检查是否登录,未登录跳转到登录界面
|
|
global $_G;
|
|
$uid = $_G['uid'];
|
|
$do = isset($_GET['do']) ? trim($_GET['do']):'';
|
|
//按条件筛选内容
|
|
if($do == 'filelist'){
|
|
$usersettings = C::t('user_setting')->fetch_all_user_setting();
|
|
$sid=htmlspecialchars($_GET['sid']);
|
|
//分页
|
|
$limit=isset($_GET['perpage'])?intval($_GET['perpage']):20;//默认每页条数
|
|
$page = empty($_GET['page'])?1:intval($_GET['page']);//页码数
|
|
$start = ($page-1)*$limit;//开始条数
|
|
$disp = isset($_GET['disp']) ? intval($_GET['disp']) : ($usersettings['recycledisp'] ? $usersettings['recycledisp'] : 4);
|
|
|
|
$keyword = isset($_GET['keyword']) ? urldecode($_GET['keyword']) : '';
|
|
|
|
$asc = (isset($_GET['asc'])) ? intval($_GET['asc']):1;
|
|
|
|
$order = $asc > 0 ? 'ASC' : "DESC";
|
|
|
|
switch ($disp) {
|
|
case 0:
|
|
$orderby = 'r.name';
|
|
break;
|
|
case 1:
|
|
$orderby = 'r.size';
|
|
break;
|
|
case 2:
|
|
$orderby = 're.pfid';
|
|
break;
|
|
case 3:
|
|
$orderby = 're.uid';
|
|
break;
|
|
case 4:
|
|
$orderby = 're.deldateline';
|
|
break;
|
|
|
|
}
|
|
$ordersql='';
|
|
if(is_array($orderby)){
|
|
foreach($orderby as $key=>$value){
|
|
$orderby[$key]=$value.' '.$order;
|
|
}
|
|
$ordersql=' ORDER BY '.implode(',',$orderby);
|
|
}elseif($orderby){
|
|
$ordersql=' ORDER BY '.$orderby.' '.$order;
|
|
}
|
|
$condition = array();
|
|
|
|
//文件夹id
|
|
if(!empty($_GET['fids']) && $_GET['fids']){
|
|
$pfid= intval($_GET['fids']);
|
|
//查询文件夹下级fid
|
|
$fids[] = $pfid;
|
|
foreach(C::t('folder')->fetch_all_folderfid_by_pfid($pfid) as $v){
|
|
$fids[] = $v;
|
|
}
|
|
if(count($fids) > 1){
|
|
$condition['re.pfid'] = array($fids, 'in', 'and');
|
|
}else{
|
|
$condition['re.pfid'] = array($pfid);
|
|
}
|
|
}
|
|
//如果接受到的是群组id
|
|
if(!empty($_GET['gid']) && $_GET['gid']){
|
|
$gid= intval($_GET['gid']);
|
|
//获取下级有权限的gid处理
|
|
$gids = C::t('organization')->get_childorg_by_orgid($gid);
|
|
//如果有下级,即orgid数量大于1
|
|
if(count($gids) > 1){
|
|
$condition['re.gid'] = array($gids, 'in', 'and');
|
|
}else{
|
|
$condition['re.gid'] = array($gid);
|
|
}
|
|
|
|
}
|
|
//时间范围
|
|
if(!empty($_GET['after']) && $_GET['after']){
|
|
$startdate = strtotime($_GET['after']);
|
|
$condition[] = array(' re.deldateline > ' . $startdate, 'stringsql', 'and');
|
|
}
|
|
if(!empty($_GET['before']) && $_GET['before']){
|
|
$enddate = strtotime($_GET['before']);
|
|
$condition[] = array(' re.deldateline <= ' . $enddate, 'stringsql', 'and');
|
|
|
|
}
|
|
$data = C::t('resources_recyle')->fetch_all_recycle($start,$limit,$condition,$ordersql);
|
|
if ($data !== null && is_array($data)) {
|
|
if (count($data) >= $limit) {
|
|
$total = $start + $limit * 2 - 1;
|
|
} else {
|
|
$total = $start + count($data);
|
|
}
|
|
} else {
|
|
// 处理 $data 为 null 或无效的情况
|
|
$total = $start; // 或者其他合适的默认值
|
|
}
|
|
$disp = isset($_GET['disp']) ? intval($_GET['disp']) : intval($usersettings['recycledisp']);//文件排序
|
|
$iconview=(isset($_GET['iconview'])) ? intval($_GET['iconview']) : intval($usersettings['recycleiconview']);//排列方式
|
|
if(!$json_data=json_encode($data)) $data=array();
|
|
if(!$json_data=json_encode($folderdata)) $folderdata=array();
|
|
//返回数据
|
|
$return=array(
|
|
'sid'=>$sid,
|
|
'total'=>$total,
|
|
'data'=>$data?$data:array(),
|
|
'folderdata'=>$folderdata?$folderdata:array(),
|
|
'param'=>array(
|
|
'disp'=>$disp,
|
|
'view'=>$iconview,
|
|
'page'=>$page,
|
|
'perpage'=>$perpage,
|
|
'bz'=>$bz,
|
|
'total'=>$total,
|
|
'asc'=>$asc,
|
|
'keyword'=>$keyword,
|
|
'tags'=>$tags,
|
|
'exts'=>$exts,
|
|
'localsearch'=>$bz?1:0,
|
|
'fid'=>'',
|
|
)
|
|
);
|
|
exit(json_encode($return));
|
|
}else{
|
|
//分页
|
|
$limit=isset($_GET['perpage'])?intval($_GET['perpage']):20;//默认每页条数
|
|
$page = empty($_GET['page'])?0:intval($_GET['page']);//页码数
|
|
$start = $page;//开始条数
|
|
$limitsql = "limit $start,$perpage";
|
|
$disp = isset($_GET['disp']) ? intavel($_GET['disp']):3;
|
|
|
|
$keyword = isset($_GET['keyword']) ? urldecode($_GET['keyword']) : '';
|
|
|
|
$asc = (isset($_GET['asc'])) ? intval($_GET['asc']):1;
|
|
|
|
$order = $asc > 0 ? 'ASC' : "DESC";
|
|
|
|
switch ($disp) {
|
|
case 0:
|
|
$orderby = 'r.name';
|
|
break;
|
|
case 1:
|
|
$orderby = 'r.size';
|
|
break;
|
|
case 2:
|
|
$orderby = 'r.pfid';
|
|
break;
|
|
case 3:
|
|
$orderby = 're.uid';
|
|
break;
|
|
case 4:
|
|
$orderby = 're.deldateline';
|
|
break;
|
|
|
|
}
|
|
$ordersql='';
|
|
if(is_array($orderby)){
|
|
foreach($orderby as $key=>$value){
|
|
$orderby[$key]=$value.' '.$order;
|
|
}
|
|
$ordersql=' ORDER BY '.implode(',',$orderby);
|
|
}elseif($orderby){
|
|
$ordersql=' ORDER BY '.$orderby.' '.$order;
|
|
}
|
|
//我的
|
|
$explorer_setting = get_resources_some_setting();
|
|
if($explorer_setting['useronperm']){
|
|
$fid = C::t('folder')->fetch_fid_by_flag('home');
|
|
$homearr = array('fid'=>$fid,'name'=>lang('explorer_user_root_dirname'));
|
|
}
|
|
//我参与的群组
|
|
$manageorg= C::t('organization')->fetch_all_part_org();
|
|
}
|
|
require template('recyle_content');
|