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; }