Ejemplo n.º 1
0
 public static function startProgress($params)
 {
     $apiManager = new ApiManager();
     $metadatas = array();
     $result = array();
     $cloud = isset($params['cloud']['origin']) && strlen($params['cloud']['origin']) > 0 ? $params['cloud']['origin'] : null;
     $cloudDestination = isset($params['cloud']['destination']) && strlen($params['cloud']['destination']) > 0 ? $params['cloud']['destination'] : null;
     $resourceUrl = null;
     $token = $_SESSION['access_token_' . $cloud . '_v2'];
     if ($params['action'] == 'copy' || $params['action'] == 'move' && $params['cloudOrig'] && $params['cloudDest'] && $cloud != $cloudDestination || !($params['cloudOrig'] == true && $params['cloudDest'] == true || $params['cloudOrig'] == false && $params['cloudDest'] == false)) {
         for ($i = 0; $i < count($params['files']); $i++) {
             if (is_array($params['files'][$i])) {
                 if (isset($params['files'][$i]['resource_url'])) {
                     $token = new stdClass();
                     $token->key = $params['access_token_key'];
                     $token->secret = $params['access_token_secret'];
                     $resourceUrl = $params['resource_url'];
                 }
                 $component = FSI::getFile($params['files'][$i]['path']);
                 $path = self::getPathCloud($component, $cloud);
                 $apiManager->getSkel($cloud, $token, $params['files'][$i]['is_file'], $params['files'][$i]['id'], $metadatas, $path, $params['files'][$i]['path'], $component->getParentPath(), $resourceUrl);
             } else {
                 self::getSkelLocal($params['files'][$i], $metadatas, null);
             }
         }
         for ($i = 0; $i < count($metadatas); $i++) {
             if (isset($metadatas[$i]->error)) {
                 if ($metadatas[$i]->error == 403) {
                     $denied = self::permissionDeniedCloud($cloud);
                     $result['path'] = $denied['path'];
                 }
                 $result['error'] = $metadatas[$i]->error;
                 return $result;
             }
         }
     } else {
         for ($i = 0; $i < count($params['files']); $i++) {
             $object = new stdClass();
             if (is_array($params['files'][$i]) && array_key_exists('id', $params['files'][$i])) {
                 $object->id = $params['files'][$i]['id'];
                 $object->is_folder = $params['files'][$i]['is_file'] ? false : true;
                 $component = FSI::getFile($params['files'][$i]['path']);
                 $path = self::getPathCloud($component, $cloud);
                 $object->path = $path;
                 $object->pathAbsolute = $params['files'][$i]['path'];
             } else {
                 $object->path = $params['files'][$i];
             }
             array_push($metadatas, $object);
         }
     }
     $result['metadatas'] = $metadatas;
     return $result;
 }