2 namespace TYPO3\CMS\Backend\Sprite;
47 public static function initialize()
49 if (!static::isInitialized()) {
50 $cacheIdentifier = static::getCacheIdentifier();
53 if ($codeCache->has($cacheIdentifier)) {
54 $codeCache->requireOnce($cacheIdentifier);
56 static::buildSpriteDataAndCreateCacheEntry();
58 self::$isInitialized =
true;
70 return self::$isInitialized;
83 protected static function buildSpriteDataAndCreateCacheEntry()
85 $handlerClass =
$GLOBALS[
'TYPO3_CONF_VARS'][
'BE'][
'spriteIconGenerator_handler'];
90 throw new \RuntimeException(
'Class ' . $handlerClass .
' in $TYPO3_CONF_VARS[BE][spriteIconGenerator_handler] ' .
' does not implement ' . \TYPO3\CMS\Backend\Sprite\SpriteIconGeneratorInterface::class, 1294586333);
93 if (!is_dir((PATH_site . self::$tempPath))) {
99 $availableSkinIcons = (array)
$GLOBALS[
'TBE_STYLES'][
'spriteIconApi'][
'coreSpriteImageNames'];
100 if (isset(
$GLOBALS[
'TBE_STYLES'][
'skins']) && is_array(
$GLOBALS[
'TBE_STYLES'][
'skins'])) {
101 foreach (
$GLOBALS[
'TBE_STYLES'][
'skins'] as $skinData) {
102 $availableSkinIcons = array_merge($availableSkinIcons, (array)$skinData[
'availableSpriteIcons']);
107 $iconNames = array_merge($availableSkinIcons, (array)
$GLOBALS[
'TBE_STYLES'][
'spritemanager'][
'spriteIconsAvailable'], $handler->getAvailableIconNames());
108 $GLOBALS[
'TBE_STYLES'][
'spriteIconApi'][
'iconsAvailable'] = $iconNames;
110 $cacheFileContent =
'$GLOBALS[\'TBE_STYLES\'][\'spriteIconApi\'][\'iconsAvailable\'] = ';
111 $cacheFileContent .= var_export($iconNames,
true) .
';';
113 GeneralUtility::makeInstance(\TYPO3\CMS\Core\Cache\CacheManager::class)->getCache(
'cache_core')->set(static::getCacheIdentifier(), $cacheFileContent);
123 return 'sprites_' . sha1((TYPO3_version . PATH_site .
'spriteManagement'));
145 $GLOBALS[
'TBE_STYLES'][
'spritemanager'][
'spriteIconsAvailable'] = array_merge((array)$GLOBALS[
'TBE_STYLES'][
'spritemanager'][
'spriteIconsAvailable'], $icons);
146 if ($styleSheetFile !==
'') {
147 $GLOBALS[
'TBE_STYLES'][
'spritemanager'][
'cssFiles'][] = $styleSheetFile;
163 foreach ($icons as $iconName => $iconFile) {
164 $GLOBALS[
'TBE_STYLES'][
'spritemanager'][
'singleIcons'][
'extensions-' . $extKey .
'-' . $iconName] = $iconFile;
181 $GLOBALS[
'TBE_STYLES'][
'spritemanager'][
'singleIcons'][
'tcarecords-' . $table .
'-' . $type] = $iconFile;
182 if (is_array($GLOBALS[
'TCA'][$table][
'ctrl'][
'typeicon_classes'])) {
183 $GLOBALS[
'TCA'][$table][
'ctrl'][
'typeicon_classes'][$type] =
'tcarecords-' . $table .
'-' . $type;