/**
  * 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);
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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])]);
 }
Example #4
0
 /**
  * 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();
 }