private function updateVersion(Addon $addon, Version $package) { $version = null; if ($addon->isInDB()) { $version = $addon->Versions()->filter('Version', $package->getVersionNormalized())->first(); } if (!$version) { $version = new AddonVersion(); } $version->Name = $package->getName(); $version->Type = str_replace('silverstripe-', '', $package->getType()); $version->Description = $package->getDescription(); $version->Released = strtotime($package->getTime()); $keywords = $package->getKeywords(); if ($keywords) { foreach ($keywords as $keyword) { $keyword = AddonKeyword::get_by_name($keyword); $addon->Keywords()->add($keyword); $version->Keywords()->add($keyword); } } $version->Version = $package->getVersionNormalized(); $version->PrettyVersion = $package->getVersion(); $stability = VersionParser::parseStability($package->getVersion()); $isDev = $stability === 'dev'; $version->Development = $isDev; $version->SourceType = $package->getSource()->getType(); $version->SourceUrl = $package->getSource()->getUrl(); $version->SourceReference = $package->getSource()->getReference(); if ($package->getDist()) { $version->DistType = $package->getDist()->getType(); $version->DistUrl = $package->getDist()->getUrl(); $version->DistReference = $package->getDist()->getReference(); $version->DistChecksum = $package->getDist()->getShasum(); } $version->Extra = $package->getExtra(); $version->Homepage = $package->getHomepage(); $version->License = $package->getLicense(); // $version->Support = $package->getSupport(); $addon->Versions()->add($version); $this->updateLinks($version, $package); $this->updateCompatibility($addon, $version, $package); $this->updateAuthors($version, $package); }