public function fetch_by_fid($fid) { //返回一条数据同时加载附件表数据 global $_G; $fid = intval($fid); if (!($data = self::fetch($fid))) { return false; } //$data['icon']=($data['ficon']?$data['ficon']:geticonfromext('','folder')); $data['title'] = $data['fname']; if ($data['flag'] == 'recycle') { $data['iconum'] = DB::result_first("select COUNT(*) from " . DB::table('icos') . " where isdelete>0 and uid='{$_G['uid']}'"); } elseif ($data['uid'] < 1) { $data['iconum'] = DB::result_first("select COUNT(*) from " . DB::table('icos') . " where pfid='{$fid}' and uid='{$_G['uid']}' and isdelete<1"); } else { $data['iconum'] = DB::result_first("select COUNT(*) from " . DB::table('icos') . " where pfid='{$fid}' and isdelete<1"); } $data['perm'] = perm_check::getPerm($fid); $data['perm1'] = perm_check::getPerm1($fid); //print_r($data); if ($data['gid'] > 0) { $data['ismoderator'] = C::t('organization_admin')->ismoderator_by_uid_orgid($data['gid'], $_G['uid']); $permtitle = perm_binPerm::getGroupTitleByPower($data['perm1']); if (file_exists('dzz/images/default/system/folder-' . $permtitle['flag'] . '.png')) { $data['icon'] = 'dzz/images/default/system/folder-' . $permtitle['flag'] . '.png'; } else { $data['icon'] = 'dzz/images/default/system/folder-read.png'; } } $data['path'] = $data['fid']; $data['oid'] = $data['fid']; $data['bz'] = ''; return $data; }
public function CreateFolder($pfid, $fname, $perm, $ondup = 'newcopy') { global $_G, $_GET; $fname = self::name_filter($fname); if (!($folder = DB::fetch_first("select fid,pfid,iconview,disp,gid from %t where fid=%d", array('folder', $pfid)))) { return array('error' => '父目录不存在'); } if (!perm_check::checkperm_Container($pfid, 'folder')) { return array('error' => lang('message', 'no_privilege')); } if ($ondup == 'overwrite' && ($icoid = self::getRepeatIDByName($fname, $pfid, true))) { //如果目录下有同名目录 $data = array(); $data['icoarr'] = C::t('icos')->fetch_by_icoid($icoid); $data['folderarr'] = self::getFolderByIcosdata($data['icoarr']); return $data; } else { $fname = self::getFolderName($fname, $pfid); } //重命名 $setarr = array('fname' => $fname, 'uid' => $_G['uid'], 'username' => $_G['username'], 'pfid' => $folder['fid'], 'iconview' => $folder['iconview'], 'disp' => $folder['disp'], 'perm' => $perm, 'flag' => 'folder', 'dateline' => $_G['timestamp'], 'gid' => $folder['gid']); if ($setarr['fid'] = C::t('folder')->insert($setarr, true)) { $setarr['path'] = $setarr['fid']; $setarr['perm'] = perm_check::getPerm($setarr['fid']); $setarr['perm1'] = perm_check::getPerm1($setarr['fid']); $setarr['title'] = $setarr['fname']; $setarr['ext'] = ''; $setarr['size'] = 0; $setarr1 = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $setarr['fid'], 'name' => $setarr['fname'], 'type' => 'folder', 'flag' => '', 'dateline' => $_G['timestamp'], 'pfid' => $folder['fid'], 'gid' => $folder['gid'], 'ext' => '', 'size' => 0); if ($setarr1['icoid'] = DB::insert('icos', $setarr1, 1)) { $setarr1['path'] = $setarr1['icoid']; $setarr1['dpath'] = dzzencode($setarr1['icoid']); $setarr1['bz'] = ''; addtoconfig($setarr1); $setarr1['fsize'] = formatsize($setarr1['size']); $setarr1['ftype'] = getFileTypeName($setarr1['type'], $setarr1['ext']); $setarr1['fdateline'] = dgmdate($setarr1['dateline']); if ($setarr['gid']) { $permtitle = perm_binPerm::getGroupTitleByPower($setarr['perm1']); if (file_exists('dzz/images/default/system/folder-' . $permtitle['flag'] . '.png')) { $setarr['icon'] = $setarr1['img'] = 'dzz/images/default/system/folder-' . $permtitle['flag'] . '.png'; } else { $setarr['icon'] = $setarr1['img'] = 'dzz/images/default/system/folder-read.png'; } } return array('icoarr' => $setarr1, 'folderarr' => $setarr); } } return false; }
public function fetch_all_by_pfid($pfid, $name = '', $limit = 0, $orderby = '', $order = '', $start = 0, $count = false) { global $_G; $limitsql = $limit ? DB::limit($start, $limit) : ''; $data = array(); $wheresql = ''; $where = array(); $para = array($this->_table); $where[] = ' isdelete<1 '; if ($name) { $where[] = 'name like %s'; $para[] = '%' . $name . '%'; } if (is_array($pfid)) { $arr = array(); foreach ($pfid as $fid) { $arr[] = ' pfid = %d '; $para[] = $fid; } if ($arr) { $where[] = '(' . implode(' OR ', $arr) . ')'; } } elseif ($pfid) { $where[] = 'pfid= %d'; $para[] = $pfid; } if ($folder = C::t('folder')->fetch_by_fid($pfid)) { $where1 = array(); if ($folder['gid'] > 0) { $folder['perm'] = perm_check::getPerm($folder['fid']); if ($folder['perm'] > 0) { if (perm_binPerm::havePower('read1', $folder['perm'])) { $where1[] = "uid='{$_G[uid]}'"; } if (perm_binPerm::havePower('read2', $folder['perm'])) { if ($where1) { $where1 = array(); } else { $where1[] = "uid!='{$_G[uid]}'"; } } } } if ($where1) { $where = array_merge($where, $where1); } } if ($where) { $wheresql = 'WHERE ' . implode(' AND ', $where); } else { return false; } //exit($wheresql); if ($count) { return DB::result_first("SELECT COUNT(*) FROM %t {$wheresql} ", $para); } $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; } foreach (DB::fetch_all("SELECT icoid FROM %t {$wheresql} {$ordersql} {$limitsql}", $para) as $value) { if ($arr = self::fetch_by_icoid($value['icoid'])) { $data[$value['icoid']] = $arr; } } return $data; }
//$order=''; break; case 1: $orderby = 'size'; //$order='DESC'; break; case 2: $orderby = array('type', 'ext'); //$order=''; break; case 3: $orderby = 'dateline'; //$order='DESC'; break; } $folder['perm'] = perm_check::getPerm($folder['fid']); //$folder['opened']=1; if ($folder['flag'] == 'recycle') { /*if($total=C::t('icos')->fetch_all_isdelete(0,'','',0,'',true)){ if($start>=$total){ $page-=1; $start = ($page-1)*$perpage; }*/ foreach (C::t('icos')->fetch_all_isdelete($perpage, $orderby, $order, $start, $uid) as $value) { if ($value['type'] == 'folder') { $folderids[] = $value['oid']; } elseif ($value['type'] == 'shortcut') { foreach ($value['tdata']['folderarr'] as $key => $value1) { $folderdata[$key] = $value1; } // $data[$value['tdata']['icoid']]=$value['tdata'];