/** * @param string $extensionKey * @param string $version * @param string $username * @param string $password * @return array */ public function deleteExtensionVersion($extensionKey, $version, $username, $password) { $compiler = new SoapDataCompiler(); $payload = $compiler->createSoapData($username, $password, array('extensionKey' => $extensionKey, 'version' => $version)); return $this->getConnection()->call(Connection::FUNCTION_DELETEVERSION, $payload, $username, $password); }
/** * @param string $extensionKey * @param array $extensionData * @param string $username * @param string $password * @param string $comment * @return array */ public function createSoapData($extensionKey, $extensionData, $username, $password, $comment) { // Create dependency / conflict information: $dependenciesArr = $this->createDependenciesArray($extensionData, ExtensionUploadPacker::KIND_DEPENDENCY); $dependenciesArr = array_merge($dependenciesArr, $this->createDependenciesArray($extensionData, ExtensionUploadPacker::KIND_CONFLICT)); $dependenciesArr = array_merge($dependenciesArr, $this->createDependenciesArray($extensionData, ExtensionUploadPacker::KIND_SUGGEST)); // Compile data for SOAP call: $extension = array('extensionKey' => $extensionKey, 'version' => $this->valueOrDefault($extensionData, 'version'), 'metaData' => array('title' => $this->valueOrDefault($extensionData, 'title'), 'description' => $this->valueOrDefault($extensionData, 'description'), 'category' => $this->valueOrDefault($extensionData, 'category'), 'state' => $this->valueOrDefault($extensionData, 'state'), 'authorName' => $this->valueOrDefault($extensionData, 'author'), 'authorEmail' => $this->valueOrDefault($extensionData, 'author_email'), 'authorCompany' => $this->valueOrDefault($extensionData, 'author_company')), 'technicalData' => array('dependencies' => $dependenciesArr, 'loadOrder' => $this->valueOrDefault($extensionData, 'loadOrder'), 'uploadFolder' => (bool) $this->valueOrDefault($extensionData, 'uploadFolder'), 'createDirs' => $this->valueOrDefault($extensionData, 'createDirs'), 'shy' => $this->valueOrDefault($extensionData, 'shy', FALSE), 'modules' => $this->valueOrDefault($extensionData, 'module'), 'modifyTables' => $this->valueOrDefault($extensionData, 'modify_tables'), 'priority' => $this->valueOrDefault($extensionData, 'priority'), 'clearCacheOnLoad' => (bool) $this->valueOrDefault($extensionData, 'clearCacheOnLoad'), 'lockType' => $this->valueOrDefault($extensionData, 'lockType'), 'doNotLoadInFEe' => $this->valueOrDefault($extensionData, 'doNotLoadInFE'), 'docPath' => $this->valueOrDefault($extensionData, 'docPath')), 'infoData' => array('codeLines' => intval($extensionData['misc']['codelines']), 'codeBytes' => intval($extensionData['misc']['codebytes']), 'codingGuidelinesCompliance' => $this->valueOrDefault($extensionData, 'CGLcompliance'), 'codingGuidelinesComplianceNotes' => $this->valueOrDefault($extensionData, 'CGLcompliance_note'), 'uploadComment' => $comment, 'techInfo' => $extensionData['techInfo'])); $files = array(); foreach ($extensionData['FILES'] as $filename => $infoArr) { $files[] = array('name' => $infoArr['name'], 'size' => intval($infoArr['size']), 'modificationTime' => intval($infoArr['mtime']), 'isExecutable' => intval($infoArr['is_executable']), 'content' => $infoArr['content'], 'contentMD5' => $infoArr['content_md5']); } $compier = new SoapDataCompiler(); return $compier->createSoapData($username, $password, array('extensionData' => $extension, 'filesData' => $files)); }