/**
  * Downloads the extension the user wants to install
  * This is separated from downloading the dependencies
  * as an extension is able to provide it's own dependencies
  *
  * @param Extension $extension
  * @return void
  */
 public function downloadMainExtension(Extension $extension)
 {
     // The extension object has a uid if the extension is not present in the system
     // or an update of a present extension is triggered.
     if ($extension->getUid()) {
         $this->downloadUtility->download($extension);
     }
 }
Ejemplo n.º 2
0
 /**
  * Install an extension from TER
  *
  * @param \TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension
  * @param string $downloadPath
  * @throws \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException
  */
 public function installFromTerAction(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension, $downloadPath)
 {
     $result = FALSE;
     $errorMessage = '';
     try {
         $this->downloadUtility->setDownloadPath($downloadPath);
         $this->prepareExtensionForImport($extension);
         $result = $this->managementService->resolveDependenciesAndInstall($extension);
     } catch (\TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {
         $errorMessage = $e->getMessage();
     }
     $this->view->assign('result', $result)->assign('extension', $extension)->assign('errorMessage', $errorMessage);
 }
 /**
  * Install an action from TER
  * Downloads the extension, resolves dependencies and installs it
  *
  * @param \TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension
  * @param string $downloadPath
  * @return array
  */
 protected function installFromTer(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension, $downloadPath = 'Local')
 {
     $result = FALSE;
     $errorMessages = array();
     try {
         $this->downloadUtility->setDownloadPath($downloadPath);
         if (($result = $this->managementService->installExtension($extension)) === FALSE) {
             $errorMessages = $this->managementService->getDependencyErrors();
         }
     } catch (\TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {
         $errorMessages = array($extension->getExtensionKey() => array(array('code' => $e->getCode(), 'message' => $e->getMessage())));
     }
     return array($result, $errorMessages);
 }
Ejemplo n.º 4
0
 /**
  * Install an extension from TER
  * Downloads the extension, resolves dependencies and installs it
  *
  * @param \TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension
  * @param string $downloadPath
  * @return array
  */
 protected function installFromTer(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension $extension, $downloadPath = 'Local')
 {
     $result = false;
     $errorMessages = array();
     try {
         $this->downloadUtility->setDownloadPath($downloadPath);
         $this->managementService->setAutomaticInstallationEnabled($this->configurationUtility->getCurrentConfiguration('extensionmanager')['automaticInstallation']['value']);
         if (($result = $this->managementService->installExtension($extension)) === false) {
             $errorMessages = $this->managementService->getDependencyErrors();
         }
     } catch (\TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {
         $errorMessages = array($extension->getExtensionKey() => array(array('code' => $e->getCode(), 'message' => $e->getMessage())));
     }
     return array($result, $errorMessages);
 }
 /**
  * Download dependencies
  * expects an array of extension objects to download
  *
  * @param array<Tx_Extensionmanager_Domain_Model_Extension> $downloadQueue
  * @return array
  */
 protected function downloadDependencies(array $downloadQueue)
 {
     $resolvedDependencies = array();
     foreach ($downloadQueue as $extensionToDownload) {
         $this->downloadUtility->download($extensionToDownload);
         $this->downloadQueue->removeExtensionFromQueue($extensionToDownload);
         $resolvedDependencies['downloaded'][$extensionToDownload->getExtensionKey()] = $extensionToDownload;
         $this->markExtensionForInstallation($extensionToDownload->getExtensionKey());
     }
     return $resolvedDependencies;
 }
Ejemplo n.º 6
0
 /**
  * Install an extension from TER
  *
  * @throws \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException
  * @return void
  */
 public function installFromTerAction()
 {
     $result = FALSE;
     $errorMessage = '';
     try {
         if (!$this->request->hasArgument('extension')) {
             throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException('Required argument extension not set.', 1334433342);
         }
         $extensionUid = $this->request->getArgument('extension');
         if ($this->request->hasArgument('downloadPath')) {
             $this->downloadUtility->setDownloadPath($this->request->getArgument('downloadPath'));
         }
         /** @var $extension \TYPO3\CMS\Extensionmanager\Domain\Model\Extension */
         $extension = $this->extensionRepository->findByUid(intval($extensionUid));
         $this->prepareExtensionForImport($extension);
         $result = $this->managementService->resolveDependenciesAndInstall($extension);
     } catch (\TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException $e) {
         $errorMessage = $e->getMessage();
     }
     $this->view->assign('result', $result)->assign('extension', $extension)->assign('errorMessage', $errorMessage);
 }