[TASK] RTE: Remove unused css files
[Packages/TYPO3.CMS.git] / typo3 / sysext / rtehtmlarea / Classes / Extension / DefinitionList.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 * Definition List plugin for htmlArea RTE
22 *
23 * @author Stanislas Rolland <typo3(arobas)sjbr.ca>
24 */
25 class DefinitionList extends RteHtmlAreaApi {
26
27 /**
28 * The name of the plugin registered by the extension
29 *
30 * @var string
31 */
32 protected $pluginName = 'DefinitionList';
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 = 'definitionlist, definitionitem';
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 'definitionlist' => 'DefinitionList',
48 'definitionitem' => 'DefinitionItem'
49 );
50
51 /**
52 * The comma-separated list of names of prerequisite plugins
53 *
54 * @var string
55 */
56 protected $requiredPlugins = 'BlockElements';
57
58 /**
59 * Returns TRUE if the plugin is available and correctly initialized
60 *
61 * @param RteHtmlAreaBase $parentObject parent object
62 * @return bool TRUE if this plugin object should be made available in the current environment and is correctly initialized
63 */
64 public function main($parentObject) {
65 $enabled = parent::main($parentObject) && $this->htmlAreaRTE->isPluginEnabled('BlockElements');
66 if ($enabled && is_object($this->htmlAreaRTE->registeredPlugins['BlockElements'])) {
67 $this->htmlAreaRTE->registeredPlugins['BlockElements']->setSynchronousLoad();
68 }
69 return $enabled;
70 }
71
72 /**
73 * Return JS configuration of the htmlArea plugins registered by the extension
74 *
75 * @param string $rteNumberPlaceholder A dummy string for JS arrays
76 * @return string JS configuration for registered plugins
77 */
78 public function buildJavascriptConfiguration($rteNumberPlaceholder) {
79 return '';
80 }
81
82 /**
83 * Return an updated array of toolbar enabled buttons
84 *
85 * @param array $show: array of toolbar elements that will be enabled, unless modified here
86 * @return array toolbar button array, possibly updated
87 */
88 public function applyToolbarConstraints($show) {
89 $blockElementsButtons = 'formatblock, indent, outdent, blockquote, insertparagraphbefore, insertparagraphafter, left, center, right, justifyfull, orderedlist, unorderedlist';
90 $notRemoved = array_intersect(\TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $blockElementsButtons, TRUE), $show);
91 // DefinitionList plugin requires BlockElements plugin
92 // We will not allow any definition lists operations if all block elements buttons were disabled
93 if (empty($notRemoved)) {
94 return array_diff($show, \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $this->pluginButtons));
95 } else {
96 return $show;
97 }
98 }
99
100 }