[BUGFIX] Register missing icons and fix spriteicon registration
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Imaging / IconRegistry.php
1 <?php
2 namespace TYPO3\CMS\Core\Imaging;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3\CMS\Core\Exception;
18 use TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider;
19 use TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider;
20 use TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider;
21 use TYPO3\CMS\Core\Utility\GeneralUtility;
22 use TYPO3\CMS\Core\Utility\StringUtility;
23
24 /**
25 * Class IconRegistry, which makes it possible to register custom icons
26 * from within an extension.
27 */
28 class IconRegistry implements \TYPO3\CMS\Core\SingletonInterface {
29
30 /**
31 * @var bool
32 */
33 protected $tcaInitialized = FALSE;
34
35 /**
36 * @var bool
37 */
38 protected $flagsInitialized = FALSE;
39
40 /**
41 * Registered icons
42 *
43 * @var array
44 */
45 protected $icons = array(
46 // Default icon, fallback
47 'default-not-found' => array(
48 'provider' => SvgIconProvider::class,
49 'options' => array(
50 'source' => 'EXT:backend/Resources/Public/Icons/Default/default-not-found.svg',
51 )
52 ),
53
54 // App icons
55 'apps-clipboard-images' => array(
56 'provider' => BitmapIconProvider::class,
57 'options' => array(
58 'source' => 'EXT:t3skin/images/icons/apps/clipboard-images.png'
59 )
60 ),
61 'apps-clipboard-list' => array(
62 'provider' => BitmapIconProvider::class,
63 'options' => array(
64 'source' => 'EXT:t3skin/images/icons/apps/clipboard-list.png'
65 )
66 ),
67 'apps-filetree-folder-default' => array(
68 'provider' => SvgIconProvider::class,
69 'options' => array(
70 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-filetree-folder-default.svg'
71 )
72 ),
73 'apps-filetree-folder-locked' => array(
74 'provider' => SvgIconProvider::class,
75 'options' => array(
76 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-filetree-folder-locked.svg'
77 )
78 ),
79 'apps-filetree-folder-media' => array(
80 'provider' => BitmapIconProvider::class,
81 'options' => array(
82 'source' => 'EXT:t3skin/images/icons/apps/filetree-folder-media.png'
83 )
84 ),
85 'apps-filetree-folder-opened' => array(
86 'provider' => SvgIconProvider::class,
87 'options' => array(
88 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-filetree-folder-opened.svg',
89 )
90 ),
91 'apps-filetree-folder-recycler' => array(
92 'provider' => SvgIconProvider::class,
93 'options' => array(
94 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-filetree-folder-recycler.svg',
95 )
96 ),
97 'apps-filetree-folder-temp' => array(
98 'provider' => SvgIconProvider::class,
99 'options' => array(
100 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-filetree-folder-temp.svg',
101 )
102 ),
103 'apps-filetree-mount' => array(
104 'provider' => SvgIconProvider::class,
105 'options' => array(
106 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-filetree-mount.svg',
107 )
108 ),
109 'apps-filetree-root' => array(
110 'provider' => BitmapIconProvider::class,
111 'options' => array(
112 'source' => 'EXT:t3skin/images/icons/apps/filetree-root.png',
113 )
114 ),
115 'apps-toolbar-menu-cache' => array(
116 'provider' => FontawesomeIconProvider::class,
117 'options' => array(
118 'name' => 'bolt',
119 )
120 ),
121 'apps-toolbar-menu-shortcut' => array(
122 'provider' => FontawesomeIconProvider::class,
123 'options' => array(
124 'name' => 'star',
125 )
126 ),
127 'apps-toolbar-menu-workspace' => array(
128 'provider' => FontawesomeIconProvider::class,
129 'options' => array(
130 'name' => 'th-large',
131 )
132 ),
133 'apps-toolbar-menu-actions' => array(
134 'provider' => FontawesomeIconProvider::class,
135 'options' => array(
136 'name' => 'cog',
137 )
138 ),
139
140 'apps-pagetree-page-backend-users' => array(
141 'provider' => BitmapIconProvider::class,
142 'options' => array(
143 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-backend-users.png',
144 )
145 ),
146 'apps-pagetree-page-backend-users-hideinmenu' => array(
147 'provider' => BitmapIconProvider::class,
148 'options' => array(
149 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-backend-users-hideinmenu.png',
150 )
151 ),
152 'apps-pagetree-page-backend-users-root' => array(
153 'provider' => BitmapIconProvider::class,
154 'options' => array(
155 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-backend-users-root.png',
156 )
157 ),
158 'apps-pagetree-page-content-from-page' => array(
159 'provider' => BitmapIconProvider::class,
160 'options' => array(
161 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-content-from-page.png',
162 )
163 ),
164 'apps-pagetree-page-content-from-page-hideinmenu' => array(
165 'provider' => BitmapIconProvider::class,
166 'options' => array(
167 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-content-from-page-hideinmenu.png',
168 )
169 ),
170 'apps-pagetree-folder-contains-approve' => array(
171 'provider' => BitmapIconProvider::class,
172 'options' => array(
173 'source' => 'EXT:t3skin/images/icons/apps/pagetree-folder-contains-approve.png',
174 )
175 ),
176 'apps-pagetree-folder-contains-board' => array(
177 'provider' => BitmapIconProvider::class,
178 'options' => array(
179 'source' => 'EXT:t3skin/images/icons/apps/pagetree-folder-contains-board.png',
180 )
181 ),
182 'apps-pagetree-folder-contains-fe_users' => array(
183 'provider' => BitmapIconProvider::class,
184 'options' => array(
185 'source' => 'EXT:t3skin/images/icons/apps/pagetree-folder-contains-fe_users.png',
186 )
187 ),
188 'apps-pagetree-folder-contains-news' => array(
189 'provider' => BitmapIconProvider::class,
190 'options' => array(
191 'source' => 'EXT:t3skin/images/icons/apps/pagetree-folder-contains-news.png',
192 )
193 ),
194 'apps-pagetree-folder-contains-shop' => array(
195 'provider' => BitmapIconProvider::class,
196 'options' => array(
197 'source' => 'EXT:t3skin/images/icons/apps/pagetree-folder-contains-shop.png',
198 )
199 ),
200 'apps-pagetree-folder-default' => array(
201 'provider' => BitmapIconProvider::class,
202 'options' => array(
203 'source' => 'EXT:t3skin/images/icons/apps/pagetree-folder-default.png',
204 )
205 ),
206 'apps-pagetree-folder-hideinmenu' => array(
207 'provider' => BitmapIconProvider::class,
208 'options' => array(
209 'source' => 'EXT:t3skin/images/icons/apps/pagetree-folder-default.png',
210 )
211 ),
212 'apps-pagetree-folder-root' => array(
213 'provider' => BitmapIconProvider::class,
214 'options' => array(
215 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-domain.png',
216 )
217 ),
218 'apps-pagetree-page-domain' => array(
219 'provider' => BitmapIconProvider::class,
220 'options' => array(
221 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-domain.png',
222 )
223 ),
224 'apps-pagetree-page-default' => array(
225 'provider' => BitmapIconProvider::class,
226 'options' => array(
227 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-default.png',
228 )
229 ),
230 'apps-pagetree-page-mountpoint' => array(
231 'provider' => SvgIconProvider::class,
232 'options' => array(
233 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-filetree-mount.svg',
234 )
235 ),
236 'apps-pagetree-page-mountpoint-hideinmenu' => array(
237 'provider' => BitmapIconProvider::class,
238 'options' => array(
239 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-mountpoint-hideinmenu.png',
240 )
241 ),
242 'apps-pagetree-page-mountpoint-root' => array(
243 'provider' => BitmapIconProvider::class,
244 'options' => array(
245 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-mountpoint-root.png',
246 )
247 ),
248 'apps-pagetree-page-recycler' => array(
249 'provider' => BitmapIconProvider::class,
250 'options' => array(
251 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-recycler.png',
252 )
253 ),
254 'apps-pagetree-page-recycler-hideinmenu' => array(
255 'provider' => BitmapIconProvider::class,
256 'options' => array(
257 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-recycler.png',
258 )
259 ),
260 'apps-pagetree-page-not-in-menu' => array(
261 'provider' => BitmapIconProvider::class,
262 'options' => array(
263 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-not-in-menu.png',
264 )
265 ),
266 'apps-pagetree-page-shortcut-external' => array(
267 'provider' => BitmapIconProvider::class,
268 'options' => array(
269 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-shortcut-external.png',
270 )
271 ),
272 'apps-pagetree-page-shortcut' => array(
273 'provider' => BitmapIconProvider::class,
274 'options' => array(
275 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-shortcut.png',
276 )
277 ),
278 'apps-pagetree-page-shortcut-hideinmenu' => array(
279 'provider' => BitmapIconProvider::class,
280 'options' => array(
281 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-shortcut-hideinmenu.png',
282 )
283 ),
284 'apps-pagetree-page-shortcut-root' => array(
285 'provider' => BitmapIconProvider::class,
286 'options' => array(
287 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-shortcut-root.png',
288 )
289 ),
290 'apps-pagetree-page-shortcut-external-hideinmenu' => array(
291 'provider' => BitmapIconProvider::class,
292 'options' => array(
293 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-shortcut-external-hideinmenu.png',
294 )
295 ),
296 'apps-pagetree-page-shortcut-external-root' => array(
297 'provider' => BitmapIconProvider::class,
298 'options' => array(
299 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-shortcut-external-root.png',
300 )
301 ),
302 'apps-pagetree-spacer' => array(
303 'provider' => BitmapIconProvider::class,
304 'options' => array(
305 'source' => 'EXT:t3skin/images/icons/apps/pagetree-spacer.png',
306 )
307 ),
308 'apps-pagetree-spacer-hideinmenu' => array(
309 'provider' => BitmapIconProvider::class,
310 'options' => array(
311 'source' => 'EXT:t3skin/images/icons/apps/pagetree-spacer.png',
312 )
313 ),
314 'apps-pagetree-spacer-root' => array(
315 'provider' => BitmapIconProvider::class,
316 'options' => array(
317 'source' => 'EXT:t3skin/images/icons/apps/pagetree-page-domain.png',
318 )
319 ),
320
321
322
323
324
325 'apps-pagetree-root' => array(
326 'provider' => SvgIconProvider::class,
327 'options' => array(
328 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-pagetree-root.svg',
329 )
330 ),
331 'apps-toolbar-menu-opendocs' => array(
332 'provider' => FontawesomeIconProvider::class,
333 'options' => array(
334 'name' => 'file',
335 )
336 ),
337 'apps-toolbar-menu-search' => array(
338 'provider' => SvgIconProvider::class,
339 'options' => array(
340 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-toolbar-menu-search.svg',
341 )
342 ),
343
344 // Action Icons
345 'apps-pagetree-collapse' => array(
346 'provider' => FontawesomeIconProvider::class,
347 'options' => array(
348 'name' => 'caret-right',
349 )
350 ),
351 'actions-document-close' => array(
352 'provider' => FontawesomeIconProvider::class,
353 'options' => array(
354 'name' => 'close',
355 )
356 ),
357 'actions-document-duplicates-select' => array(
358 'provider' => SvgIconProvider::class,
359 'options' => array(
360 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-duplicates-select.svg',
361 )
362 ),
363 'actions-document-export-csv' => array(
364 'provider' => SvgIconProvider::class,
365 'options' => array(
366 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-export-csv.svg',
367 )
368 ),
369 'actions-document-edit-access' => array(
370 'provider' => FontawesomeIconProvider::class,
371 'options' => array(
372 'name' => 'clock-o',
373 )
374 ),
375 'actions-document-export-t3d' => array(
376 'provider' => FontawesomeIconProvider::class,
377 'options' => array(
378 'name' => 'download',
379 )
380 ),
381 'actions-document-history-open' => array(
382 'provider' => FontawesomeIconProvider::class,
383 'options' => array(
384 'name' => 'history',
385 )
386 ),
387 'actions-document-info' => array(
388 'provider' => FontawesomeIconProvider::class,
389 'options' => array(
390 'name' => 'info-circle',
391 )
392 ),
393 'actions-document-import-t3d' => array(
394 'provider' => FontawesomeIconProvider::class,
395 'options' => array(
396 'name' => 'upload',
397 )
398 ),
399 'actions-document-localize' => array(
400 'provider' => BitmapIconProvider::class,
401 'options' => array(
402 'source' => 'EXT:t3skin/images/icons/actions/document-localize.png',
403 )
404 ),
405 'actions-document-move' => array(
406 'provider' => FontawesomeIconProvider::class,
407 'options' => array(
408 'name' => 'arrows',
409 )
410 ),
411 'actions-document-new' => array(
412 'provider' => FontawesomeIconProvider::class,
413 'options' => array(
414 'name' => 'plus-square',
415 )
416 ),
417 'actions-document-open' => array(
418 'provider' => FontawesomeIconProvider::class,
419 'options' => array(
420 'name' => 'pencil',
421 )
422 ),
423 'actions-document-paste' => array(
424 'provider' => SvgIconProvider::class,
425 'options' => array(
426 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-paste.svg',
427 )
428 ),
429 'actions-document-paste-after' => array(
430 'provider' => SvgIconProvider::class,
431 'options' => array(
432 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-paste-after.svg',
433 )
434 ),
435 'actions-document-paste-before' => array(
436 'provider' => SvgIconProvider::class,
437 'options' => array(
438 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-paste-before.svg',
439 )
440 ),
441 'actions-document-paste-into' => array(
442 'provider' => SvgIconProvider::class,
443 'options' => array(
444 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-paste-into.svg',
445 )
446 ),
447 'actions-document-select' => array(
448 'provider' => FontawesomeIconProvider::class,
449 'options' => array(
450 'name' => 'check-square-o',
451 )
452 ),
453 'actions-document-save' => array(
454 'provider' => SvgIconProvider::class,
455 'options' => array(
456 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-save.svg',
457 )
458 ),
459 'actions-document-save-cleartranslationcache' => array(
460 'provider' => SvgIconProvider::class,
461 'options' => array(
462 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-save-cleartranslationcache.svg',
463 )
464 ),
465 'actions-document-save-close' => array(
466 'provider' => SvgIconProvider::class,
467 'options' => array(
468 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-save-close.svg',
469 )
470 ),
471 'actions-document-save-new' => array(
472 'provider' => SvgIconProvider::class,
473 'options' => array(
474 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-save-new.svg',
475 )
476 ),
477 'actions-document-save-translation' => array(
478 'provider' => SvgIconProvider::class,
479 'options' => array(
480 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-save-translation.svg',
481 )
482 ),
483 'actions-document-save-view' => array(
484 'provider' => SvgIconProvider::class,
485 'options' => array(
486 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-document-save-view.svg',
487 )
488 ),
489 'actions-document-synchronize' => array(
490 'provider' => BitmapIconProvider::class,
491 'options' => array(
492 'source' => 'EXT:t3skin/images/icons/actions/document-synchronize.png'
493 )
494 ),
495 'actions-document-view' => array(
496 'provider' => FontawesomeIconProvider::class,
497 'options' => array(
498 'name' => 'desktop',
499 )
500 ),
501 'actions-edit-copy' => array(
502 'provider' => FontawesomeIconProvider::class,
503 'options' => array(
504 'name' => 'copy',
505 )
506 ),
507 'actions-edit-copy-release' => array(
508 'provider' => FontawesomeIconProvider::class,
509 'options' => array(
510 'name' => 'copy',
511 )
512 ),
513 'actions-edit-cut' => array(
514 'provider' => FontawesomeIconProvider::class,
515 'options' => array(
516 'name' => 'scissors',
517 )
518 ),
519 'actions-edit-cut-release' => array(
520 'provider' => FontawesomeIconProvider::class,
521 'options' => array(
522 'name' => 'scissors',
523 )
524 ),
525 'actions-edit-download' => array(
526 'provider' => FontawesomeIconProvider::class,
527 'options' => array(
528 'name' => 'download',
529 )
530 ),
531 'actions-edit-add' => array(
532 'provider' => FontawesomeIconProvider::class,
533 'options' => array(
534 'name' => 'plus-circle',
535 )
536 ),
537 'actions-edit-delete' => array(
538 'provider' => FontawesomeIconProvider::class,
539 'options' => array(
540 'name' => 'trash',
541 )
542 ),
543 'actions-edit-localize-status-low' => array(
544 'provider' => BitmapIconProvider::class,
545 'options' => array(
546 'source' => 'EXT:t3skin/images/icons/actions/edit-localize-status-low.png',
547 )
548 ),
549 'actions-edit-localize-status-high' => array(
550 'provider' => BitmapIconProvider::class,
551 'options' => array(
552 'source' => 'EXT:t3skin/images/icons/actions/edit-localize-status-high.png',
553 )
554 ),
555 'actions-edit-merge-localization' => array(
556 'provider' => BitmapIconProvider::class,
557 'options' => array(
558 'source' => 'EXT:t3skin/images/icons/actions/edit-merge-localization.png',
559 )
560 ),
561 'actions-edit-pick-date' => array(
562 'provider' => FontawesomeIconProvider::class,
563 'options' => array(
564 'name' => 'calendar',
565 )
566 ),
567 'actions-edit-rename' => array(
568 'provider' => SvgIconProvider::class,
569 'options' => array(
570 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-edit-rename.svg',
571 )
572 ),
573 'actions-edit-hide' => array(
574 'provider' => FontawesomeIconProvider::class,
575 'options' => array(
576 'name' => 'toggle-on',
577 )
578 ),
579 'actions-edit-replace' => array(
580 'provider' => FontawesomeIconProvider::class,
581 'options' => array(
582 'name' => 'retweet',
583 )
584 ),
585 'actions-edit-restore' => array(
586 'provider' => BitmapIconProvider::class,
587 'options' => array(
588 'source' => 'EXT:t3skin/images/icons/actions/edit-restore.png',
589 )
590 ),
591 'actions-edit-restore-edit' => array(
592 'provider' => BitmapIconProvider::class,
593 'options' => array(
594 'source' => 'EXT:t3skin/images/icons/actions/edit-undelete-edit.png',
595 )
596 ),
597 'actions-edit-undo' => array(
598 'provider' => FontawesomeIconProvider::class,
599 'options' => array(
600 'name' => 'undo',
601 )
602 ),
603 'actions-edit-unhide' => array(
604 'provider' => FontawesomeIconProvider::class,
605 'options' => array(
606 'name' => 'toggle-off',
607 )
608 ),
609 'actions-edit-upload' => array(
610 'provider' => FontawesomeIconProvider::class,
611 'options' => array(
612 'name' => 'upload',
613 )
614 ),
615 'actions-filter' => array(
616 'provider' => SvgIconProvider::class,
617 'options' => array(
618 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-filter.svg',
619 )
620 ),
621 'actions-input-clear' => array(
622 'provider' => FontawesomeIconProvider::class,
623 'options' => array(
624 'name' => 'times-circle',
625 )
626 ),
627 'actions-insert-record' => array(
628 'provider' => BitmapIconProvider::class,
629 'options' => array(
630 'source' => 'EXT:t3skin/images/icons/actions/insert-record.png',
631 )
632 ),
633 'actions-insert-reference' => array(
634 'provider' => BitmapIconProvider::class,
635 'options' => array(
636 'source' => 'EXT:t3skin/images/icons/actions/insert-reference.png',
637 )
638 ),
639 'actions-markstate' => array(
640 'provider' => FontawesomeIconProvider::class,
641 'options' => array(
642 'name' => 'square-o',
643 )
644 ),
645 'actions-page-new' => array(
646 'provider' => SvgIconProvider::class,
647 'options' => array(
648 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-page-new.svg',
649 )
650 ),
651 'actions-page-move' => array(
652 'provider' => SvgIconProvider::class,
653 'options' => array(
654 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-page-move.svg',
655 ),
656 ),
657 'actions-move' => array(
658 'provider' => FontawesomeIconProvider::class,
659 'options' => array(
660 'name' => 'arrows',
661 )
662 ),
663 'actions-move-down' => array(
664 'provider' => FontawesomeIconProvider::class,
665 'options' => array(
666 'name' => 'angle-down',
667 )
668 ),
669 'actions-move-left' => array(
670 'provider' => FontawesomeIconProvider::class,
671 'options' => array(
672 'name' => 'angle-left',
673 )
674 ),
675 'actions-move-move' => array(
676 'provider' => FontawesomeIconProvider::class,
677 'options' => array(
678 'name' => 'bars',
679 )
680 ),
681 'actions-move-right' => array(
682 'provider' => FontawesomeIconProvider::class,
683 'options' => array(
684 'name' => 'angle-right',
685 )
686 ),
687 'actions-move-to-bottom' => array(
688 'provider' => FontawesomeIconProvider::class,
689 'options' => array(
690 'name' => 'angle-double-down',
691 )
692 ),
693 'actions-move-to-top' => array(
694 'provider' => FontawesomeIconProvider::class,
695 'options' => array(
696 'name' => 'angle-double-up',
697 )
698 ),
699 'actions-move-up' => array(
700 'provider' => FontawesomeIconProvider::class,
701 'options' => array(
702 'name' => 'angle-up',
703 )
704 ),
705 'actions-page-open' => array(
706 'provider' => SvgIconProvider::class,
707 'options' => array(
708 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-page-open.svg',
709 )
710 ),
711 'actions-pagetree-collapse' => array(
712 'provider' => FontawesomeIconProvider::class,
713 'options' => array(
714 'name' => 'caret-right',
715 )
716 ),
717 'actions-pagetree-expand' => array(
718 'provider' => FontawesomeIconProvider::class,
719 'options' => array(
720 'name' => 'caret-down',
721 )
722 ),
723 'actions-pagetree-mountroot' => array(
724 'provider' => FontawesomeIconProvider::class,
725 'options' => array(
726 'name' => 'anchor',
727 )
728 ),
729 'actions-refresh' => array(
730 'provider' => SvgIconProvider::class,
731 'options' => array(
732 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-refresh.svg',
733 )
734 ),
735 'actions-selection-delete' => array(
736 'provider' => FontawesomeIconProvider::class,
737 'options' => array(
738 'name' => 'trash',
739 )
740 ),
741 'actions-search' => array(
742 'provider' => SvgIconProvider::class,
743 'options' => array(
744 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-search.svg',
745 )
746 ),
747 'actions-system-backend-user-switch' => array(
748 'provider' => FontawesomeIconProvider::class,
749 'options' => array(
750 'name' => 'sign-out',
751 )
752 ),
753 'actions-system-cache-clear' => array(
754 'provider' => FontawesomeIconProvider::class,
755 'options' => array(
756 'name' => 'bolt',
757 )
758 ),
759 'actions-system-cache-clear-impact-low' => array(
760 'provider' => SvgIconProvider::class,
761 'options' => array(
762 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-system-cache-clear-impact-low.svg',
763 )
764 ),
765 'actions-system-cache-clear-impact-medium' => array(
766 'provider' => SvgIconProvider::class,
767 'options' => array(
768 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-system-cache-clear-impact-medium.svg',
769 )
770 ),
771 'actions-system-cache-clear-impact-high' => array(
772 'provider' => SvgIconProvider::class,
773 'options' => array(
774 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-system-cache-clear-impact-high.svg',
775 )
776 ),
777 'actions-system-help-open' => array(
778 'provider' => SvgIconProvider::class,
779 'options' => array(
780 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-system-help-open.svg',
781 )
782 ),
783 'actions-system-extension-configure' => array(
784 'provider' => FontawesomeIconProvider::class,
785 'options' => array(
786 'name' => 'gear',
787 )
788 ),
789 'actions-system-extension-download' => array(
790 'provider' => FontawesomeIconProvider::class,
791 'options' => array(
792 'name' => 'download',
793 )
794 ),
795 'actions-system-extension-install' => array(
796 'provider' => FontawesomeIconProvider::class,
797 'options' => array(
798 'name' => 'plus-circle',
799 )
800 ),
801 'actions-system-extension-import' => array(
802 'provider' => FontawesomeIconProvider::class,
803 'options' => array(
804 'name' => 'cloud-download',
805 )
806 ),
807 'actions-system-extension-uninstall' => array(
808 'provider' => FontawesomeIconProvider::class,
809 'options' => array(
810 'name' => 'minus-square',
811 )
812 ),
813 'actions-system-extension-sqldump' => array(
814 'provider' => FontawesomeIconProvider::class,
815 'options' => array(
816 'name' => 'database',
817 )
818 ),
819 'actions-system-extension-update' => array(
820 'provider' => FontawesomeIconProvider::class,
821 'options' => array(
822 'name' => 'refresh',
823 )
824 ),
825 'actions-system-list-open' => array(
826 'provider' => FontawesomeIconProvider::class,
827 'options' => array(
828 'name' => 'list-alt',
829 )
830 ),
831 'actions-system-shortcut-new' => array(
832 'provider' => FontawesomeIconProvider::class,
833 'options' => array(
834 'name' => 'star',
835 )
836 ),
837 'actions-version-open' => array(
838 'provider' => FontawesomeIconProvider::class,
839 'options' => array(
840 'name' => 'refresh',
841 )
842 ),
843 'actions-system-tree-search-open' => array(
844 'provider' => SvgIconProvider::class,
845 'options' => array(
846 'source' => 'EXT:backend/Resources/Public/Icons/Action/actions-system-tree-search-open.svg',
847 )
848 ),
849 'actions-version-swap-version' => array(
850 'provider' => FontawesomeIconProvider::class,
851 'options' => array(
852 'name' => 'exchange',
853 )
854 ),
855 'actions-unmarkstate' => array(
856 'provider' => FontawesomeIconProvider::class,
857 'options' => array(
858 'name' => 'check-square-o',
859 )
860 ),
861 'actions-view-list-collapse' => array(
862 'provider' => FontawesomeIconProvider::class,
863 'options' => array(
864 'name' => 'chevron-up',
865 )
866 ),
867 'actions-view-list-expand' => array(
868 'provider' => FontawesomeIconProvider::class,
869 'options' => array(
870 'name' => 'chevron-down',
871 )
872 ),
873 'actions-view-go-back' => array(
874 'provider' => FontawesomeIconProvider::class,
875 'options' => array(
876 'name' => 'angle-double-left',
877 )
878 ),
879 'actions-view-go-forward' => array(
880 'provider' => FontawesomeIconProvider::class,
881 'options' => array(
882 'name' => 'angle-double-right',
883 )
884 ),
885 'actions-view-go-up' => array(
886 'provider' => FontawesomeIconProvider::class,
887 'options' => array(
888 'name' => 'level-up',
889 )
890 ),
891 'actions-view-paging-first' => array(
892 'provider' => FontawesomeIconProvider::class,
893 'options' => array(
894 'name' => 'step-backward',
895 )
896 ),
897 'actions-view-paging-last' => array(
898 'provider' => FontawesomeIconProvider::class,
899 'options' => array(
900 'name' => 'step-forward',
901 )
902 ),
903 'actions-view-paging-previous' => array(
904 'provider' => FontawesomeIconProvider::class,
905 'options' => array(
906 'name' => 'arrow-left',
907 )
908 ),
909 'actions-view-paging-next' => array(
910 'provider' => FontawesomeIconProvider::class,
911 'options' => array(
912 'name' => 'arrow-right',
913 )
914 ),
915 'actions-view-table-collapse' => array(
916 'provider' => FontawesomeIconProvider::class,
917 'options' => array(
918 'name' => 'chevron-left',
919 )
920 ),
921 'actions-view-table-expand' => array(
922 'provider' => FontawesomeIconProvider::class,
923 'options' => array(
924 'name' => 'chevron-right',
925 )
926 ),
927 'actions-window-open' => array(
928 'provider' => FontawesomeIconProvider::class,
929 'options' => array(
930 'name' => 'arrows-alt',
931 )
932 ),
933 'actions-template-new' => array(
934 'provider' => BitmapIconProvider::class,
935 'options' => array(
936 'source' => 'EXT:t3skin/images/icons/actions/template-new.png',
937 )
938 ),
939 'actions-online-media-add' => array(
940 'provider' => FontawesomeIconProvider::class,
941 'options' => array(
942 'name' => 'cloud',
943 )
944 ),
945
946 // Extensions
947 'extensions-extensionmanager-update-script' => array(
948 'provider' => FontawesomeIconProvider::class,
949 'options' => array(
950 'name' => 'refresh',
951 )
952 ),
953 'extensions-scheduler-run-task' => array(
954 'provider' => FontawesomeIconProvider::class,
955 'options' => array(
956 'name' => 'play-circle',
957 )
958 ),
959
960 // specials
961 'empty-empty' => array(
962 'provider' => FontawesomeIconProvider::class,
963 'options' => array(
964 'name' => 'empty-empty',
965 )
966 ),
967
968 // Miscellaneous icons
969 'miscellaneous-placeholder' => array(
970 'provider' => SvgIconProvider::class,
971 'options' => array(
972 'source' => 'EXT:backend/Resources/Public/Icons/Miscellaneous/miscellaneous-placeholder.svg',
973 )
974 ),
975
976 // Content Elements
977 'content-header' => array(
978 'provider' => SvgIconProvider::class,
979 'options' => array(
980 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-header.svg'
981 )
982 ),
983 'content-text' => array(
984 'provider' => SvgIconProvider::class,
985 'options' => array(
986 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-text.svg'
987 )
988 ),
989 'content-textpic' => array(
990 'provider' => SvgIconProvider::class,
991 'options' => array(
992 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-textpic.svg'
993 )
994 ),
995 'content-image' => array(
996 'provider' => SvgIconProvider::class,
997 'options' => array(
998 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-image.svg'
999 )
1000 ),
1001 'content-bullets' => array(
1002 'provider' => SvgIconProvider::class,
1003 'options' => array(
1004 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-bullets.svg'
1005 )
1006 ),
1007 'content-table' => array(
1008 'provider' => SvgIconProvider::class,
1009 'options' => array(
1010 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-table.svg'
1011 )
1012 ),
1013 'content-elements-login' => array(
1014 'provider' => BitmapIconProvider::class,
1015 'options' => array(
1016 'source' => 'EXT:frontend/Resources/Public/Icons/ContentElementWizard/login_form.gif'
1017 )
1018 ),
1019 'content-elements-mailform' => array(
1020 'provider' => BitmapIconProvider::class,
1021 'options' => array(
1022 'source' => 'EXT:frontend/Resources/Public/Icons/ContentElementWizard/mailform.gif'
1023 )
1024 ),
1025 'content-elements-searchform' => array(
1026 'provider' => BitmapIconProvider::class,
1027 'options' => array(
1028 'source' => 'EXT:frontend/Resources/Public/Icons/ContentElementWizard/searchform.gif'
1029 )
1030 ),
1031 'content-special-uploads' => array(
1032 'provider' => BitmapIconProvider::class,
1033 'options' => array(
1034 'source' => 'EXT:frontend/Resources/Public/Icons/ContentElementWizard/filelinks.gif'
1035 )
1036 ),
1037 'content-special-menu' => array(
1038 'provider' => SvgIconProvider::class,
1039 'options' => array(
1040 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-special-menu.svg'
1041 )
1042 ),
1043 'content-special-media' => array(
1044 'provider' => BitmapIconProvider::class,
1045 'options' => array(
1046 'source' => 'EXT:frontend/Resources/Public/Icons/ContentElementWizard/multimedia.gif'
1047 )
1048 ),
1049 'content-special-indexed_search' => array(
1050 'provider' => BitmapIconProvider::class,
1051 'options' => array(
1052 'source' => 'EXT:indexed_search/Resources/Public/Images/ce_wiz.png'
1053 )
1054 ),
1055 'content-special-html' => array(
1056 'provider' => SvgIconProvider::class,
1057 'options' => array(
1058 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-special-html.svg'
1059 )
1060 ),
1061 'content-special-div' => array(
1062 'provider' => SvgIconProvider::class,
1063 'options' => array(
1064 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-special-divider.svg'
1065 )
1066 ),
1067 'content-special-shortcut' => array(
1068 'provider' => BitmapIconProvider::class,
1069 'options' => array(
1070 'source' => 'EXT:frontend/Resources/Public/Icons/ContentElementWizard/shortcut.gif'
1071 )
1072 ),
1073 'content-plugin' => array(
1074 'provider' => SvgIconProvider::class,
1075 'options' => array(
1076 'source' => 'EXT:backend/Resources/Public/Icons/ContentElement/content-plugin.svg'
1077 )
1078 ),
1079
1080 // Status
1081 'status-user-admin' => array(
1082 'provider' => BitmapIconProvider::class,
1083 'options' => array(
1084 'source' => 'EXT:t3skin/images/icons/status/user-admin.png'
1085 )
1086 ),
1087 'status-user-backend' => array(
1088 'provider' => BitmapIconProvider::class,
1089 'options' => array(
1090 'source' => 'EXT:t3skin/images/icons/status/user-backend.png'
1091 )
1092 ),
1093 'status-user-frontend' => array(
1094 'provider' => BitmapIconProvider::class,
1095 'options' => array(
1096 'source' => 'EXT:t3skin/images/icons/status/user-frontend.png'
1097 )
1098 ),
1099 'status-user-group-backend' => array(
1100 'provider' => BitmapIconProvider::class,
1101 'options' => array(
1102 'source' => 'EXT:t3skin/images/icons/status/user-group-backend.png'
1103 )
1104 ),
1105 'status-user-group-frontend' => array(
1106 'provider' => BitmapIconProvider::class,
1107 'options' => array(
1108 'source' => 'EXT:t3skin/images/icons/status/user-group-frontend.png'
1109 )
1110 ),
1111 'status-dialog-information' => array(
1112 'provider' => FontawesomeIconProvider::class,
1113 'options' => array(
1114 'name' => 'exclamation-circle'
1115 )
1116 ),
1117 'status-dialog-ok' => array(
1118 'provider' => FontawesomeIconProvider::class,
1119 'options' => array(
1120 'name' => 'check-circle',
1121 )
1122 ),
1123 'status-dialog-notification' => array(
1124 'provider' => FontawesomeIconProvider::class,
1125 'options' => array(
1126 'name' => 'exclamation-circle'
1127 )
1128 ),
1129 'status-dialog-warning' => array(
1130 'provider' => FontawesomeIconProvider::class,
1131 'options' => array(
1132 'name' => 'exclamation-triangle'
1133 )
1134 ),
1135 'status-dialog-error' => array(
1136 'provider' => FontawesomeIconProvider::class,
1137 'options' => array(
1138 'name' => 'exclamation-circle'
1139 )
1140 ),
1141 'status-warning-lock' => array(
1142 'provider' => BitmapIconProvider::class,
1143 'options' => array(
1144 'source' => 'EXT:t3skin/images/icons/status/warning-lock.png'
1145 )
1146 ),
1147 'status-warning-in-use' => array(
1148 'provider' => BitmapIconProvider::class,
1149 'options' => array(
1150 'source' => 'EXT:t3skin/images/icons/status/warning-in-use.png'
1151 )
1152 ),
1153 'status-status-checked' => array(
1154 'provider' => FontawesomeIconProvider::class,
1155 'options' => array(
1156 'name' => 'check',
1157 )
1158 ),
1159 'status-status-current' => array(
1160 'provider' => FontawesomeIconProvider::class,
1161 'options' => array(
1162 'name' => 'caret-right',
1163 )
1164 ),
1165 'status-status-locked' => array(
1166 'provider' => FontawesomeIconProvider::class,
1167 'options' => array(
1168 'name' => 'lock',
1169 )
1170 ),
1171 'status-status-reference-hard' => array(
1172 'provider' => BitmapIconProvider::class,
1173 'options' => array(
1174 'source' => 'EXT:t3skin/images/icons/status/status-reference-hard.png',
1175 )
1176 ),
1177 'status-status-sorting-asc' => array(
1178 'provider' => FontawesomeIconProvider::class,
1179 'options' => array(
1180 'name' => 'caret-up',
1181 )
1182 ),
1183 'status-status-sorting-desc' => array(
1184 'provider' => FontawesomeIconProvider::class,
1185 'options' => array(
1186 'name' => 'caret-down',
1187 )
1188 ),
1189 'status-status-sorting-light-asc' => array(
1190 'provider' => FontawesomeIconProvider::class,
1191 'options' => array(
1192 'name' => 'caret-up',
1193 )
1194 ),
1195 'status-status-sorting-light-desc' => array(
1196 'provider' => FontawesomeIconProvider::class,
1197 'options' => array(
1198 'name' => 'caret-down',
1199 )
1200 ),
1201 'status-status-permission-granted' => array(
1202 'provider' => FontawesomeIconProvider::class,
1203 'options' => array(
1204 'name' => 'check',
1205 )
1206 ),
1207 'status-status-permission-denied' => array(
1208 'provider' => FontawesomeIconProvider::class,
1209 'options' => array(
1210 'name' => 'times',
1211 )
1212 ),
1213 'status-status-reference-soft' => array(
1214 'provider' => BitmapIconProvider::class,
1215 'options' => array(
1216 'source' => 'EXT:t3skin/images/icons/status/status-reference-soft.png',
1217 )
1218 ),
1219 'status-status-edit-read-only' => array(
1220 'provider' => BitmapIconProvider::class,
1221 'options' => array(
1222 'source' => 'EXT:t3skin/images/icons/status/status-edit-read-only.png',
1223 )
1224 ),
1225
1226 // Mimetypes
1227 'mimetypes-application' => array(
1228 'provider' => SvgIconProvider::class,
1229 'options' => array(
1230 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-application.svg'
1231 )
1232 ),
1233 'mimetypes-compressed' => array(
1234 'provider' => SvgIconProvider::class,
1235 'options' => array(
1236 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-compressed.svg'
1237 )
1238 ),
1239 'mimetypes-excel' => array(
1240 'provider' => SvgIconProvider::class,
1241 'options' => array(
1242 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-excel.svg'
1243 )
1244 ),
1245 'mimetypes-pdf' => array(
1246 'provider' => SvgIconProvider::class,
1247 'options' => array(
1248 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-pdf.svg'
1249 )
1250 ),
1251 'mimetypes-powerpoint' => array(
1252 'provider' => SvgIconProvider::class,
1253 'options' => array(
1254 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-powerpoint.svg'
1255 )
1256 ),
1257 'mimetypes-media-audio' => array(
1258 'provider' => SvgIconProvider::class,
1259 'options' => array(
1260 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-media-audio.svg'
1261 )
1262 ),
1263 'mimetypes-media-flash' => array(
1264 'provider' => SvgIconProvider::class,
1265 'options' => array(
1266 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-media-flash.svg'
1267 )
1268 ),
1269 'mimetypes-media-image' => array(
1270 'provider' => SvgIconProvider::class,
1271 'options' => array(
1272 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-media-image.svg'
1273 )
1274 ),
1275 'mimetypes-media-video' => array(
1276 'provider' => SvgIconProvider::class,
1277 'options' => array(
1278 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-media-video.svg'
1279 )
1280 ),
1281 'mimetypes-media-video-vimeo' => array(
1282 'provider' => SvgIconProvider::class,
1283 'options' => array(
1284 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-media-video-vimeo.svg'
1285 )
1286 ),
1287 'mimetypes-media-video-youtube' => array(
1288 'provider' => SvgIconProvider::class,
1289 'options' => array(
1290 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-media-video-youtube.svg'
1291 )
1292 ),
1293 'mimetypes-other-other' => array(
1294 'provider' => SvgIconProvider::class,
1295 'options' => array(
1296 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-other-other.svg'
1297 )
1298 ),
1299 'mimetypes-text-css' => array(
1300 'provider' => SvgIconProvider::class,
1301 'options' => array(
1302 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-text-css.svg'
1303 )
1304 ),
1305 'mimetypes-text-csv' => array(
1306 'provider' => SvgIconProvider::class,
1307 'options' => array(
1308 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-text-csv.svg'
1309 )
1310 ),
1311 'mimetypes-text-html' => array(
1312 'provider' => SvgIconProvider::class,
1313 'options' => array(
1314 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-text-html.svg'
1315 )
1316 ),
1317 'mimetypes-text-js' => array(
1318 'provider' => SvgIconProvider::class,
1319 'options' => array(
1320 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-text-js.svg'
1321 )
1322 ),
1323 'mimetypes-text-php' => array(
1324 'provider' => SvgIconProvider::class,
1325 'options' => array(
1326 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-text-php.svg'
1327 )
1328 ),
1329 'mimetypes-text-ts' => array(
1330 'provider' => SvgIconProvider::class,
1331 'options' => array(
1332 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-text-ts.svg'
1333 )
1334 ),
1335 'mimetypes-text-text' => array(
1336 'provider' => SvgIconProvider::class,
1337 'options' => array(
1338 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-text-text.svg'
1339 )
1340 ),
1341 'mimetypes-word' => array(
1342 'provider' => SvgIconProvider::class,
1343 'options' => array(
1344 'source' => 'EXT:backend/Resources/Public/Icons/Mimetype/mimetypes-word.svg'
1345 )
1346 ),
1347
1348 // Special Mimetypes
1349 'mimetypes-x-content-divider' => array(
1350 'provider' => BitmapIconProvider::class,
1351 'options' => array(
1352 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-divider.png'
1353 )
1354 ),
1355 'mimetypes-x-content-domain' => array(
1356 'provider' => BitmapIconProvider::class,
1357 'options' => array(
1358 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-domain.png'
1359 )
1360 ),
1361 'mimetypes-x-content-form' => array(
1362 'provider' => BitmapIconProvider::class,
1363 'options' => array(
1364 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-form.png'
1365 )
1366 ),
1367 'mimetypes-x-content-form-search' => array(
1368 'provider' => BitmapIconProvider::class,
1369 'options' => array(
1370 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-form-search.png'
1371 )
1372 ),
1373 'mimetypes-x-content-header' => array(
1374 'provider' => BitmapIconProvider::class,
1375 'options' => array(
1376 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-header.png'
1377 )
1378 ),
1379 'mimetypes-x-content-html' => array(
1380 'provider' => BitmapIconProvider::class,
1381 'options' => array(
1382 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-html.png'
1383 )
1384 ),
1385 'mimetypes-x-content-image' => array(
1386 'provider' => BitmapIconProvider::class,
1387 'options' => array(
1388 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-image.png'
1389 )
1390 ),
1391 'mimetypes-x-content-link' => array(
1392 'provider' => BitmapIconProvider::class,
1393 'options' => array(
1394 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-link.png'
1395 )
1396 ),
1397 'mimetypes-x-content-list-bullets' => array(
1398 'provider' => BitmapIconProvider::class,
1399 'options' => array(
1400 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-list-bullets.png'
1401 )
1402 ),
1403 'mimetypes-x-content-list-files' => array(
1404 'provider' => BitmapIconProvider::class,
1405 'options' => array(
1406 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-list-files.png'
1407 )
1408 ),
1409 'mimetypes-x-content-login' => array(
1410 'provider' => BitmapIconProvider::class,
1411 'options' => array(
1412 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-login.png'
1413 )
1414 ),
1415 'mimetypes-x-content-menu' => array(
1416 'provider' => BitmapIconProvider::class,
1417 'options' => array(
1418 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-menu.png'
1419 )
1420 ),
1421 'mimetypes-x-content-multimedia' => array(
1422 'provider' => BitmapIconProvider::class,
1423 'options' => array(
1424 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-multimedia.png'
1425 )
1426 ),
1427 'mimetypes-x-content-page-language-overlay' => array(
1428 'provider' => BitmapIconProvider::class,
1429 'options' => array(
1430 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-page-language-overlay.gif'
1431 )
1432 ),
1433 'mimetypes-x-content-plugin' => array(
1434 'provider' => BitmapIconProvider::class,
1435 'options' => array(
1436 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-plugin.png'
1437 )
1438 ),
1439 'mimetypes-x-content-script' => array(
1440 'provider' => BitmapIconProvider::class,
1441 'options' => array(
1442 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-script.png'
1443 )
1444 ),
1445 'mimetypes-x-content-table' => array(
1446 'provider' => BitmapIconProvider::class,
1447 'options' => array(
1448 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-table.png'
1449 )
1450 ),
1451 'mimetypes-x-content-template' => array(
1452 'provider' => BitmapIconProvider::class,
1453 'options' => array(
1454 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-template.png'
1455 )
1456 ),
1457 'mimetypes-x-content-template-extension' => array(
1458 'provider' => BitmapIconProvider::class,
1459 'options' => array(
1460 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-template-extension.png'
1461 )
1462 ),
1463 'mimetypes-x-content-template-static' => array(
1464 'provider' => BitmapIconProvider::class,
1465 'options' => array(
1466 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-template-static.png'
1467 )
1468 ),
1469 'mimetypes-x-content-text' => array(
1470 'provider' => BitmapIconProvider::class,
1471 'options' => array(
1472 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-text.png'
1473 )
1474 ),
1475 'mimetypes-x-content-text-picture' => array(
1476 'provider' => BitmapIconProvider::class,
1477 'options' => array(
1478 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-text-picture.png'
1479 )
1480 ),
1481 'mimetypes-x-backend_layout' => array(
1482 'provider' => BitmapIconProvider::class,
1483 'options' => array(
1484 'source' => 'EXT:t3skin/icons/gfx/i/backend_layout.gif'
1485 )
1486 ),
1487 'mimetypes-x-index_config' => array(
1488 'provider' => BitmapIconProvider::class,
1489 'options' => array(
1490 'source' => 'EXT:t3skin/icons/gfx/i/default.gif'
1491 )
1492 ),
1493 'mimetypes-x-sys_action' => array(
1494 'provider' => BitmapIconProvider::class,
1495 'options' => array(
1496 'source' => 'EXT:sys_action/Resources/Public/Images/x-sys_action.png'
1497 )
1498 ),
1499 'mimetypes-x-sys_category' => array(
1500 'provider' => BitmapIconProvider::class,
1501 'options' => array(
1502 'source' => 'EXT:t3skin/images/icons/mimetypes/x-sys_category.png'
1503 )
1504 ),
1505 'mimetypes-x-sys_language' => array(
1506 'provider' => BitmapIconProvider::class,
1507 'options' => array(
1508 'source' => 'EXT:t3skin/images/icons/mimetypes/x-sys_language.gif'
1509 )
1510 ),
1511 'mimetypes-x-sys_news' => array(
1512 'provider' => BitmapIconProvider::class,
1513 'options' => array(
1514 'source' => 'EXT:t3skin/images/icons/mimetypes/x-sys_news.png'
1515 )
1516 ),
1517 'mimetypes-x-sys_note' => array(
1518 'provider' => BitmapIconProvider::class,
1519 'options' => array(
1520 'source' => 'EXT:sys_note/ext_icon.png'
1521 )
1522 ),
1523 'mimetypes-x-sys_workspace' => array(
1524 'provider' => BitmapIconProvider::class,
1525 'options' => array(
1526 'source' => 'EXT:t3skin/images/icons/mimetypes/x-sys_workspace.png'
1527 )
1528 ),
1529 'mimetypes-x-sys_filemounts' => array(
1530 'provider' => BitmapIconProvider::class,
1531 'options' => array(
1532 'source' => 'EXT:t3skin/icons/gfx/i/_icon_ftp.gif'
1533 )
1534 ),
1535 'mimetypes-x-sys_file_storage' => array(
1536 'provider' => BitmapIconProvider::class,
1537 'options' => array(
1538 'source' => 'EXT:t3skin/icons/gfx/i/_icon_ftp.gif'
1539 )
1540 ),
1541 'mimetypes-x-tx_rtehtmlarea_acronym' => array(
1542 'provider' => BitmapIconProvider::class,
1543 'options' => array(
1544 'source' => 'EXT:rtehtmlarea/Resources/Public/Images/Plugins/Abbreviation/abbreviation.gif'
1545 )
1546 ),
1547 'mimetypes-x-tx_scheduler_task_group' => array(
1548 'provider' => BitmapIconProvider::class,
1549 'options' => array(
1550 'source' => 'EXT:scheduler/ext_icon.png'
1551 )
1552 ),
1553 'sysnote-type-0' => array(
1554 'provider' => SvgIconProvider::class,
1555 'options' => array(
1556 'source' => 'EXT:backend/Resources/Public/Icons/App/apps-pagetree-root.svg',
1557 )
1558 ),
1559 'sysnote-type-1' => array(
1560 'provider' => FontawesomeIconProvider::class,
1561 'options' => array(
1562 'name' => 'cog'
1563 )
1564 ),
1565 'sysnote-type-2' => array(
1566 'provider' => FontawesomeIconProvider::class,
1567 'options' => array(
1568 'name' => 'code'
1569 )
1570 ),
1571 'sysnote-type-3' => array(
1572 'provider' => FontawesomeIconProvider::class,
1573 'options' => array(
1574 'name' => 'thumb-tack'
1575 )
1576 ),
1577 'sysnote-type-4' => array(
1578 'provider' => FontawesomeIconProvider::class,
1579 'options' => array(
1580 'name' => 'check-square'
1581 )
1582 ),
1583
1584 // Spinner
1585 'spinner-circle-dark' => array(
1586 'provider' => SvgIconProvider::class,
1587 'options' => array(
1588 'source' => 'EXT:backend/Resources/Public/Icons/Spinner/spinner-circle-dark.svg',
1589 'spinning' => TRUE
1590 )
1591 ),
1592 'spinner-circle-light' => array(
1593 'provider' => SvgIconProvider::class,
1594 'options' => array(
1595 'source' => 'EXT:backend/Resources/Public/Icons/Spinner/spinner-circle-light.svg',
1596 'spinning' => TRUE
1597 )
1598 ),
1599
1600 // Modules
1601 'module-web' => array(
1602 'provider' => FontawesomeIconProvider::class,
1603 'options' => array(
1604 'name' => 'file-o'
1605 )
1606 ),
1607 'module-file' => array(
1608 'provider' => FontawesomeIconProvider::class,
1609 'options' => array(
1610 'name' => 'image'
1611 )
1612 ),
1613 'module-tools' => array(
1614 'provider' => FontawesomeIconProvider::class,
1615 'options' => array(
1616 'name' => 'rocket'
1617 )
1618 ),
1619 'module-system' => array(
1620 'provider' => FontawesomeIconProvider::class,
1621 'options' => array(
1622 'name' => 'plug'
1623 )
1624 ),
1625 'module-help' => array(
1626 'provider' => FontawesomeIconProvider::class,
1627 'options' => array(
1628 'name' => 'question-circle'
1629 )
1630 ),
1631
1632 // Overlays
1633 'overlay-deleted' => array(
1634 'provider' => SvgIconProvider::class,
1635 'options' => array(
1636 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-deleted.svg'
1637 )
1638 ),
1639 'overlay-edit' => array(
1640 'provider' => FontawesomeIconProvider::class,
1641 'options' => array(
1642 'name' => 'pencil'
1643 )
1644 ),
1645 'overlay-hidden' => array(
1646 'provider' => SvgIconProvider::class,
1647 'options' => array(
1648 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-hidden.svg'
1649 )
1650 ),
1651 'overlay-includes-subpages' => array(
1652 'provider' => SvgIconProvider::class,
1653 'options' => array(
1654 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-includes-subpages.svg'
1655 )
1656 ),
1657 'overlay-locked' => array(
1658 'provider' => SvgIconProvider::class,
1659 'options' => array(
1660 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-locked.svg'
1661 )
1662 ),
1663 'overlay-missing' => array(
1664 'provider' => SvgIconProvider::class,
1665 'options' => array(
1666 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-missing.svg'
1667 )
1668 ),
1669 'overlay-new' => array(
1670 'provider' => FontawesomeIconProvider::class,
1671 'options' => array(
1672 'name' => 'plus-circle'
1673 )
1674 ),
1675 'overlay-readonly' => array(
1676 'provider' => SvgIconProvider::class,
1677 'options' => array(
1678 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-readonly.svg',
1679 )
1680 ),
1681 'overlay-restricted' => array(
1682 'provider' => SvgIconProvider::class,
1683 'options' => array(
1684 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-restricted.svg'
1685 )
1686 ),
1687 'overlay-scheduled' => array(
1688 'provider' => SvgIconProvider::class,
1689 'options' => array(
1690 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-scheduled.svg'
1691 )
1692 ),
1693 'overlay-translated' => array(
1694 'provider' => SvgIconProvider::class,
1695 'options' => array(
1696 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-translated.svg'
1697 )
1698 ),
1699
1700 // Flags will be auto-registered after we have the SVG files
1701 'flags-multiple' => array(
1702 'provider' => BitmapIconProvider::class,
1703 'options' => array(
1704 'source' => 'EXT:core/Resources/Public/Icons/Flags/multiple.png'
1705 )
1706 ),
1707 'flags-an' => array(
1708 'provider' => BitmapIconProvider::class,
1709 'options' => array(
1710 'source' => 'EXT:core/Resources/Public/Icons/Flags/an.png'
1711 )
1712 ),
1713 'flags-bv' => array(
1714 'provider' => BitmapIconProvider::class,
1715 'options' => array(
1716 'source' => 'EXT:core/Resources/Public/Icons/Flags/bv.png'
1717 )
1718 ),
1719 'flags-catalonia' => array(
1720 'provider' => BitmapIconProvider::class,
1721 'options' => array(
1722 'source' => 'EXT:core/Resources/Public/Icons/Flags/catalonia.png'
1723 )
1724 ),
1725 'flags-cs' => array(
1726 'provider' => BitmapIconProvider::class,
1727 'options' => array(
1728 'source' => 'EXT:core/Resources/Public/Icons/Flags/cs.png'
1729 )
1730 ),
1731 'flags-en-us-gb' => array(
1732 'provider' => BitmapIconProvider::class,
1733 'options' => array(
1734 'source' => 'EXT:core/Resources/Public/Icons/Flags/en_us-gb.png'
1735 )
1736 ),
1737 'flags-fam' => array(
1738 'provider' => BitmapIconProvider::class,
1739 'options' => array(
1740 'source' => 'EXT:core/Resources/Public/Icons/Flags/fam.png'
1741 )
1742 ),
1743 'flags-hm' => array(
1744 'provider' => BitmapIconProvider::class,
1745 'options' => array(
1746 'source' => 'EXT:core/Resources/Public/Icons/Flags/hm.png'
1747 )
1748 ),
1749 'flags-qc' => array(
1750 'provider' => BitmapIconProvider::class,
1751 'options' => array(
1752 'source' => 'EXT:core/Resources/Public/Icons/Flags/qc.png'
1753 )
1754 ),
1755 'flags-scotland' => array(
1756 'provider' => BitmapIconProvider::class,
1757 'options' => array(
1758 'source' => 'EXT:core/Resources/Public/Icons/Flags/scotland.png'
1759 )
1760 ),
1761 'flags-sj' => array(
1762 'provider' => BitmapIconProvider::class,
1763 'options' => array(
1764 'source' => 'EXT:core/Resources/Public/Icons/Flags/sj.png'
1765 )
1766 ),
1767 'flags-tf' => array(
1768 'provider' => BitmapIconProvider::class,
1769 'options' => array(
1770 'source' => 'EXT:core/Resources/Public/Icons/Flags/tf.png'
1771 )
1772 ),
1773 'flags-um' => array(
1774 'provider' => BitmapIconProvider::class,
1775 'options' => array(
1776 'source' => 'EXT:core/Resources/Public/Icons/Flags/um.png'
1777 )
1778 ),
1779 'flags-wales' => array(
1780 'provider' => BitmapIconProvider::class,
1781 'options' => array(
1782 'source' => 'EXT:core/Resources/Public/Icons/Flags/wales.png'
1783 )
1784 ),
1785
1786 'tcarecords-sys_domain-default' => array(
1787 'provider' => SvgIconProvider::class,
1788 'options' => array(
1789 'source' => 'EXT:backend/Resources/Public/Icons/Overlay/overlay-translated.svg'
1790 )
1791 ),
1792 'tcarecords-sys_template-default' => array(
1793 'provider' => BitmapIconProvider::class,
1794 'options' => array(
1795 'source' => 'EXT:t3skin/images/icons/mimetypes/x-content-template.png'
1796 )
1797 ),
1798 'tcarecords-sys_workspace-default' => array(
1799 'provider' => BitmapIconProvider::class,
1800 'options' => array(
1801 'source' => 'EXT:t3skin/images/icons/mimetypes/x-sys_workspace.png'
1802 )
1803 ),
1804 'tcarecords-sys_workspace_stage-default' => array(
1805 'provider' => BitmapIconProvider::class,
1806 'options' => array(
1807 'source' => 'EXT:t3skin/images/icons/mimetypes/x-sys_workspace.png'
1808 )
1809 ),
1810 );
1811
1812 /**
1813 * Mapping of file extensions to mimetypes
1814 *
1815 * @var string[]
1816 */
1817 protected $fileExtensionMapping = array(
1818 'htm' => 'mimetypes-text-html',
1819 'html' => 'mimetypes-text-html',
1820 'css' => 'mimetypes-text-css',
1821 'js' => 'mimetypes-text-js',
1822 'csv' => 'mimetypes-text-csv',
1823 'php' => 'mimetypes-text-php',
1824 'php6' => 'mimetypes-text-php',
1825 'php5' => 'mimetypes-text-php',
1826 'php4' => 'mimetypes-text-php',
1827 'php3' => 'mimetypes-text-php',
1828 'inc' => 'mimetypes-text-php',
1829 'ts' => 'mimetypes-text-ts',
1830 'txt' => 'mimetypes-text-text',
1831 'class' => 'mimetypes-text-text',
1832 'tmpl' => 'mimetypes-text-text',
1833 'jpg' => 'mimetypes-media-image',
1834 'jpeg' => 'mimetypes-media-image',
1835 'gif' => 'mimetypes-media-image',
1836 'png' => 'mimetypes-media-image',
1837 'bmp' => 'mimetypes-media-image',
1838 'tif' => 'mimetypes-media-image',
1839 'tiff' => 'mimetypes-media-image',
1840 'tga' => 'mimetypes-media-image',
1841 'psd' => 'mimetypes-media-image',
1842 'eps' => 'mimetypes-media-image',
1843 'ai' => 'mimetypes-media-image',
1844 'svg' => 'mimetypes-media-image',
1845 'pcx' => 'mimetypes-media-image',
1846 'avi' => 'mimetypes-media-video',
1847 'mpg' => 'mimetypes-media-video',
1848 'mpeg' => 'mimetypes-media-video',
1849 'mov' => 'mimetypes-media-video',
1850 'vimeo' => 'mimetypes-media-video-vimeo',
1851 'youtube' => 'mimetypes-media-video-youtube',
1852 'wav' => 'mimetypes-media-audio',
1853 'mp3' => 'mimetypes-media-audio',
1854 'mid' => 'mimetypes-media-audio',
1855 'swf' => 'mimetypes-media-flash',
1856 'swa' => 'mimetypes-media-flash',
1857 'exe' => 'mimetypes-application',
1858 'com' => 'mimetypes-application',
1859 't3x' => 'mimetypes-compressed',
1860 't3d' => 'mimetypes-compressed',
1861 'zip' => 'mimetypes-compressed',
1862 'tgz' => 'mimetypes-compressed',
1863 'gz' => 'mimetypes-compressed',
1864 'pdf' => 'mimetypes-pdf',
1865 'doc' => 'mimetypes-word',
1866 'dot' => 'mimetypes-word',
1867 'docm' => 'mimetypes-word',
1868 'docx' => 'mimetypes-word',
1869 'dotm' => 'mimetypes-word',
1870 'dotx' => 'mimetypes-word',
1871 'sxw' => 'mimetypes-word',
1872 'rtf' => 'mimetypes-word',
1873 'xls' => 'mimetypes-excel',
1874 'xlsm' => 'mimetypes-excel',
1875 'xlsx' => 'mimetypes-excel',
1876 'xltm' => 'mimetypes-excel',
1877 'xltx' => 'mimetypes-excel',
1878 'sxc' => 'mimetypes-excel',
1879 'pps' => 'mimetypes-powerpoint',
1880 'ppsx' => 'mimetypes-powerpoint',
1881 'ppt' => 'mimetypes-powerpoint',
1882 'pptm' => 'mimetypes-powerpoint',
1883 'pptx' => 'mimetypes-powerpoint',
1884 'potm' => 'mimetypes-powerpoint',
1885 'potx' => 'mimetypes-powerpoint',
1886 'mount' => 'apps-filetree-mount',
1887 'folder' => 'apps-filetree-folder-default',
1888 'default' => 'mimetypes-other-other',
1889 );
1890
1891 /**
1892 * Array of deprecated icons, add deprecated icons to this array and remove it from registry
1893 * - Index of this array contains the deprecated icon
1894 * - Value of each entry must contain the deprecation message and can contain an identifier which replaces the old identifier
1895 *
1896 * Example:
1897 * array(
1898 * 'deprecated-icon-identifier' => array(
1899 * 'message' => '%s is deprecated since TYPO3 CMS 7, this icon will be removed in TYPO3 CMS 8',
1900 * 'replacement' => 'alternative-icon-identifier' // must be registered
1901 * )
1902 * )
1903 *
1904 * @var array
1905 */
1906 protected $deprecatedIcons = array(
1907 'actions-system-refresh' => array(
1908 'replacement' => 'actions-refresh',
1909 'message' => '%s is deprecated since TYPO3 CMS 7, this icon will be removed in TYPO3 CMS 8'
1910 )
1911 );
1912
1913 /**
1914 * @var string
1915 */
1916 protected $defaultIconIdentifier = 'default-not-found';
1917
1918 /**
1919 * The constructor
1920 */
1921 public function __construct() {
1922 if (!$this->tcaInitialized && !empty($GLOBALS['TCA'])) {
1923 $this->registerTCAIcons();
1924 }
1925 $this->registerFlags();
1926 }
1927
1928 /**
1929 * @param string $identifier
1930 *
1931 * @return bool
1932 */
1933 public function isRegistered($identifier) {
1934 return isset($this->icons[$identifier]);
1935 }
1936
1937 /**
1938 * @param string $identifier
1939 *
1940 * @return bool
1941 */
1942 public function isDeprecated($identifier) {
1943 return isset($this->deprecatedIcons[$identifier]);
1944 }
1945
1946 /**
1947 * @return string
1948 */
1949 public function getDefaultIconIdentifier() {
1950 return $this->defaultIconIdentifier;
1951 }
1952
1953 /**
1954 * Registers an icon to be available inside the Icon Factory
1955 *
1956 * @param string $identifier
1957 * @param string $iconProviderClassName
1958 * @param array $options
1959 *
1960 * @throws \InvalidArgumentException
1961 */
1962 public function registerIcon($identifier, $iconProviderClassName, array $options = array()) {
1963 if (!in_array(IconProviderInterface::class, class_implements($iconProviderClassName), TRUE)) {
1964 throw new \InvalidArgumentException('An IconProvider must implement ' . IconProviderInterface::class, 1437425803);
1965 }
1966 $this->icons[$identifier] = array(
1967 'provider' => $iconProviderClassName,
1968 'options' => $options
1969 );
1970 }
1971
1972 /**
1973 * Registers an icon for a file extension.
1974 *
1975 * @param string $fileExtension
1976 * @param string $iconIdentifier
1977 */
1978 public function registerFileExtension($fileExtension, $iconIdentifier) {
1979 $this->fileExtensionMapping[$fileExtension] = $iconIdentifier;
1980 }
1981
1982 /**
1983 * Fetches the configuration provided by registerIcon()
1984 *
1985 * @param string $identifier the icon identifier
1986 * @return mixed
1987 * @throws Exception
1988 */
1989 public function getIconConfigurationByIdentifier($identifier) {
1990 // In some cases TCA is not available, auto register TCA icons
1991 // only the first time the TCA is available
1992 if (!$this->tcaInitialized && !empty($GLOBALS['TCA'])) {
1993 $this->registerTCAIcons();
1994 }
1995 if ($this->flagsInitialized) {
1996 $this->registerFlags();
1997 }
1998 if (!$this->isRegistered($identifier)) {
1999 throw new Exception('Icon with identifier "' . $identifier . '" is not registered"', 1437425804);
2000 }
2001 if ($this->isDeprecated($identifier)) {
2002 $deprecationSettings = $this->getDeprecationSettings($identifier);
2003 GeneralUtility::deprecationLog(sprintf($deprecationSettings['message'], $identifier));
2004 if (!empty($deprecationSettings['replacement'])) {
2005 $identifier = $deprecationSettings['replacement'];
2006 }
2007 }
2008 return $this->icons[$identifier];
2009 }
2010
2011 /**
2012 * @param string $identifier
2013 *
2014 * @return array
2015 * @throws Exception
2016 */
2017 public function getDeprecationSettings($identifier) {
2018 if (!$this->isDeprecated($identifier)) {
2019 throw new Exception('Icon with identifier "' . $identifier . '" is not deprecated"', 1437425804);
2020 }
2021 return $this->deprecatedIcons[$identifier];
2022 }
2023
2024 /**
2025 * @return array
2026 * @internal
2027 */
2028 public function getAllRegisteredIconIdentifiers() {
2029 return array_keys($this->icons);
2030 }
2031
2032 /**
2033 * @param string $fileExtension
2034 * @return string
2035 */
2036 public function getIconIdentifierForFileExtension($fileExtension) {
2037 // If the file extension is not valid use the default one
2038 if (!isset($this->fileExtensionMapping[$fileExtension])) {
2039 $fileExtension = 'default';
2040 }
2041 return $this->fileExtensionMapping[$fileExtension];
2042 }
2043
2044 /**
2045 * Load icons from TCA for each table and add them as "tcarecords-XX" to $this->icons
2046 */
2047 protected function registerTCAIcons() {
2048 // if TCA is not available, e.g. for some unit test, return directly
2049 if (!is_array($GLOBALS['TCA'])) {
2050 return;
2051 }
2052
2053 $resultArray = array();
2054
2055 $tcaTables = array_keys($GLOBALS['TCA']);
2056 // check every table in the TCA, if an icon is needed
2057 foreach ($tcaTables as $tableName) {
2058 // This method is only needed for TCA tables where typeicon_classes are not configured
2059 if (is_array($GLOBALS['TCA'][$tableName])) {
2060 $tcaCtrl = $GLOBALS['TCA'][$tableName]['ctrl'];
2061 $icon = NULL;
2062 $iconIdentifier = 'tcarecords-' . $tableName . '-default';
2063 if ($this->isRegistered($iconIdentifier)) {
2064 continue;
2065 }
2066 if (isset($tcaCtrl['iconfile'])) {
2067 if (StringUtility::beginsWith($tcaCtrl['iconfile'], 'EXT:')) {
2068 $icon = $tcaCtrl['iconfile'];
2069 } elseif (strpos($tcaCtrl['iconfile'], '/') !== FALSE) {
2070 $icon = TYPO3_mainDir . GeneralUtility::resolveBackPath($tcaCtrl['iconfile']);
2071 }
2072 if ($icon !== NULL) {
2073 $resultArray[$iconIdentifier] = $icon;
2074 }
2075 }
2076 }
2077 }
2078 if (!empty($GLOBALS['TBE_STYLES']['spritemanager']['singleIcons'])) {
2079 foreach ($GLOBALS['TBE_STYLES']['spritemanager']['singleIcons'] as $iconIdentifier => $iconFile) {
2080 if (StringUtility::beginsWith($iconFile, '../typo3conf/ext/')) {
2081 $iconFile = str_replace('../typo3conf/ext/', 'EXT:', $iconFile);
2082 }
2083 if (StringUtility::beginsWith($iconFile, 'sysext/')) {
2084 $iconFile = str_replace('sysext/', 'EXT:', $iconFile);
2085 }
2086 $resultArray[$iconIdentifier] = $iconFile;
2087 }
2088 }
2089
2090 foreach ($resultArray as $iconIdentifier => $iconFilePath) {
2091 if (StringUtility::endsWith(strtolower($iconFilePath), 'svg')) {
2092 $iconProviderClass = SvgIconProvider::class;
2093 } else {
2094 $iconProviderClass = BitmapIconProvider::class;
2095 }
2096 $this->icons[$iconIdentifier] = array(
2097 'provider' => $iconProviderClass,
2098 'options' => array(
2099 'source' => $iconFilePath
2100 )
2101 );
2102 }
2103 $this->tcaInitialized = TRUE;
2104 }
2105
2106 /**
2107 * register flags
2108 */
2109 protected function registerFlags() {
2110 $iconFolder = 'EXT:core/Resources/Public/Icons/Flags/SVG/';
2111 $files = array(
2112 'AC', 'AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ',
2113 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BM', 'BN', 'BO', 'BR', 'BS', 'BT', 'BW', 'BY', 'BZ',
2114 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ',
2115 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'EU',
2116 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR',
2117 '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',
2118 'HK', 'HN', 'HR', 'HT', 'HU',
2119 'IC', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT',
2120 'JE', 'JM', 'JO', 'JP',
2121 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ',
2122 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY',
2123 'MA', 'MC', 'MD', 'ME', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ',
2124 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ',
2125 'OM',
2126 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY',
2127 'QA',
2128 'RE', 'RO', 'RS', 'RU', 'RW',
2129 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ',
2130 'TA', 'TC', 'TD', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ',
2131 'UA', 'UG', 'US-AK', 'US-AL', 'US-AR', 'US-AZ', 'US-CA', 'US-CO', 'US-CT', 'US-DE', 'US-FL', 'US-GA', 'US-HI', 'US-IA', 'US-ID', 'US-IL', 'US-IN', 'US-KS', 'US-KY', 'US-LA', 'US-MA', 'US-MD', 'US-ME', 'US-MI', 'US-MN', 'US-MO', 'US-MS', 'US-MT', 'US-NC', 'US-ND', 'US-NE', 'US-NH', 'US-NJ', 'US-NM', 'US-NV', 'US-NY', 'US-OH', 'US-OK', 'US-OR', 'US-PA', 'US-RI', 'US-SC', 'US-SD', 'US-TN', 'US-TX', 'US-UT', 'US-VA', 'US-VT', 'US-WA', 'US-WI', 'US-WV', 'US-WY', 'US', 'UY', 'UZ',
2132 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU',
2133 'WF', 'WS',
2134 'XK',
2135 'YE', 'YT',
2136 'ZA', 'ZM', 'ZW'
2137 );
2138 foreach ($files as $file) {
2139 $identifier = strtolower($file);
2140 $this->icons['flags-' . $identifier] = array(
2141 'provider' => SvgIconProvider::class,
2142 'options' => array(
2143 'source' => $iconFolder . $file . '.svg'
2144 )
2145 );
2146 }
2147 $this->flagsInitialized = TRUE;
2148 }
2149 }