/** * Show update comments for extensions that can be updated. * Fetches update comments for all versions between the current * installed and the highest version. * * @return void */ protected function updateCommentForUpdatableVersionsAction() { $extensionKey = $this->request->getArgument('extension'); $version = $this->request->getArgument('integerVersion'); $updateComments = array(); /** @var Extension[] $updatableVersions */ $updatableVersions = $this->extensionRepository->findByVersionRangeAndExtensionKeyOrderedByVersion($extensionKey, $version); foreach ($updatableVersions as $updatableVersion) { $updateComments[$updatableVersion->getVersion()] = $updatableVersion->getUpdateComment(); } $this->view->assign('updateComments', $updateComments)->assign('extensionKey', $extensionKey); }
/** * Returns the updateable version for an extension which also resolves dependencies. * * @internal * @param Extension $extensionData * @return bool|Extension FALSE if no update available otherwise latest possible update */ public function getUpdateableVersion(Extension $extensionData) { // Only check for update for TER extensions $version = $extensionData->getIntegerVersion(); /** @var $extensionUpdates[] \TYPO3\CMS\Extensionmanager\Domain\Model\Extension */ $extensionUpdates = $this->extensionRepository->findByVersionRangeAndExtensionKeyOrderedByVersion($extensionData->getExtensionKey(), $version + 1); if ($extensionUpdates->count() > 0) { foreach ($extensionUpdates as $extensionUpdate) { $this->dependencyUtility->checkDependencies($extensionUpdate); if (!$this->dependencyUtility->hasDependencyErrors()) { return $extensionUpdate; } } } return FALSE; }
/** * Show update comments for extensions that can be updated. * Fetches update comments for all versions between the current * installed and the highest version. * * @return void */ protected function updateCommentForUpdatableVersionsAction() { $extensionKey = $this->request->getArgument('extension'); $versionStart = $this->request->getArgument('integerVersionStart'); $versionStop = $this->request->getArgument('integerVersionStop'); $updateComments = []; /** @var Extension[] $updatableVersions */ $updatableVersions = $this->extensionRepository->findByVersionRangeAndExtensionKeyOrderedByVersion($extensionKey, $versionStart, $versionStop, false); $highestPossibleVersion = false; foreach ($updatableVersions as $updatableVersion) { if ($highestPossibleVersion === false) { $highestPossibleVersion = $updatableVersion->getVersion(); } $updateComments[$updatableVersion->getVersion()] = $updatableVersion->getUpdateComment(); } $this->view->assign('value', ['updateComments' => $updateComments, 'url' => $this->uriBuilder->uriFor('updateExtension', ['extension' => $extensionKey, 'version' => $highestPossibleVersion])]); }
/** * Get the latest compatible version of an extension that * fulfills the given dependency from TER * * @param Dependency $dependency * @return Extension */ protected function getLatestCompatibleExtensionByIntegerVersionDependency(Dependency $dependency) { $versions = $this->getLowestAndHighestIntegerVersions($dependency); $compatibleDataSets = $this->extensionRepository->findByVersionRangeAndExtensionKeyOrderedByVersion($dependency->getIdentifier(), $versions['lowestIntegerVersion'], $versions['highestIntegerVersion']); return $compatibleDataSets->getFirst(); }