コード例 #1
0
 /**
  * Returns all objects of this repository.
  *
  * @return array
  */
 public function findAll()
 {
     if (!count($this->extensions)) {
         $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
         foreach ($availableAndInstalledExtensions as $entry) {
             /** @var $extension \TYPO3\CMS\Lang\Domain\Model\Extension */
             $extension = $this->objectManager->get('TYPO3\\CMS\\Lang\\Domain\\Model\\Extension', $entry['key'], $entry['title'], $this->getExtensionIconWithPath($entry));
             $extension->setVersionFromString($entry['version']);
             $this->extensions[$entry['key']] = $extension;
         }
         // Sort the list by extension key
         ksort($this->extensions);
     }
     return $this->extensions;
 }
コード例 #2
0
ファイル: ListController.php プロジェクト: hlop/TYPO3.CMS
 /**
  * Shows list of extensions present in the system
  *
  * @return void
  */
 public function indexAction()
 {
     $this->addComposerModeNotification();
     $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
     $this->view->assign('extensions', $availableAndInstalledExtensions);
     $this->handleTriggerArguments();
 }
コード例 #3
0
ファイル: ListController.php プロジェクト: plan2net/TYPO3.CMS
 /**
  * Shows extensions from TER
  * Either all extensions or depending on a search param
  *
  * @param string $search
  * @return void
  */
 public function terAction($search = '')
 {
     if (!empty($search)) {
         $extensions = $this->extensionRepository->findByTitleOrAuthorNameOrExtensionKey($search);
     } else {
         $extensions = $this->extensionRepository->findAll();
     }
     $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
     $this->view->assign('extensions', $extensions)->assign('search', $search)->assign('availableAndInstalled', $availableAndInstalledExtensions);
 }
コード例 #4
0
 /**
  * Returns all objects of this repository
  *
  * @return array The extensions
  */
 public function findAll()
 {
     if (empty($this->extensions)) {
         $extensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
         foreach ($extensions as $entry) {
             /** @var $extension \TYPO3\CMS\Lang\Domain\Model\Extension */
             $extension = $this->objectManager->get(Extension::class, $entry['key'], $entry['title'], $this->getExtensionIconWithPath($entry));
             $extension->setVersionFromString($entry['version']);
             if ($entry['ext_icon_width'] > 0) {
                 $extension->setIconWidth($entry['ext_icon_width']);
             }
             if ($entry['ext_icon_height'] > 0) {
                 $extension->setIconHeight($entry['ext_icon_height']);
             }
             $this->extensions[$entry['key']] = $extension;
         }
         ksort($this->extensions);
     }
     return $this->extensions;
 }
コード例 #5
0
 /**
  * Shows extensions from TER
  * Either all extensions or depending on a search param
  *
  * @return void
  */
 public function terAction()
 {
     $this->pageRenderer->addJsFile('../t3lib/js/extjs/notifications.js');
     $search = $this->getSearchParam();
     $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
     if (is_string($search) && !empty($search)) {
         $extensions = $this->extensionRepository->findByTitleOrAuthorNameOrExtensionKey($search);
     } else {
         $extensions = $this->extensionRepository->findAll();
     }
     $this->view->assign('extensions', $extensions)->assign('search', $search)->assign('availableAndInstalled', $availableAndInstalledExtensions);
 }
コード例 #6
0
 /**
  * @param string $extensionKey
  * @return array
  */
 public function findInstalledExtensionsThatDependOnMe($extensionKey)
 {
     $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
     $dependentExtensions = [];
     foreach ($availableAndInstalledExtensions as $availableAndInstalledExtensionKey => $availableAndInstalledExtension) {
         if (isset($availableAndInstalledExtension['installed']) && $availableAndInstalledExtension['installed'] === true) {
             if (is_array($availableAndInstalledExtension['constraints']) && is_array($availableAndInstalledExtension['constraints']['depends']) && array_key_exists($extensionKey, $availableAndInstalledExtension['constraints']['depends'])) {
                 $dependentExtensions[] = $availableAndInstalledExtensionKey;
             }
         }
     }
     return $dependentExtensions;
 }
コード例 #7
0
 /**
  * Get security status of loaded and installed extensions
  *
  * @return \stdClass with properties 'loaded' and 'existing' containing a TYPO3\CMS\Reports\Report\Status\Status object
  */
 protected function getSecurityStatusOfExtensions()
 {
     $extensionInformation = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
     $loadedInsecure = array();
     $existingInsecure = array();
     foreach ($extensionInformation as $extensionKey => $information) {
         if (array_key_exists('terObject', $information) && $information['terObject'] instanceof \TYPO3\CMS\Extensionmanager\Domain\Model\Extension) {
             /** @var $terObject \TYPO3\CMS\Extensionmanager\Domain\Model\Extension */
             $terObject = $information['terObject'];
             $insecureStatus = $terObject->getReviewState();
             if ($insecureStatus === -1) {
                 if (array_key_exists('installed', $information) && $information['installed'] === TRUE) {
                     $loadedInsecure[] = array('extensionKey' => $extensionKey, 'version' => $terObject->getVersion());
                 } else {
                     $existingInsecure[] = array('extensionKey' => $extensionKey, 'version' => $terObject->getVersion());
                 }
             }
         }
     }
     $result = new \stdClass();
     if (count($loadedInsecure) === 0) {
         $value = $GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.loadedExtensions.noInsecureExtensionLoaded.value');
         $message = '';
         $severity = \TYPO3\CMS\Reports\Status::OK;
     } else {
         $value = sprintf($GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.loadedExtensions.insecureExtensionLoaded.value'), count($loadedInsecure));
         $extensionList = array();
         foreach ($loadedInsecure as $insecureExtension) {
             $extensionList[] = sprintf($GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.loadedExtensions.insecureExtensionLoaded.message.extension'), $insecureExtension['extensionKey'], $insecureExtension['version']);
         }
         $message = sprintf($GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.loadedExtensions.insecureExtensionLoaded.message'), implode('', $extensionList));
         $severity = \TYPO3\CMS\Reports\Status::ERROR;
     }
     $result->loaded = $this->objectManager->get('TYPO3\\CMS\\Reports\\Status', $GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.loadedExtensions.title'), $value, $message, $severity);
     if (count($existingInsecure) === 0) {
         $value = $GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.existingExtensions.noInsecureExtensionExists.value');
         $message = '';
         $severity = \TYPO3\CMS\Reports\Status::OK;
     } else {
         $value = sprintf($GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.existingExtensions.insecureExtensionExists.value'), count($existingInsecure));
         $extensionList = array();
         foreach ($existingInsecure as $insecureExtension) {
             $extensionList[] = sprintf($GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.existingExtensions.insecureExtensionExists.message.extension'), $insecureExtension['extensionKey'], $insecureExtension['version']);
         }
         $message = sprintf($GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.existingExtensions.insecureExtensionExists.message'), implode('', $extensionList));
         $severity = \TYPO3\CMS\Reports\Status::WARNING;
     }
     $result->existing = $this->objectManager->get('TYPO3\\CMS\\Reports\\Status', $GLOBALS['LANG']->sL('LLL:EXT:extensionmanager/Resources/Private/Language/locallang.xlf:report.status.existingExtensions.title'), $value, $message, $severity);
     return $result;
 }
コード例 #8
0
 /**
  * Get security status of loaded and installed extensions
  *
  * @return \stdClass with properties 'loaded' and 'existing' containing a TYPO3\CMS\Reports\Report\Status\Status object
  */
 protected function getSecurityStatusOfExtensions()
 {
     $extensionInformation = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
     $loadedInsecure = array();
     $existingInsecure = array();
     $loadedOutdated = array();
     $existingOutdated = array();
     foreach ($extensionInformation as $extensionKey => $information) {
         if (array_key_exists('terObject', $information) && $information['terObject'] instanceof \TYPO3\CMS\Extensionmanager\Domain\Model\Extension) {
             /** @var $terObject \TYPO3\CMS\Extensionmanager\Domain\Model\Extension */
             $terObject = $information['terObject'];
             $insecureStatus = $terObject->getReviewState();
             if ($insecureStatus === -1) {
                 if (array_key_exists('installed', $information) && $information['installed'] === TRUE) {
                     $loadedInsecure[] = array('extensionKey' => $extensionKey, 'version' => $terObject->getVersion());
                 } else {
                     $existingInsecure[] = array('extensionKey' => $extensionKey, 'version' => $terObject->getVersion());
                 }
             } elseif ($insecureStatus === -2) {
                 if (array_key_exists('installed', $information) && $information['installed'] === TRUE) {
                     $loadedOutdated[] = array('extensionKey' => $extensionKey, 'version' => $terObject->getVersion());
                 } else {
                     $existingOutdated[] = array('extensionKey' => $extensionKey, 'version' => $terObject->getVersion());
                 }
             }
         }
     }
     $result = new \stdClass();
     if (empty($loadedInsecure)) {
         $value = $this->languageService->getLL('report.status.loadedExtensions.noInsecureExtensionLoaded.value');
         $message = '';
         $severity = \TYPO3\CMS\Reports\Status::OK;
     } else {
         $value = sprintf($this->languageService->getLL('report.status.loadedExtensions.insecureExtensionLoaded.value'), count($loadedInsecure));
         $extensionList = array();
         foreach ($loadedInsecure as $insecureExtension) {
             $extensionList[] = sprintf($this->languageService->getLL('report.status.loadedExtensions.insecureExtensionLoaded.message.extension'), $insecureExtension['extensionKey'], $insecureExtension['version']);
         }
         $message = sprintf($this->languageService->getLL('report.status.loadedExtensions.insecureExtensionLoaded.message'), implode('', $extensionList));
         $severity = \TYPO3\CMS\Reports\Status::ERROR;
     }
     $result->loaded = $this->objectManager->get(\TYPO3\CMS\Reports\Status::class, $this->languageService->getLL('report.status.loadedExtensions.title'), $value, $message, $severity);
     if (empty($existingInsecure)) {
         $value = $this->languageService->getLL('report.status.existingExtensions.noInsecureExtensionExists.value');
         $message = '';
         $severity = \TYPO3\CMS\Reports\Status::OK;
     } else {
         $value = sprintf($this->languageService->getLL('report.status.existingExtensions.insecureExtensionExists.value'), count($existingInsecure));
         $extensionList = array();
         foreach ($existingInsecure as $insecureExtension) {
             $extensionList[] = sprintf($this->languageService->getLL('report.status.existingExtensions.insecureExtensionExists.message.extension'), $insecureExtension['extensionKey'], $insecureExtension['version']);
         }
         $message = sprintf($this->languageService->getLL('report.status.existingExtensions.insecureExtensionExists.message'), implode('', $extensionList));
         $severity = \TYPO3\CMS\Reports\Status::WARNING;
     }
     $result->existing = $this->objectManager->get(\TYPO3\CMS\Reports\Status::class, $this->languageService->getLL('report.status.existingExtensions.title'), $value, $message, $severity);
     if (empty($loadedOutdated)) {
         $value = $this->languageService->getLL('report.status.loadedOutdatedExtensions.noOutdatedExtensionLoaded.value');
         $message = '';
         $severity = \TYPO3\CMS\Reports\Status::OK;
     } else {
         $value = sprintf($this->languageService->getLL('report.status.loadedOutdatedExtensions.outdatedExtensionLoaded.value'), count($loadedOutdated));
         $extensionList = array();
         foreach ($loadedOutdated as $outdatedExtension) {
             $extensionList[] = sprintf($this->languageService->getLL('report.status.loadedOutdatedExtensions.outdatedExtensionLoaded.message.extension'), $outdatedExtension['extensionKey'], $outdatedExtension['version']);
         }
         $message = sprintf($this->languageService->getLL('report.status.loadedOutdatedExtensions.outdatedExtensionLoaded.message'), implode('', $extensionList));
         $severity = \TYPO3\CMS\Reports\Status::WARNING;
     }
     $result->loadedoutdated = $this->objectManager->get(\TYPO3\CMS\Reports\Status::class, $this->languageService->getLL('report.status.loadedOutdatedExtensions.title'), $value, $message, $severity);
     if (empty($existingOutdated)) {
         $value = $this->languageService->getLL('report.status.existingOutdatedExtensions.noOutdatedExtensionExists.value');
         $message = '';
         $severity = \TYPO3\CMS\Reports\Status::OK;
     } else {
         $value = sprintf($this->languageService->getLL('report.status.existingOutdatedExtensions.outdatedExtensionExists.value'), count($existingOutdated));
         $extensionList = array();
         foreach ($existingOutdated as $outdatedExtension) {
             $extensionList[] = sprintf($this->languageService->getLL('report.status.existingOutdatedExtensions.outdatedExtensionExists.message.extension'), $outdatedExtension['extensionKey'], $outdatedExtension['version']);
         }
         $message = sprintf($this->languageService->getLL('report.status.existingOutdatedExtensions.outdatedExtensionExists.message'), implode('', $extensionList));
         $severity = \TYPO3\CMS\Reports\Status::WARNING;
     }
     $result->existingoutdated = $this->objectManager->get(\TYPO3\CMS\Reports\Status::class, $this->languageService->getLL('report.status.existingOutdatedExtensions.title'), $value, $message, $severity);
     return $result;
 }