‪TYPO3CMS  11.5
IconRegistry.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
26 
32 {
36  protected ‪$fullInitialized = false;
37 
41  protected ‪$tcaInitialized = false;
42 
46  protected ‪$flagsInitialized = false;
47 
51  protected ‪$moduleIconsInitialized = false;
52 
56  protected ‪$backendIconsInitialized = false;
57 
63  protected ‪$icons = [];
64 
68  protected ‪$backendIconDeclaration = 'EXT:core/Resources/Public/Icons/T3Icons/icons.json';
69 
76  'png' => BitmapIconProvider::class,
77  'svg' => SvgIconProvider::class,
78  ];
79 
86  protected ‪$staticIcons = [
87 
94  ];
95 
101  protected ‪$fileExtensionMapping = [
102  'htm' => 'mimetypes-text-html',
103  'html' => 'mimetypes-text-html',
104  'css' => 'mimetypes-text-css',
105  'js' => 'mimetypes-text-js',
106  'csv' => 'mimetypes-text-csv',
107  'php' => 'mimetypes-text-php',
108  'php6' => 'mimetypes-text-php',
109  'php5' => 'mimetypes-text-php',
110  'php4' => 'mimetypes-text-php',
111  'php3' => 'mimetypes-text-php',
112  'inc' => 'mimetypes-text-php',
113  'ts' => 'mimetypes-text-ts',
114  'typoscript' => 'mimetypes-text-typoscript',
115  'txt' => 'mimetypes-text-text',
116  'class' => 'mimetypes-text-text',
117  'tmpl' => 'mimetypes-text-text',
118  'jpg' => 'mimetypes-media-image',
119  'jpeg' => 'mimetypes-media-image',
120  'gif' => 'mimetypes-media-image',
121  'png' => 'mimetypes-media-image',
122  'bmp' => 'mimetypes-media-image',
123  'tif' => 'mimetypes-media-image',
124  'tiff' => 'mimetypes-media-image',
125  'tga' => 'mimetypes-media-image',
126  'psd' => 'mimetypes-media-image',
127  'eps' => 'mimetypes-media-image',
128  'ai' => 'mimetypes-media-image',
129  'svg' => 'mimetypes-media-image',
130  'pcx' => 'mimetypes-media-image',
131  'avi' => 'mimetypes-media-video',
132  'mpg' => 'mimetypes-media-video',
133  'mpeg' => 'mimetypes-media-video',
134  'mov' => 'mimetypes-media-video',
135  'vimeo' => 'mimetypes-media-video-vimeo',
136  'youtube' => 'mimetypes-media-video-youtube',
137  'wav' => 'mimetypes-media-audio',
138  'mp3' => 'mimetypes-media-audio',
139  'ogg' => 'mimetypes-media-audio',
140  'flac' => 'mimetypes-media-audio',
141  'opus' => 'mimetypes-media-audio',
142  'mid' => 'mimetypes-media-audio',
143  'swf' => 'mimetypes-media-flash',
144  'swa' => 'mimetypes-media-flash',
145  'exe' => 'mimetypes-application',
146  'com' => 'mimetypes-application',
147  't3x' => 'mimetypes-compressed',
148  't3d' => 'mimetypes-compressed',
149  'zip' => 'mimetypes-compressed',
150  'tgz' => 'mimetypes-compressed',
151  'gz' => 'mimetypes-compressed',
152  'pdf' => 'mimetypes-pdf',
153  'doc' => 'mimetypes-word',
154  'dot' => 'mimetypes-word',
155  'docm' => 'mimetypes-word',
156  'docx' => 'mimetypes-word',
157  'dotm' => 'mimetypes-word',
158  'dotx' => 'mimetypes-word',
159  'sxw' => 'mimetypes-word',
160  'rtf' => 'mimetypes-word',
161  'xls' => 'mimetypes-excel',
162  'xlsm' => 'mimetypes-excel',
163  'xlsx' => 'mimetypes-excel',
164  'xltm' => 'mimetypes-excel',
165  'xltx' => 'mimetypes-excel',
166  'sxc' => 'mimetypes-excel',
167  'pps' => 'mimetypes-powerpoint',
168  'ppsx' => 'mimetypes-powerpoint',
169  'ppt' => 'mimetypes-powerpoint',
170  'pptm' => 'mimetypes-powerpoint',
171  'pptx' => 'mimetypes-powerpoint',
172  'potm' => 'mimetypes-powerpoint',
173  'potx' => 'mimetypes-powerpoint',
174  'mount' => 'apps-filetree-mount',
175  'folder' => 'apps-filetree-folder-default',
176  'default' => 'mimetypes-other-other',
177  ];
178 
184  protected ‪$mimeTypeMapping = [
185  'video/*' => 'mimetypes-media-video',
186  'audio/*' => 'mimetypes-media-audio',
187  'image/*' => 'mimetypes-media-image',
188  'text/*' => 'mimetypes-text-text',
189  ];
190 
194  protected $iconAliases = [];
195 
210  protected $deprecatedIcons = [];
211 
215  protected $defaultIconIdentifier = 'default-not-found';
216 
220  protected $cache;
221 
222  private string $cacheIdentifier;
223 
224  public function __construct(‪FrontendInterface $assetsCache, string $cacheIdentifier)
225  {
226  $this->‪cache = $assetsCache;
227  $this->‪cacheIdentifier = $cacheIdentifier;
228  $this->‪initialize();
229  }
230 
236  protected function ‪initialize()
237  {
238  if (!$this->backendIconsInitialized) {
239  $this->‪getCachedBackendIcons();
240  }
241  if (!$this->tcaInitialized && !empty(‪$GLOBALS['TCA'])) {
242  $this->‪registerTCAIcons();
243  }
244  if (!$this->moduleIconsInitialized && !empty(‪$GLOBALS['TBE_MODULES'])) {
245  $this->‪registerModuleIcons();
246  }
247  if (!$this->flagsInitialized) {
248  $this->‪registerFlags();
249  }
250  if ($this->backendIconsInitialized
251  && $this->tcaInitialized
252  && $this->moduleIconsInitialized
253  && $this->flagsInitialized) {
254  $this->fullInitialized = true;
255  }
256  }
257 
261  public function ‪getBackendIconsCacheIdentifier(): string
262  {
263  return $this->cacheIdentifier;
264  }
265 
269  protected function ‪getCachedBackendIcons()
270  {
271  $cacheIdentifier = $this->‪getBackendIconsCacheIdentifier();
272  $cacheEntry = $this->‪cache->get($cacheIdentifier);
273 
274  if ($cacheEntry !== false) {
275  $this->icons = $cacheEntry;
276  } else {
277  $this->‪registerBackendIcons();
278  // all found icons should now be present, for historic reasons now merge w/ the statically declared icons
279  $this->icons = array_merge($this->icons, $this->iconAliases, $this->staticIcons);
280  $this->‪cache->set($cacheIdentifier, $this->icons);
281  }
282  // if there's now at least one icon registered, consider it successful
283  if (is_array($this->icons) && (count($this->icons) >= count($this->staticIcons))) {
284  $this->backendIconsInitialized = true;
285  }
286  }
287 
291  protected function ‪registerBackendIcons(): void
292  {
293  ‪$dir = dirname($this->backendIconDeclaration);
294  $absoluteIconDeclarationPath = GeneralUtility::getFileAbsFileName($this->backendIconDeclaration);
295  $json = json_decode(file_get_contents($absoluteIconDeclarationPath) ?: '', true);
296  foreach ($json['icons'] ?? [] as $declaration) {
297  $iconOptions = [
298  'sprite' => ‪$dir . '/' . $declaration['sprite'],
299  'source' => ‪$dir . '/' . $declaration['svg'],
300  ];
301  // kind of hotfix for now, needs a nicer concept later
302  if ($declaration['category'] === 'spinner') {
303  $iconOptions['spinning'] = true;
304  }
305 
306  $this->‪registerIcon(
307  $declaration['identifier'],
308  SvgSpriteIconProvider::class,
309  $iconOptions
310  );
311  }
312 
313  foreach ($json['aliases'] as $alias => $identifier) {
314  $this->‪registerAlias($alias, $identifier);
315  }
316  }
317 
322  public function ‪isRegistered($identifier)
323  {
324  if (!$this->fullInitialized) {
325  $this->‪initialize();
326  }
327  return isset($this->icons[$identifier]);
328  }
329 
334  public function ‪isDeprecated($identifier)
335  {
336  return isset($this->deprecatedIcons[$identifier]);
337  }
338 
342  public function ‪getDefaultIconIdentifier()
343  {
344  return $this->defaultIconIdentifier;
345  }
346 
356  public function ‪registerIcon($identifier, $iconProviderClassName, array $options = [])
357  {
358  if (!in_array(IconProviderInterface::class, class_implements($iconProviderClassName) ?: [], true)) {
359  throw new \InvalidArgumentException('An IconProvider must implement '
360  . IconProviderInterface::class, 1437425803);
361  }
362  $this->icons[$identifier] = [
363  'provider' => $iconProviderClassName,
364  'options' => $options,
365  ];
366  }
367 
376  public function ‪registerAlias($alias, $identifier)
377  {
378  if (!isset($this->icons[$identifier])) {
379  throw new \InvalidArgumentException('No icon with identifier "' . $identifier . '" registered.', 1602251838);
380  }
381  $this->iconAliases[$alias] = $this->icons[$identifier];
382  }
383 
390  public function ‪registerFileExtension($fileExtension, $iconIdentifier)
391  {
392  $this->fileExtensionMapping[$fileExtension] = $iconIdentifier;
393  }
394 
401  public function ‪registerMimeTypeIcon($mimeType, $iconIdentifier)
402  {
403  $this->mimeTypeMapping[$mimeType] = $iconIdentifier;
404  }
405 
413  public function ‪getIconConfigurationByIdentifier($identifier)
414  {
415  if (!$this->fullInitialized) {
416  $this->‪initialize();
417  }
418  if ($this->‪isDeprecated($identifier)) {
419  $replacement = $this->deprecatedIcons[$identifier] ?? null;
420  if (!empty($replacement)) {
421  $message = 'The icon "%s" is deprecated since TYPO3 v9 and will be removed in TYPO3 v10.0. Please use "%s" instead.';
422  $arguments = [$identifier, $replacement];
423  $identifier = $replacement;
424  } else {
425  $message = 'The icon "%s" is deprecated since TYPO3 v9 and will be removed in TYPO3 v10.0.';
426  $arguments = [$identifier];
427  }
428  trigger_error(vsprintf($message, $arguments), E_USER_DEPRECATED);
429  }
430  if (!$this->‪isRegistered($identifier)) {
431  throw new Exception('Icon with identifier "' . $identifier . '" is not registered"', 1437425804);
432  }
433  return $this->icons[$identifier];
434  }
435 
439  public function ‪getAllRegisteredIconIdentifiers()
440  {
441  if (!$this->fullInitialized) {
442  $this->‪initialize();
443  }
444  return array_keys($this->icons);
445  }
446 
450  public function ‪getDeprecatedIcons(): array
451  {
452  return $this->deprecatedIcons;
453  }
454 
459  public function ‪getIconIdentifierForFileExtension($fileExtension)
460  {
461  // If the file extension is not valid use the default one
462  if (!isset($this->fileExtensionMapping[$fileExtension])) {
463  $fileExtension = 'default';
464  }
465  return $this->fileExtensionMapping[$fileExtension];
466  }
467 
474  public function ‪getIconIdentifierForMimeType($mimeType)
475  {
476  if (!isset($this->mimeTypeMapping[$mimeType])) {
477  return null;
478  }
479  return $this->mimeTypeMapping[$mimeType];
480  }
481 
485  protected function ‪registerTCAIcons()
486  {
487  $resultArray = [];
488 
489  $tcaTables = array_keys(‪$GLOBALS['TCA'] ?? []);
490  // check every table in the TCA, if an icon is needed
491  foreach ($tcaTables as $tableName) {
492  // This method is only needed for TCA tables where typeicon_classes are not configured
493  $iconIdentifier = 'tcarecords-' . $tableName . '-default';
494  if (
495  isset($this->icons[$iconIdentifier])
496  || !isset(‪$GLOBALS['TCA'][$tableName]['ctrl']['iconfile'])
497  ) {
498  continue;
499  }
500  $resultArray[$iconIdentifier] = ‪$GLOBALS['TCA'][$tableName]['ctrl']['iconfile'];
501  }
502 
503  foreach ($resultArray as $iconIdentifier => $iconFilePath) {
504  $iconProviderClass = $this->‪detectIconProvider($iconFilePath);
505  $this->icons[$iconIdentifier] = [
506  'provider' => $iconProviderClass,
507  'options' => [
508  'source' => $iconFilePath,
509  ],
510  ];
511  }
512  $this->tcaInitialized = true;
513  }
514 
518  protected function ‪registerModuleIcons()
519  {
520  $moduleConfiguration = ‪$GLOBALS['TBE_MODULES']['_configuration'] ?? [];
521  foreach ($moduleConfiguration as $moduleKey => $singleModuleConfiguration) {
522  $iconIdentifier = !empty($singleModuleConfiguration['iconIdentifier'])
523  ? $singleModuleConfiguration['iconIdentifier']
524  : null;
525 
526  if ($iconIdentifier !== null) {
527  // iconIdentifier found, icon is registered, continue
528  continue;
529  }
530 
531  $iconPath = !empty($singleModuleConfiguration['icon'])
532  ? $singleModuleConfiguration['icon']
533  : null;
534  $iconProviderClass = $this->‪detectIconProvider($iconPath);
535  $iconIdentifier = 'module-icon-' . $moduleKey;
536 
537  $this->icons[$iconIdentifier] = [
538  'provider' => $iconProviderClass,
539  'options' => [
540  'source' => $iconPath,
541  ],
542  ];
543  }
544  $this->moduleIconsInitialized = true;
545  }
546 
550  protected function ‪registerFlags()
551  {
552  $iconFolder = 'EXT:core/Resources/Public/Icons/Flags/';
553  $files = [
554  'AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AN', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ',
555  'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ',
556  'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CS', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ',
557  'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ',
558  'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'EU',
559  'FI', 'FJ', 'FK', 'FM', 'FO', 'FR',
560  'GA', 'GB-ENG', 'GB-NIR', 'GB-SCT', 'GB-WLS', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY',
561  'HK', 'HM', 'HN', 'HR', 'HT', 'HU',
562  'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT',
563  'JE', 'JM', 'JO', 'JP',
564  'KE', 'KG', 'KH', 'KI', 'KL', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ',
565  'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY',
566  'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MI', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ',
567  'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ',
568  'OM',
569  'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY',
570  'QA', 'QC',
571  'RE', 'RO', 'RS', 'RU', 'RW',
572  'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ',
573  'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ',
574  'UA', 'UG', 'UM', 'US', 'UY', 'UZ',
575  'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU',
576  'WF', 'WS',
577  'YE', 'YT',
578  'ZA', 'ZM', 'ZW',
579  // Special Flags
580  'catalonia',
581  'multiple',
582  'en-us-gb',
583  ];
584  foreach ($files as $file) {
585  $identifier = strtolower($file);
586  $this->icons['flags-' . $identifier] = [
587  'provider' => BitmapIconProvider::class,
588  'options' => [
589  'source' => $iconFolder . $file . '.png',
590  ],
591  ];
592  }
593  $this->flagsInitialized = true;
594  }
595 
602  public function ‪detectIconProvider($iconReference)
603  {
604  if (str_ends_with(strtolower((string)$iconReference), 'svg')) {
605  return SvgIconProvider::class;
606  }
607  return BitmapIconProvider::class;
608  }
609 
610  public function ‪warmupCaches(‪CacheWarmupEvent $event): void
611  {
612  if ($event->‪hasGroup('system')) {
613  $backupIcons = ‪$this->icons;
614  $backupAliases = $this->iconAliases;
615  $this->icons = [];
616  $this->iconAliases = [];
617 
618  $this->‪registerBackendIcons();
619  // all found icons should now be present, for historic reasons now merge w/ the statically declared icons
620  $this->icons = array_merge($this->icons, $this->iconAliases, $this->staticIcons);
621  $this->‪cache->set($this->‪getBackendIconsCacheIdentifier(), $this->icons);
622 
623  $this->icons = $backupIcons;
624  $this->iconAliases = $backupAliases;
625  }
626  }
627 }
‪TYPO3\CMS\Core\Imaging\IconRegistry\$staticIcons
‪array $staticIcons
Definition: IconRegistry.php:77
‪TYPO3\CMS\Core\Imaging
Definition: Dimension.php:16
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerMimeTypeIcon
‪registerMimeTypeIcon($mimeType, $iconIdentifier)
Definition: IconRegistry.php:386
‪TYPO3\CMS\Core\Imaging\IconRegistry\getIconIdentifierForMimeType
‪string null getIconIdentifierForMimeType($mimeType)
Definition: IconRegistry.php:459
‪TYPO3\CMS\Core\Imaging\IconRegistry\getIconIdentifierForFileExtension
‪string getIconIdentifierForFileExtension($fileExtension)
Definition: IconRegistry.php:444
‪TYPO3\CMS\Core\Imaging\IconRegistry\$icons
‪array $icons
Definition: IconRegistry.php:57
‪TYPO3\CMS\Core\Imaging\IconRegistry\getCachedBackendIcons
‪getCachedBackendIcons()
Definition: IconRegistry.php:254
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerFlags
‪registerFlags()
Definition: IconRegistry.php:535
‪TYPO3\CMS\Core\Exception
Definition: Exception.php:21
‪TYPO3\CMS\Core\Imaging\IconRegistry\$backendIconsInitialized
‪bool $backendIconsInitialized
Definition: IconRegistry.php:51
‪TYPO3\CMS\Core\Imaging\IconRegistry\$tcaInitialized
‪bool $tcaInitialized
Definition: IconRegistry.php:39
‪TYPO3\CMS\Core\Exception
‪TYPO3\CMS\Core\Imaging\IconRegistry\getDeprecatedIcons
‪array getDeprecatedIcons()
Definition: IconRegistry.php:435
‪$dir
‪$dir
Definition: validateRstFiles.php:213
‪TYPO3\CMS\Core\Cache\Event\CacheWarmupEvent
Definition: CacheWarmupEvent.php:24
‪TYPO3\CMS\Core\Imaging\IconRegistry\$fileExtensionMapping
‪string[] $fileExtensionMapping
Definition: IconRegistry.php:91
‪TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider
Definition: BitmapIconProvider.php:27
‪TYPO3\CMS\Core\Imaging\IconRegistry\getDefaultIconIdentifier
‪string getDefaultIconIdentifier()
Definition: IconRegistry.php:327
‪TYPO3\CMS\Core\Imaging\IconRegistry\$flagsInitialized
‪bool $flagsInitialized
Definition: IconRegistry.php:43
‪TYPO3\CMS\Core\Imaging\IconRegistry\isRegistered
‪bool isRegistered($identifier)
Definition: IconRegistry.php:307
‪TYPO3\CMS\Core\Imaging\IconRegistry\$mimeTypeMapping
‪string[] $mimeTypeMapping
Definition: IconRegistry.php:173
‪TYPO3\CMS\Core\Imaging\IconProvider\SvgSpriteIconProvider
Definition: SvgSpriteIconProvider.php:30
‪TYPO3\CMS\Core\Imaging\IconRegistry\isDeprecated
‪bool isDeprecated($identifier)
Definition: IconRegistry.php:319
‪TYPO3\CMS\Core\Imaging\IconRegistry\getIconConfigurationByIdentifier
‪mixed getIconConfigurationByIdentifier($identifier)
Definition: IconRegistry.php:398
‪TYPO3\CMS\Core\Imaging\IconRegistry\getAllRegisteredIconIdentifiers
‪array getAllRegisteredIconIdentifiers()
Definition: IconRegistry.php:424
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerIcon
‪registerIcon($identifier, $iconProviderClassName, array $options=[])
Definition: IconRegistry.php:341
‪TYPO3\CMS\Core\Imaging\IconRegistry\getBackendIconsCacheIdentifier
‪getBackendIconsCacheIdentifier()
Definition: IconRegistry.php:246
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerModuleIcons
‪registerModuleIcons()
Definition: IconRegistry.php:503
‪TYPO3\CMS\Core\Imaging\IconRegistry
Definition: IconRegistry.php:32
‪TYPO3\CMS\Core\Imaging\IconRegistry\$backendIconDeclaration
‪string $backendIconDeclaration
Definition: IconRegistry.php:61
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerFileExtension
‪registerFileExtension($fileExtension, $iconIdentifier)
Definition: IconRegistry.php:375
‪TYPO3\CMS\Core\Imaging\IconRegistry\$fullInitialized
‪bool $fullInitialized
Definition: IconRegistry.php:35
‪TYPO3\CMS\Core\Imaging\IconRegistry\warmupCaches
‪warmupCaches(CacheWarmupEvent $event)
Definition: IconRegistry.php:595
‪TYPO3\CMS\Core\Imaging\IconRegistry\$moduleIconsInitialized
‪bool $moduleIconsInitialized
Definition: IconRegistry.php:47
‪TYPO3\CMS\Core\Cache\Frontend\FrontendInterface
Definition: FrontendInterface.php:22
‪TYPO3\CMS\Core\Imaging\IconRegistry\cache
‪array< string, $iconAliases=array();protected array $deprecatedIcons=array();protected string $defaultIconIdentifier='default-not-found';protected FrontendInterface $cache;private string $cacheIdentifier;public function __construct(FrontendInterface $assetsCache, string $cacheIdentifier) { $this-> cache
Definition: IconRegistry.php:211
‪TYPO3\CMS\Core\SingletonInterface
Definition: SingletonInterface.php:22
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Imaging\IconRegistry\cacheIdentifier
‪$this cacheIdentifier
Definition: IconRegistry.php:212
‪TYPO3\CMS\Core\Imaging\IconRegistry\$backendIconAllowedExtensionsWithProvider
‪string[] $backendIconAllowedExtensionsWithProvider
Definition: IconRegistry.php:67
‪TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider
Definition: SvgIconProvider.php:26
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Core\Imaging\IconRegistry\initialize
‪initialize()
Definition: IconRegistry.php:221
‪TYPO3\CMS\Core\Imaging\IconRegistry\detectIconProvider
‪string detectIconProvider($iconReference)
Definition: IconRegistry.php:587
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerTCAIcons
‪registerTCAIcons()
Definition: IconRegistry.php:470
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerAlias
‪registerAlias($alias, $identifier)
Definition: IconRegistry.php:361
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerBackendIcons
‪registerBackendIcons()
Definition: IconRegistry.php:276
‪TYPO3\CMS\Core\Cache\Event\CacheWarmupEvent\hasGroup
‪hasGroup(string $group)
Definition: CacheWarmupEvent.php:38