[TASK] RTE: Remove unused css files
[Packages/TYPO3.CMS.git] / typo3 / sysext / rtehtmlarea / Classes / Extension / Typo3Color.php
1 <?php
2 namespace TYPO3\CMS\Rtehtmlarea\Extension;
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\Rtehtmlarea\RteHtmlAreaApi;
18 use TYPO3\CMS\Rtehtmlarea\RteHtmlAreaBase;
19
20 /**
21 * TYPO3 Color plugin for htmlArea RTE
22 *
23 * @author Stanislas Rolland <typo3(arobas)sjbr.ca>
24 */
25 class Typo3Color extends RteHtmlAreaApi {
26
27 /**
28 * The name of the plugin registered by the extension
29 *
30 * @var string
31 */
32 protected $pluginName = 'TYPO3Color';
33
34 /**
35 * The comma-separated list of button names that the registered plugin is adding to the htmlArea RTE toolbar
36 *
37 * @var string
38 */
39 protected $pluginButtons = 'textcolor,bgcolor';
40
41 /**
42 * The name-converting array, converting the button names used in the RTE PageTSConfing to the button id's used by the JS scripts
43 *
44 * @var array
45 */
46 protected $convertToolbarForHtmlAreaArray = array(
47 'textcolor' => 'ForeColor',
48 'bgcolor' => 'HiliteColor'
49 );
50
51 /**
52 * Returns TRUE if the plugin is available and correctly initialized
53 *
54 * @param RteHtmlAreaBase $parentObject parent object
55 * @return bool TRUE if this plugin object should be made available in the current environment and is correctly initialized
56 */
57 public function main($parentObject) {
58 return parent::main($parentObject) && $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rtehtmlarea']['allowStyleAttribute'];
59 }
60
61 /**
62 * Return JS configuration of the htmlArea plugins registered by the extension
63 *
64 * @param string $rteNumberPlaceholder A dummy string for JS arrays
65 * @return string JS configuration for registered plugins
66 */
67 public function buildJavascriptConfiguration($rteNumberPlaceholder) {
68 // Process colors configuration
69 return $this->buildJSColorsConfig($rteNumberPlaceholder);
70 }
71
72 /**
73 * Return Javascript configuration of colors
74 *
75 * @param string $rteNumberPlaceholder A dummy string for JS arrays
76 * @return string Javascript configuration of colors
77 */
78 public function buildJSColorsConfig($rteNumberPlaceholder) {
79 if ($this->htmlAreaRTE->is_FE()) {
80 $RTEProperties = $this->htmlAreaRTE->RTEsetup;
81 } else {
82 $RTEProperties = $this->htmlAreaRTE->RTEsetup['properties'];
83 }
84 $configureRTEInJavascriptString = '';
85 $configureRTEInJavascriptString .= '
86 RTEarea[' . $rteNumberPlaceholder . '].disableColorPicker = ' . (trim($this->thisConfig['disableColorPicker']) ? 'true' : 'false') . ';';
87 // Building the array of configured colors
88 if (is_array($RTEProperties['colors.'])) {
89 $HTMLAreaColorname = array();
90 foreach ($RTEProperties['colors.'] as $colorName => $conf) {
91 $colorName = substr($colorName, 0, -1);
92 $colorLabel = $this->htmlAreaRTE->getPageConfigLabel($conf['name'], 0);
93 $HTMLAreaColorname[$colorName] = array($colorLabel, strtoupper(substr($conf['value'], 1, 6)));
94 }
95 }
96 // Setting the list of colors if specified in the RTE config
97 if ($this->thisConfig['colors']) {
98 $HTMLAreaColors = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $this->htmlAreaRTE->cleanList($this->thisConfig['colors']));
99 $HTMLAreaJSColors = array();
100 foreach ($HTMLAreaColors as $colorName) {
101 if ($HTMLAreaColorname[$colorName]) {
102 $HTMLAreaJSColors[] = $HTMLAreaColorname[$colorName];
103 }
104 }
105 if ($this->htmlAreaRTE->is_FE()) {
106 $GLOBALS['TSFE']->csConvObj->convArray($HTMLAreaJSColors, $this->htmlAreaRTE->OutputCharset, 'utf-8');
107 }
108 $configureRTEInJavascriptString .= '
109 RTEarea[' . $rteNumberPlaceholder . '].colors = ' . json_encode($HTMLAreaJSColors) . ';';
110 }
111 return $configureRTEInJavascriptString;
112 }
113
114 }