Exemple #1
0
        $icoarr['fdateline'] = dgmdate($icoarr['dateline']);
        echo json_encode($icoarr);
        exit;
    }
    $cloud = DB::fetch_first("select * from %t where bz=%s", array('connect', $bz));
    if (!($item = C::t($cloud['dname'])->fetch_by_id($id))) {
        echo json_encode(array('error' => '对象不存在或已被删除'));
        exit;
    }
    $pfid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='desktop'");
    $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $item['id'], 'name' => $item['fname'], 'type' => $cloud['type'], 'flag' => $cloud['bz'], 'dateline' => $_G['timestamp'], 'pfid' => $pfid, 'size' => 0, 'gid' => 0, 'ext' => '', 'isdelete' => 0);
    if ($icoid = DB::result_first("select icoid from %t where oid=%d and uid=%d and type=%s", array('icos', $item['id'], $_G['uid'], $icoarr['type']))) {
        C::t('icos')->update($icoid, $icoarr);
        $icoarr['oid'] = $item['fid'];
        $icoarr['icoid'] = $icoid;
    } elseif ($icoarr['icoid'] = DB::insert('icos', $icoarr, 1, 1)) {
        addtoconfig($icoarr);
    } else {
        echo json_encode(array('error' => '添加到桌面失败'));
        exit;
    }
    $icoarr['oid'] = $item['fid'];
    $icoarr['bz'] = '';
    $icoarr['img'] = $item['ficon'];
    $icoarr['fsize'] = formatsize($icoarr['size']);
    $icoarr['ftype'] = getFileTypeName($icoarr['type'], $icoarr['ext']);
    $icoarr['fdateline'] = dgmdate($icoarr['dateline']);
    echo json_encode($icoarr);
    exit;
}
include template("addcloud");
Exemple #2
0
    $arr = array();
    $fid = intval($_GET['fid']);
    if ($return = C::t('folder')->empty_by_fid($fid)) {
        if (!isset($return['error'])) {
            $arr['msg'] = 'success';
        } else {
            $arr['error'] = $return['error'];
        }
    }
    echo json_encode_gbk($arr);
    exit;
} elseif ($do == 'restore') {
    $icoids = explode(',', trim($_GET['icoid']));
    foreach (C::t('icos')->fetch_all($icoids) as $value) {
        if (C::t('icos')->update($value['icoid'], array('isdelete' => 0))) {
            addtoconfig($value);
        }
    }
    echo json_encode_gbk(array('msg' => 'success'));
    exit;
} elseif ($do == 'linktodesktop') {
    if (!$_G['uid']) {
        exit(json_encode(array('error' => '您还没有登录')));
    }
    $data = array();
    $link = trim($_GET['link']);
    //检查网址合法性
    if (!preg_match("/^(http|ftp|https|mms)\\:\\/\\//i", $link)) {
        $link = 'http://' . $link;
    }
    if (!preg_match("/^(http|ftp|https|mms)\\:\\/\\/.{4,300}\$/i", $link)) {
Exemple #3
0
 public function FileCopy($icoid, $pfid, $first = true)
 {
     global $_G, $_GET;
     if (!($tfolder = DB::fetch_first("select * from " . DB::table('folder') . " where fid='{$pfid}'"))) {
         return array('error' => ' 目标位置不存在');
     }
     if ($icoarr = C::t('icos')->fetch($icoid)) {
         //判断当前文件有没有拷贝权限;
         if (!perm_check::checkperm('copy', $icoarr)) {
             return array('error' => ' 没有权限');
         }
         //判断目录目录有无当前类型的添加权限
         if (in_array($icoarr['type'], array('folder', 'link', 'video', 'dzzdoc', 'shortcut'))) {
             if (!perm_check::checkperm_Container($pfid, $icoarr['type'])) {
                 return array('error' => ' 没有权限');
             }
         } elseif (!perm_check::checkperm_Container($pfid, 'newtype')) {
             return array('error' => ' 没有权限');
         }
         $success = 0;
         if ($gid = DB::result_first("select gid from " . DB::table('folder') . " where fid='{$pfid}'")) {
             //判断空间大小
             if (!SpaceSize($icoarr['size'], $gid)) {
                 return array('error' => lang('message', 'inadequate_capacity_space'));
             }
         }
         //判断重复
         if ($ricoid = self::getRepeatIDByName($icoarr['name'], $pfid, $icoarr['type'] == 'folder' ? true : false)) {
             //如果目录下有同名文件
             if ($icoarr['type'] == 'folder') {
                 $icoarr['name'] = self::getFolderName($icoarr['name'], $pfid);
             } else {
                 $icoarr['name'] = self::getFileName($icoarr['name'], $pfid);
             }
         }
         switch ($icoarr['type']) {
             case 'folder':
                 if ($folder = C::t('folder')->fetch($icoarr['oid'])) {
                     $oldfid = $folder['fid'];
                     $oldfolder = $folder;
                     unset($folder['fid']);
                     $folder['uid'] = $_G['uid'];
                     $folder['username'] = $_G['username'];
                     $folder['pfid'] = $pfid;
                     $folder['fname'] = $icoarr['name'];
                     $folder['gid'] = $gid;
                     //$folder['perm']=0;
                     if ($folder['fid'] = C::t("folder")->insert($folder, 1)) {
                         foreach (C::t('icos')->fetch_all_by_pfid($oldfid) as $value) {
                             try {
                                 self::FileCopy($value['icoid'], $folder['fid'], false);
                             } catch (Exception $e) {
                             }
                         }
                         $return['folderarr'] = $folder;
                         $icoarr['oid'] = $folder['fid'];
                         $success = 1;
                     }
                 } else {
                     return array('error', lang('message', 'folder_not_exist'));
                 }
                 break;
             case 'user':
                 $success = 1;
                 break;
             case 'shortcut':
                 $shortcut = C::t('source_shortcut')->fetch($icoarr['oid']);
                 unset($shortcut['cutid']);
                 if ($cutid = C::t('source_shortcut')->insert($shortcut, 1)) {
                     $icoarr['oid'] = $cutid;
                     $success = 1;
                 }
                 break;
             case 'app':
                 $success = 1;
                 break;
             case 'image':
                 if ($image = C::t('source_image')->fetch($icoarr['oid'])) {
                     $opicid = $image['picid'];
                     unset($image['picid']);
                     $image['title'] = $icoarr['name'];
                     $image['uid'] = $_G['uid'];
                     $image['gid'] = $gid;
                     $image['username'] = $_G['username'];
                     if ($image['picid'] = DB::insert('source_image', $image, 1)) {
                         $image['aid'] && C::t('attachment')->addcopy_by_aid($image['aid']);
                         $icoarr['oid'] = $image['picid'];
                         $success = 1;
                     }
                 } else {
                     return array('error', lang('message', 'image_not_exist'));
                 }
                 break;
             case 'video':
                 if ($video = C::t('source_video')->fetch($icoarr['oid'])) {
                     $video['uid'] = $_G['uid'];
                     $video['gid'] = $gid;
                     unset($video['vid']);
                     $video['title'] = $icoarr['name'];
                     $video['username'] = $_G['username'];
                     if ($video['vid'] = DB::insert('source_video', $video, 1)) {
                         if ($video['cid']) {
                             DB::query("update " . DB::table('cai_video') . " set copys=copys+1 where cid='{$video[cid]}'");
                         }
                         $icoarr['oid'] = $video['vid'];
                         $success = 1;
                     }
                 } else {
                     return array('error', lang('message', 'video_not_exist'));
                 }
                 break;
             case 'music':
                 if ($music = C::t('source_music')->fetch($icoarr['oid'])) {
                     unset($music['mid']);
                     $music['uid'] = $_G['uid'];
                     $music['gid'] = $gid;
                     $music['title'] = $icoarr['name'];
                     $music['username'] = $_G['username'];
                     if ($music['mid'] = DB::insert('source_music', $music, 1)) {
                         if ($music['cid']) {
                             DB::query("update " . DB::table('cai_music') . " set copys=copys+1 where cid='{$music[cid]}'");
                         }
                         $icoarr['oid'] = $music['mid'];
                         $success = 1;
                     }
                 } else {
                     return array('error', lang('message', 'video_not_exist'));
                 }
                 break;
             case 'link':
                 if ($link = C::t('source_link')->fetch($icoarr['oid'])) {
                     $olink = $link['lid'];
                     unset($link['lid']);
                     $link['uid'] = $_G['uid'];
                     $link['username'] = $_G['username'];
                     $link['title'] = $icoarr['name'];
                     $link['gid'] = $gid;
                     if ($link['lid'] = DB::insert('source_link', $link, 1)) {
                         if ($link['cid']) {
                             DB::query("update " . DB::table('cai_link') . " set copys=copys+1 where cid='{$link[cid]}'");
                         }
                         if ($link['did']) {
                             C::t('icon')->update_copys_by_did($link['did']);
                         }
                         $icoarr['oid'] = $link['lid'];
                         $success = 1;
                     }
                 } else {
                     return array('error', lang('message', 'link_not_exist'));
                 }
                 break;
             case 'attach':
                 if ($attach1 = C::t('source_attach')->fetch($icoarr['oid'])) {
                     $oqid = $attach1['qid'];
                     unset($attach1['qid']);
                     $attach1['uid'] = $_G['uid'];
                     $attach['title'] = $icoarr['name'];
                     $attach1['username'] = $_G['username'];
                     $attach1['gid'] = $gid;
                     if ($attach1['qid'] = DB::insert('source_attach', $attach1, 1)) {
                         $attach1['aid'] && C::t('attachment')->addcopy_by_aid($attach1['aid']);
                         $icoarr['oid'] = $attach1['qid'];
                         $success = 1;
                     }
                 } else {
                     return array('error', lang('message', 'attach_not_exist'));
                 }
                 break;
             case 'document':
                 if ($document = C::t('source_document')->fetch($icoarr['oid'])) {
                     $odid = $document['did'];
                     unset($document['did']);
                     $document['uid'] = $_G['uid'];
                     $document['title'] = $icoarr['name'];
                     $document['username'] = $_G['username'];
                     $document['gid'] = $gid;
                     if ($document['did'] = DB::insert('source_document', $document, 1)) {
                         $document['aid'] && C::t('attachment')->addcopy_by_aid($document['aid']);
                         $icoarr['oid'] = $document['did'];
                         $success = 1;
                     }
                 } else {
                     return array('error', lang('message', 'document_not_exist'));
                 }
                 break;
             case 'dzzdoc':
                 if ($did = C::t('document')->copy_by_did($icoarr['oid'])) {
                     $icoarr['oid'] = $did;
                     $success = 1;
                 } else {
                     return array('error', '创建Dzz文档失败');
                 }
                 break;
             default:
                 $success = 1;
         }
         if ($success) {
             unset($icoarr['icoid']);
             $icoarr['gid'] = $gid;
             $icoarr['uid'] = $_G['uid'];
             $icoarr['username'] = $_G['username'];
             $icoarr['pfid'] = $pfid;
             if ($icoarr['icoid'] = DB::insert('icos', $icoarr, 1)) {
                 if ($icoarr['size'] > 0) {
                     SpaceSize($icoarr['size'], $gid, 1);
                 }
                 if (!$first) {
                     addtoconfig($icoarr);
                 } else {
                     $return['icoarr'] = C::t('icos')->fetch_by_icoid($icoarr['icoid']);
                     return $return;
                 }
             } else {
                 return array('error' => '此类文件不允许复制');
             }
         }
     }
     return array('error' => 'copy error');
 }
Exemple #4
0
 $data['gid'] = $gid;
 $data['iscopy'] = $iscopy;
 $icos = $folderids = array();
 //分4种情况:a:本地到api;b:api到api;c:api到本地;d:本地到本地;
 foreach ($icoids as $icoid) {
     //在目标位置创建
     $opath = rawurldecode($icoid);
     $path = rawurldecode(str_replace(array('_dock_', 'icosContainer_folder_', 'icosContainer_body_'), '', $container));
     $return = IO::CopyTo($opath, $path, $iscopy);
     if (!$iscopy) {
         $return = IO::DeleteByData($return);
     }
     if ($return['success'] === true) {
         $data['icoarr'][] = $return['newdata'];
         if (!$tbz) {
             addtoconfig($return['newdata'], $ticoid);
         }
         if ($return['newdata']['type'] == 'folder') {
             $data['folderarr'][] = IO::getFolderByIcosdata($return['newdata']);
         }
         $data['successicos'][$return['icoid']] = $return['newdata']['icoid'];
     } else {
         $data['error'][] = $return['name'] . ':' . $return['success'];
     }
 }
 if ($data['successicos']) {
     $data['msg'] = 'success';
     if (isset($data['error'])) {
         $data['error'] = implode(';', $data['error']);
     }
     echo json_encode_gbk($data);
Exemple #5
0
function dzz_check_default()
{
    global $_G, $space;
    //初始化默认目录
    dzz_default_folder_init();
    if ($_G['uid'] > 0) {
        //创建机构部门的快捷方式;
        dzz_organization_shortcut();
    }
    //处理默认目录类
    if ($_G['uid'] > 0) {
        //游客不生成默认目录到桌面
        foreach (C::t('folder')->fetch_all_default_by_uid($_G['uid']) as $value) {
            $type = str_replace('m:', '', $value['default']);
            $pfid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='{$type}'");
            $sperm = perm_FileSPerm::flagPower($value['flag']);
            if ($icoid = DB::result_first("select icoid from " . DB::table('icos') . " where uid='{$_G[uid]}' and oid='{$value[fid]}' and flag='{$value[flag]}' and type='folder'")) {
                C::t('icos')->update($icoid, array('pfid' => $pfid, 'sperm' => $sperm));
            } else {
                $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $value['fid'], 'name' => $value['fname'], 'type' => 'folder', 'flag' => $value['flag'], 'dateline' => $_G['timestamp'], 'pfid' => $pfid, 'sperm' => $sperm);
                if ($icoarr['icoid'] = C::t('icos')->insert($icoarr, 1)) {
                    addtoconfig($icoarr);
                }
            }
        }
    }
    if ($_G['uid'] > 0) {
        $apps = C::t('app_market')->fetch_all_by_notdelete($_G['uid']);
    } else {
        $apps = C::t('app_market')->fetch_all_by_default($_G['uid']);
    }
    $applist = array();
    $screenlist = array();
    foreach ($apps as $appid => $app) {
        $applist[] = $appid;
        if ($app['position'] == 1) {
            //开始菜单
            /*if($value=DB::fetch_first("select icoid,opuid from ".DB::table('icos')." where uid='{$_G[uid]}' and oid='{$appid}' and type='app'")){
            			//if(!$value['opuid']) C::t('icos')->delete_by_icoid($icoid);
            		}*/
            continue;
        } else {
            if ($app['position'] == 2) {
                //桌面
                $fid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='desktop'");
            } else {
                //dock条
                $fid = DB::result_first("select fid from " . DB::table('folder') . " where uid='{$_G[uid]}' and flag='dock'");
            }
            if (!$fid) {
                continue;
            }
            if ($icoid = DB::result_first("select icoid from " . DB::table('icos') . " where uid='{$_G[uid]}' and oid='{$appid}' and type='app'")) {
                C::t('icos')->update($icoid, array('isdelete' => 0, 'pfid' => $fid));
                $screenlist[] = $icoid;
            } else {
                $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $appid, 'name' => '', 'type' => 'app', 'dateline' => $_G['timestamp'], 'pfid' => $fid, 'ext' => '', 'size' => 0);
                if ($icoarr['icoid'] = C::t('icos')->insert($icoarr, 1)) {
                    addtoconfig($icoarr);
                    $screenlist[] = $icoarr['icoid'];
                }
            }
        }
    }
    if ($_G['uid'] > 0) {
        if ($applist) {
            $oapplist = DB::result_first("select applist from " . DB::table('user_field') . " where uid='{$_G[uid]}'");
            if ($oapplist) {
                $oapplist = explode(',', $oapplist);
            } else {
                $oapplist = array();
            }
            $newappids = array();
            foreach ($applist as $appid) {
                if (!in_array($appid, $oapplist)) {
                    $oapplist[] = $appid;
                    $newappids[] = $appid;
                }
            }
            if ($newappids) {
                C::t('app_user')->insert_by_uid($_G['uid'], $newappids);
            }
            C::t('user_field')->update($_G['uid'], array('applist' => implode(',', $oapplist)));
        }
    } else {
        C::t('user_field')->update($_G['uid'], array('applist' => implode(',', $applist), 'screenlist' => implode(',', $screenlist)));
    }
    return C::t('user_field')->fetch($_G['uid']);
}