2f326d8ca3d27374984271d30dad71e18fa1d73c
[Packages/TYPO3.CMS.git] / typo3 / sysext / rtehtmlarea / Classes / Extension / DefaultInline.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
19 /**
20 * DefaultInline plugin for htmlArea RTE
21 *
22 * @author Stanislas Rolland <typo3(arobas)sjbr.ca>
23 */
24 class DefaultInline extends RteHtmlAreaApi {
25
26 /**
27 * The name of the plugin registered by the extension
28 *
29 * @var string
30 */
31 protected $pluginName = 'DefaultInline';
32
33 /**
34 * Path to the skin file relative to the extension directory
35 *
36 * @var string
37 */
38 protected $relativePathToSkin = 'Resources/Public/Css/Skin/Plugins/default-inline.css';
39
40 /**
41 * The comma-separated list of button names that the registered plugin is adding to the htmlArea RTE toolbar
42 *
43 * @var string
44 */
45 protected $pluginButtons = 'bold,italic,strikethrough,subscript,superscript,underline';
46
47 /**
48 * The name-converting array, converting the button names used in the RTE PageTSConfing to the button id's used by the JS scripts
49 *
50 * @var array
51 */
52 protected $convertToolbarForHtmlAreaArray = array(
53 'bold' => 'Bold',
54 'italic' => 'Italic',
55 'underline' => 'Underline',
56 'strikethrough' => 'StrikeThrough',
57 'superscript' => 'Superscript',
58 'subscript' => 'Subscript'
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 return '';
69 }
70
71 /**
72 * Return tranformed content
73 *
74 * @param string $content: The content that is about to be sent to the RTE
75 * @return string the transformed content
76 */
77 public function transformContent($content) {
78 // Change the strong and em tags for gecko browsers
79 if ($this->htmlAreaRTE->client['browser'] == 'gecko') {
80 // change <strong> to <b>
81 $content = preg_replace('/<(\\/?)strong/i', '<$1b', $content);
82 // change <em> to <i>
83 $content = preg_replace('/<(\\/?)em([^b>]*>)/i', '<$1i$2', $content);
84 }
85 return $content;
86 }
87
88 }