Exemple #1
0
 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;
 }
Exemple #2
0
 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;
 }
Exemple #3
0
 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;
 }
Exemple #4
0
         //$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'];