コード例 #1
0
ファイル: ListUtility.php プロジェクト: plan2net/TYPO3.CMS
 /**
  * Returns the list of available, but not necessarily loaded extensions
  *
  * @return array[] All extensions with info
  */
 public function getAvailableExtensions()
 {
     $this->emitPackagesMayHaveChangedSignal();
     $extensions = array();
     foreach ($this->packageManager->getAvailablePackages() as $package) {
         $installationType = $this->getInstallTypeForPackage($package);
         $extensions[$package->getPackageKey()] = array('siteRelPath' => str_replace(PATH_site, '', $package->getPackagePath()), 'type' => $installationType, 'key' => $package->getPackageKey(), 'ext_icon' => ExtensionManagementUtility::getExtensionIcon($package->getPackagePath()));
     }
     return $extensions;
 }
コード例 #2
0
 /**
  * @param array $extensionEntry
  * @return string
  */
 protected function getExtensionIconWithPath($extensionEntry)
 {
     $extensionIcon = $GLOBALS['TYPO3_LOADED_EXT'][$extensionEntry['key']]['ext_icon'];
     if (empty($extensionIcon)) {
         $extensionIcon = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionIcon(PATH_site . $extensionEntry['siteRelPath'] . '/');
     }
     if (empty($extensionIcon)) {
         $extensionIcon = '/typo3/clear.gif';
     } else {
         $extensionIcon = '../' . $extensionEntry['siteRelPath'] . '/' . $extensionIcon;
     }
     return $extensionIcon;
 }
コード例 #3
0
ファイル: ListUtility.php プロジェクト: Mr-Robota/TYPO3.CMS
 /**
  * Returns the list of available, but not necessarily loaded extensions
  *
  * @return array Array with two sub-arrays, list array (all extensions with info) and category index
  * @see getInstExtList()
  */
 public function getAvailableExtensions()
 {
     $this->emitPackagesMayHaveChangedSignal();
     $extensions = array();
     foreach ($this->packageManager->getAvailablePackages() as $package) {
         // Only TYPO3 related packages could be handled by the extension manager
         // Composer packages from "Packages" folder will be instanciated as \TYPO3\Flow\Package\Package
         if (!$package instanceof \TYPO3\CMS\Core\Package\PackageInterface) {
             continue;
         }
         $installationType = $this->getInstallTypeForPackage($package);
         $extensions[$package->getPackageKey()] = array('siteRelPath' => str_replace(PATH_site, '', $package->getPackagePath()), 'type' => $installationType, 'key' => $package->getPackageKey(), 'ext_icon' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionIcon($package->getPackagePath()));
     }
     return $extensions;
 }
コード例 #4
0
ファイル: MiscUtility.php プロジェクト: plan2net/TYPO3.CMS
 /**
  * Returns the icon associated to a given document key.
  *
  * @param string $documentKey
  * @return string
  */
 public static function getIcon($documentKey)
 {
     $basePath = 'typo3conf/Documentation/';
     $documentPath = $basePath . $documentKey . '/';
     // Fallback icon
     $icon = ExtensionManagementUtility::siteRelPath('documentation') . 'ext_icon.png';
     if (\TYPO3\CMS\Core\Utility\GeneralUtility::isFirstPartOfStr($documentKey, 'typo3cms.extensions.')) {
         // Standard extension icon
         $extensionKey = substr($documentKey, 20);
         if (ExtensionManagementUtility::isLoaded($extensionKey)) {
             $extensionPath = ExtensionManagementUtility::extPath($extensionKey);
             $siteRelativePath = ExtensionManagementUtility::siteRelPath($extensionKey);
             $icon = $siteRelativePath . ExtensionManagementUtility::getExtensionIcon($extensionPath);
         }
     } elseif (is_file(PATH_site . $documentPath . 'icon.png')) {
         $icon = $documentPath . 'icon.png';
     } elseif (is_file(PATH_site . $documentPath . 'icon.gif')) {
         $icon = $documentPath . 'icon.gif';
     }
     return $icon;
 }
コード例 #5
0
 /**
  * Initialize extension icon
  *
  * @return void
  */
 protected function initializeExtensionIcon()
 {
     $this->extensionInformation['ext_icon'] = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionIcon($this->package->getPackagePath());
 }
コード例 #6
0
 /**
  * Returns the extension icon
  *
  * @param array $extensionEntry
  * @return string
  */
 protected function getExtensionIconWithPath($extensionEntry)
 {
     $extensionIcon = $GLOBALS['TYPO3_LOADED_EXT'][$extensionEntry['key']]['ext_icon'];
     if (empty($extensionIcon)) {
         $extensionIcon = ExtensionManagementUtility::getExtensionIcon(PATH_site . $extensionEntry['siteRelPath'] . '/');
     }
     if (empty($extensionIcon)) {
         $extensionIcon = ExtensionManagementUtility::siteRelPath('core') . 'ext_icon.png';
     } else {
         $extensionIcon = '../' . $extensionEntry['siteRelPath'] . '/' . $extensionIcon;
     }
     return $extensionIcon;
 }
コード例 #7
0
 /**
  * Returns the list of available, but not necessarily loaded extensions
  *
  * @return array Array with two sub-arrays, list array (all extensions with info) and category index
  * @see getInstExtList()
  */
 public function getAvailableExtensions()
 {
     $extensions = array();
     $paths = \TYPO3\CMS\Extensionmanager\Domain\Model\Extension::returnInstallPaths();
     foreach ($paths as $installationType => $path) {
         try {
             if (is_dir($path)) {
                 $extList = \TYPO3\CMS\Core\Utility\GeneralUtility::get_dirs($path);
                 if (is_array($extList)) {
                     foreach ($extList as $extKey) {
                         $extensions[$extKey] = array('siteRelPath' => str_replace(PATH_site, '', $path . $extKey), 'type' => $installationType, 'key' => $extKey, 'ext_icon' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionIcon($path . $extKey . '/'));
                     }
                 }
             }
         } catch (\Exception $e) {
             \TYPO3\CMS\Core\Utility\GeneralUtility::sysLog($e->getMessage(), 'extensionmanager');
         }
     }
     return $extensions;
 }