/**
  * Save configuration and redirects back to form
  * or to the welcome page of a distribution
  *
  * @param array $config The new extension configuration
  * @param string $extensionKey The extension key
  * @return void
  */
 public function saveAction(array $config, $extensionKey)
 {
     $this->saveConfiguration($config, $extensionKey);
     /** @var Extension $extension */
     $extension = $this->extensionRepository->findOneByCurrentVersionByExtensionKey($extensionKey);
     // Different handling for distribution installation
     if ($extension instanceof Extension && $extension->getCategory() === Extension::DISTRIBUTION_CATEGORY) {
         $this->redirect('welcome', 'Distribution', NULL, array('extension' => $extension->getUid()));
     } else {
         $this->redirect('showConfigurationForm', NULL, NULL, array('extension' => array('key' => $extensionKey)));
     }
 }
 /**
  * Save configuration to file
  * Merges existing with new configuration.
  *
  * @param array $config The new extension configuration
  * @param string $extensionKey The extension key
  * @return void
  */
 public function saveAction(array $config, $extensionKey)
 {
     /** @var $configurationUtility \TYPO3\CMS\Extensionmanager\Utility\ConfigurationUtility */
     $configurationUtility = $this->objectManager->get('TYPO3\\CMS\\Extensionmanager\\Utility\\ConfigurationUtility');
     $newConfiguration = $configurationUtility->getCurrentConfiguration($extensionKey);
     \TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule($newConfiguration, $config);
     $configurationUtility->writeConfiguration($configurationUtility->convertValuedToNestedConfiguration($newConfiguration), $extensionKey);
     $this->emitAfterExtensionConfigurationWriteSignal($newConfiguration);
     /** @var Extension $extension */
     $extension = $this->extensionRepository->findOneByCurrentVersionByExtensionKey($extensionKey);
     // Different handling for distribution installation
     if ($extension instanceof Extension && $extension->getCategory() === Extension::DISTRIBUTION_CATEGORY) {
         $this->redirect('welcome', 'Distribution', NULL, array('extension' => $extension->getUid()));
     } else {
         $this->redirect('showConfigurationForm', NULL, NULL, array('extension' => array('key' => $extensionKey)));
     }
 }
Esempio n. 3
0
 /**
  * Shows all versions of a specific extension
  *
  * @param string $extensionKey
  * @return void
  */
 public function showAllVersionsAction($extensionKey)
 {
     $currentVersion = $this->extensionRepository->findOneByCurrentVersionByExtensionKey($extensionKey);
     $extensions = $this->extensionRepository->findByExtensionKeyOrderedByVersion($extensionKey);
     $this->view->assignMultiple(array('extensionKey' => $extensionKey, 'currentVersion' => $currentVersion, 'extensions' => $extensions));
 }