dded feature #10520: htmlARea RTE: Configuration option to override RTE width
authorStanislas Rolland <typo3@sjbr.ca>
Sun, 22 Feb 2009 04:27:32 +0000 (04:27 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Sun, 22 Feb 2009 04:27:32 +0000 (04:27 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@5054 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/rtehtmlarea/ChangeLog
typo3/sysext/rtehtmlarea/class.tx_rtehtmlarea_base.php
typo3/sysext/rtehtmlarea/doc/manual.sxw
typo3/sysext/rtehtmlarea/pi2/class.tx_rtehtmlarea_pi2.php

index 856541e..0d8b9aa 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2009-02-21  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed bug #10519: htmlARea RTE: RTE sometimes overlaps following form element
+       * Added feature #10520: htmlARea RTE: Configuration option to override RTE width
 
 2009-02-21  Ingo Renner  <ingo@typo3.org>
 
index dbdd695..072b1fc 100644 (file)
@@ -1,6 +1,7 @@
 2009-02-21  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed bug #10519: htmlARea RTE: RTE sometimes overlaps following form element
+       * Added feature #10520: htmlARea RTE: Configuration option to override RTE width
 
 2009-02-20  Stanislas Rolland  <typo3@sjbr.ca>
 
index 85ea116..ec49440 100644 (file)
@@ -317,13 +317,22 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                        $RTEHeight = isset($BE_USER->userTS['options.']['RTESmallHeight']) ? $BE_USER->userTS['options.']['RTESmallHeight'] : '380';
                        $RTEWidth  = $RTEWidth + ($this->TCEform->docLarge ? (isset($BE_USER->userTS['options.']['RTELargeWidthIncrement']) ? $BE_USER->userTS['options.']['RTELargeWidthIncrement'] : '150') : 0);
                        $RTEWidth -= ($inline->getStructureDepth() > 0 ? ($inline->getStructureDepth()+1)*$inline->getLevelMargin() : 0);
+                       if (isset($this->thisConfig['RTEWidthOverride'])) {
+                               if (strstr($this->thisConfig['RTEWidthOverride'], '%')) {
+                                       if ($this->client['BROWSER'] != 'msie') {
+                                               $RTEWidth = (intval($this->thisConfig['RTEWidthOverride']) > 0) ? $this->thisConfig['RTEWidthOverride'] : '100%';
+                                       }
+                               } else {
+                                       $RTEWidth = (intval($this->thisConfig['RTEWidthOverride']) > 0) ? intval($this->thisConfig['RTEWidthOverride']) : $RTEWidth;
+                               }
+                       }
+                       $RTEWidth = strstr($RTEWidth, '%') ? $RTEWidth :  $RTEWidth . 'px';
                        $RTEHeight = $RTEHeight + ($this->TCEform->docLarge ?  (isset($BE_USER->userTS['options.']['RTELargeHeightIncrement']) ? $BE_USER->userTS['options.']['RTELargeHeightIncrement'] : 0) : 0);
                        $RTEHeightOverride = intval($this->thisConfig['RTEHeightOverride']);
                        $RTEHeight = ($RTEHeightOverride > 0) ? $RTEHeightOverride : $RTEHeight;
-                       $editorWrapWidth = $RTEWidth . 'px';
-                       $editorWrapHeight = $RTEHeight . 'px';
-                       $this->RTEdivStyle = 'position:relative; left:0px; top:0px; height:' . $RTEHeight . 'px; width:'.$RTEWidth.'px; border: 1px solid black; padding: 2px 0px 2px 2px;';
-                       $this->toolbar_level_size = $RTEWidth;
+                       $editorWrapWidth = '99%';
+                       $editorWrapHeight = '100%';
+                       $this->RTEdivStyle = 'position:relative; left:0px; top:0px; height:' . $RTEHeight . 'px; width:'.$RTEWidth.'; border: 1px solid black; padding: 2px 2px 2px 2px;';
 
                        /* =======================================
                         * LOAD CSS AND JAVASCRIPT
index 33088fa..107f0f4 100644 (file)
Binary files a/typo3/sysext/rtehtmlarea/doc/manual.sxw and b/typo3/sysext/rtehtmlarea/doc/manual.sxw differ
index 6960190..0636fe6 100644 (file)
@@ -195,15 +195,25 @@ class tx_rtehtmlarea_pi2 extends tx_rtehtmlarea_base {
                 * =======================================
                 */
 
-               $RTEWidth = 460+($this->TCEform->docLarge ? 150 : 0);
-               $RTEHeight = 380;
+               $width = 460+($this->TCEform->docLarge ? 150 : 0);
+               if (isset($this->thisConfig['RTEWidthOverride'])) {
+                       if (strstr($this->thisConfig['RTEWidthOverride'], '%')) {
+                               if ($this->client['BROWSER'] != 'msie') {
+                                       $width = (intval($this->thisConfig['RTEWidthOverride']) > 0) ? $this->thisConfig['RTEWidthOverride'] : '100%';
+                               }
+                       } else {
+                               $width = (intval($this->thisConfig['RTEWidthOverride']) > 0) ? intval($this->thisConfig['RTEWidthOverride']) : $width;
+                       }
+               }
+               $RTEWidth = strstr($width, '%') ? $width : $width . 'px';
+               $editorWrapWidth = strstr($width, '%') ? $width :  ($width+2) . 'px';
+               $height = 380;
                $RTEHeightOverride = intval($this->thisConfig['RTEHeightOverride']);
-               $RTEHeight = ($RTEHeightOverride > 0) ? $RTEHeightOverride : $RTEHeight;
-               $editorWrapWidth = $RTEWidth . 'px';
-               $editorWrapHeight = $RTEHeight . 'px';
-               $this->RTEWrapStyle = $this->RTEWrapStyle ? $this->RTEWrapStyle : ($this->RTEdivStyle ? $this->RTEdivStyle : ('height:' . ($RTEHeight+2) . 'px; width:'. ($RTEWidth+2) . 'px;'));
-               $this->RTEdivStyle = $this->RTEdivStyle ? $this->RTEdivStyle : 'position:relative; left:0px; top:0px; height:' . $RTEHeight . 'px; width:'.$RTEWidth.'px; border: 1px solid black;';
-               $this->toolbar_level_size = $RTEWidth;
+               $height = ($RTEHeightOverride > 0) ? $RTEHeightOverride : $height;
+               $RTEHeight = $height . 'px';
+               $editorWrapHeight = ($height+2) . 'px';
+               $this->RTEWrapStyle = $this->RTEWrapStyle ? $this->RTEWrapStyle : ($this->RTEdivStyle ? $this->RTEdivStyle : ('height:' . $editorWrapHeight . '; width:'. $editorWrapWidth . ';'));
+               $this->RTEdivStyle = $this->RTEdivStyle ? $this->RTEdivStyle : 'position:relative; left:0px; top:0px; height:' . $RTEHeight . '; width:'.$RTEWidth.'; border: 1px solid black;';
 
                /* =======================================
                 * LOAD JS, CSS and more