/** * 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; }
/** * @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; }
/** * 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; }
/** * 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; }
/** * Initialize extension icon * * @return void */ protected function initializeExtensionIcon() { $this->extensionInformation['ext_icon'] = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionIcon($this->package->getPackagePath()); }
/** * 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; }
/** * 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; }