[!!!][TASK] Move old legacy content objects to compatibility6 26/36426/3
authorBenjamin Mack <benni@typo3.org>
Fri, 30 Jan 2015 14:00:53 +0000 (15:00 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Fri, 30 Jan 2015 15:28:12 +0000 (16:28 +0100)
The following content objects are moved to
EXT:compatibility6, as they are considered
not state-of-the-art anymore.

 * CTABLE
 * OTABLE
 * HRULER
 * CLEARGIF
 * COLUMNS

They are not used inside the core anymore.

Resolves: #64639
Releases: master
Change-Id: I8e4a04997e2f7edff0ebeb8801158cf381dec06a
Reviewed-on: http://review.typo3.org/36426
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Jan Helke <typo3@helke.de>
Tested-by: Jan Helke <typo3@helke.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
20 files changed:
typo3/sysext/compatibility6/Classes/ContentObject/ClearGifContentObject.php [new file with mode: 0644]
typo3/sysext/compatibility6/Classes/ContentObject/ColumnsContentObject.php [new file with mode: 0644]
typo3/sysext/compatibility6/Classes/ContentObject/ContentTableContentObject.php [new file with mode: 0644]
typo3/sysext/compatibility6/Classes/ContentObject/HorizontalRulerContentObject.php [new file with mode: 0644]
typo3/sysext/compatibility6/Classes/ContentObject/OffsetTableContentObject.php [new file with mode: 0644]
typo3/sysext/compatibility6/Classes/ContentObject/TableRenderer.php [new file with mode: 0644]
typo3/sysext/compatibility6/Migrations/Code/ClassAliasMap.php
typo3/sysext/compatibility6/Migrations/Code/LegacyClassesForIde.php
typo3/sysext/compatibility6/ext_localconf.php [new file with mode: 0644]
typo3/sysext/core/Documentation/Changelog/master/Breaking-64639-RemovedContentObjects.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/ContentObject/ClearGifContentObject.php [deleted file]
typo3/sysext/frontend/Classes/ContentObject/ColumnsContentObject.php [deleted file]
typo3/sysext/frontend/Classes/ContentObject/ContentTableContentObject.php [deleted file]
typo3/sysext/frontend/Classes/ContentObject/HorizontalRulerContentObject.php [deleted file]
typo3/sysext/frontend/Classes/ContentObject/OffsetTableContentObject.php [deleted file]
typo3/sysext/frontend/Classes/ContentObject/TableRenderer.php [deleted file]
typo3/sysext/frontend/Tests/Unit/ContentObject/ContentObjectRendererTest.php
typo3/sysext/frontend/ext_localconf.php
typo3/sysext/t3editor/res/jslib/parse_typoscript/tokenizetyposcript.js
typo3/sysext/t3editor/res/tsref/tsref.xml

diff --git a/typo3/sysext/compatibility6/Classes/ContentObject/ClearGifContentObject.php b/typo3/sysext/compatibility6/Classes/ContentObject/ClearGifContentObject.php
new file mode 100644 (file)
index 0000000..ab83112
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+namespace TYPO3\CMS\Compatibility6\ContentObject;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Contains CLEARGIF class object.
+ *
+ * @author Xavier Perseguers <typo3@perseguers.ch>
+ * @author Steffen Kamper <steffen@typo3.org>
+ */
+class ClearGifContentObject extends \TYPO3\CMS\Frontend\ContentObject\AbstractContentObject {
+
+       /**
+        * Rendering the cObject, CLEARGIF
+        *
+        * @param array $conf Array of TypoScript properties
+        * @return string Output
+        */
+       public function render($conf = array()) {
+               $width = isset($conf['width.']) ? $this->cObj->stdWrap($conf['width'], $conf['width.']) : $conf['width'];
+               if (!$width) {
+                       $width = 1;
+               }
+               $height = isset($conf['height.']) ? $this->cObj->stdWrap($conf['height'], $conf['height.']) : $conf['height'];
+               if (!$height) {
+                       $height = 1;
+               }
+               $wrap = isset($conf['wrap.']) ? $this->cObj->stdWrap($conf['wrap'], $conf['wrap.']) : $conf['wrap'];
+               if (!$wrap) {
+                       $wrap = '|<br />';
+               }
+               $theValue = $this->cObj->wrap('<img
+                       src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif"
+                       width="' . $width . '"
+                       height="' . $height . '"' . $this->cObj->getBorderAttr(' border="0"') . '
+                       alt="" />', $wrap);
+               if (isset($conf['stdWrap.'])) {
+                       $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']);
+               }
+               return $theValue;
+       }
+
+}
diff --git a/typo3/sysext/compatibility6/Classes/ContentObject/ColumnsContentObject.php b/typo3/sysext/compatibility6/Classes/ContentObject/ColumnsContentObject.php
new file mode 100644 (file)
index 0000000..45f3e53
--- /dev/null
@@ -0,0 +1,106 @@
+<?php
+namespace TYPO3\CMS\Compatibility6\ContentObject;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Contains COLUMNS content object.
+ *
+ * @author Xavier Perseguers <typo3@perseguers.ch>
+ * @author Steffen Kamper <steffen@typo3.org>
+ */
+class ColumnsContentObject extends \TYPO3\CMS\Frontend\ContentObject\AbstractContentObject {
+
+       /**
+        * Rendering the cObject, COLUMNS
+        *
+        * @param array $conf Array of TypoScript properties
+        * @return string Output
+        */
+       public function render($conf = array()) {
+               if (empty($conf) || !empty($conf['if.']) && !$this->cObj->checkIf($conf['if.'])) {
+                       return '';
+               }
+
+               $content = '';
+
+               $tdRowCount = 0;
+               $tableParams = isset($conf['tableParams.']) ? $this->cObj->stdWrap($conf['tableParams'], $conf['tableParams.']) : $conf['tableParams'];
+               $tableParams = $tableParams ? ' ' . $tableParams : ' border="0" cellspacing="0" cellpadding="0"';
+               $TDparams = isset($conf['TDParams.']) ? $this->cObj->stdWrap($conf['TDParams'], $conf['TDParams.']) : $conf['TDParams'];
+               $TDparams = $TDparams ? ' ' . $TDparams : ' valign="top"';
+               $rows = isset($conf['rows.']) ? $this->cObj->stdWrap($conf['rows'], $conf['rows.']) : $conf['rows'];
+               $rows = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($rows, 2, 20);
+               $totalWidth = isset($conf['totalWidth.']) ? (int)$this->cObj->stdWrap($conf['totalWidth'], $conf['totalWidth.']) : (int)$conf['totalWidth'];
+               $totalGapWidth = 0;
+               $gapData = array(
+                       'gapWidth' => isset($conf['gapWidth.']) ? $this->cObj->stdWrap($conf['gapWidth'], $conf['gapWidth.']) : $conf['gapWidth'],
+                       'gapBgCol' => isset($conf['gapBgCol.']) ? $this->cObj->stdWrap($conf['gapBgCol'], $conf['gapBgCol.']) : $conf['gapBgCol'],
+                       'gapLineThickness' => isset($conf['gapLineThickness.']) ? $this->cObj->stdWrap($conf['gapLineThickness'], $conf['gapLineThickness.']) : $conf['gapLineThickness'],
+                       'gapLineCol' => isset($conf['gapLineCol.']) ? $this->cObj->stdWrap($conf['gapLineCol'], $conf['gapLineCol.']) : $conf['gapLineCol']
+               );
+               $gapData = $GLOBALS['TSFE']->tmpl->splitConfArray($gapData, $rows - 1);
+               foreach ($gapData as $val) {
+                       $totalGapWidth += (int)$val['gapWidth'];
+               }
+               if ($totalWidth) {
+                       $columnWidth = ceil(($totalWidth - $totalGapWidth) / $rows);
+                       $TDparams .= ' width="' . $columnWidth . '"';
+                       $tableParams .= ' width="' . $totalWidth . '"';
+               } else {
+                       $TDparams .= ' width="' . floor(100 / $rows) . '%"';
+                       $tableParams .= ' width="100%"';
+               }
+               for ($a = 1; $a <= $rows; $a++) {
+                       $tdRowCount++;
+                       $content .= '<td' . $TDparams . '>';
+                       $content .= $this->cObj->cObjGetSingle($conf[$a], $conf[$a . '.'], $a);
+                       $content .= '</td>';
+                       if ($a < $rows) {
+                               $gapConf = $gapData[$a - 1];
+                               $gapWidth = (int)$gapConf['gapWidth'];
+                               if ($gapWidth) {
+                                       $tdPar = $gapConf['gapBgCol'] ? ' bgcolor="' . $gapConf['gapBgCol'] . '"' : '';
+                                       $gapLine = (int)$gapConf['gapLineThickness'];
+                                       if ($gapLine) {
+                                               $gapSurround = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange(($gapWidth - $gapLine) / 2, 1, 1000);
+                                               // right gap
+                                               $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $gapSurround . '" height="1" alt="" title="" /></td>';
+                                               $tdRowCount++;
+                                               // line:
+                                               $GtdPar = $gapConf['gapLineCol'] ? ' bgcolor="' . $gapConf['gapLineCol'] . '"' : ' bgcolor="black"';
+                                               $content .= '<td' . $GtdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $gapLine . '" height="1" alt="" title="" /></td>';
+                                               $tdRowCount++;
+                                               // left gap
+                                               $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $gapSurround . '" height="1" alt="" title="" /></td>';
+                                               $tdRowCount++;
+                                       } else {
+                                               $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $gapWidth . '" height="1" alt="" title="" /></td>';
+                                               $tdRowCount++;
+                                       }
+                               }
+                       }
+               }
+               $content = '<tr>' . $content . '</tr>';
+               $content = '<table' . $tableParams . '>' . $content . '</table>';
+               if ($conf['after'] || isset($conf['after.'])) {
+                       $content .= $this->cObj->cObjGetSingle($conf['after'], $conf['after.'], 'after');
+               }
+               if (isset($conf['stdWrap.'])) {
+                       $content = $this->cObj->stdWrap($content, $conf['stdWrap.']);
+               }
+               return $content;
+       }
+
+}
diff --git a/typo3/sysext/compatibility6/Classes/ContentObject/ContentTableContentObject.php b/typo3/sysext/compatibility6/Classes/ContentObject/ContentTableContentObject.php
new file mode 100644 (file)
index 0000000..06ce365
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+namespace TYPO3\CMS\Compatibility6\ContentObject;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Contains CTABLE content object.
+ *
+ * @author Xavier Perseguers <typo3@perseguers.ch>
+ * @author Steffen Kamper <steffen@typo3.org>
+ */
+class ContentTableContentObject extends \TYPO3\CMS\Frontend\ContentObject\AbstractContentObject {
+
+       /**
+        * Rendering the cObject, CTABLE
+        *
+        * @param array $conf Array of TypoScript properties
+        * @return string Output
+        */
+       public function render($conf = array()) {
+               $controlTable = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(TableRenderer::class);
+               $tableParams = isset($conf['tableParams.']) ? $this->cObj->stdWrap($conf['tableParams'], $conf['tableParams.']) : $conf['tableParams'];
+               if ($tableParams) {
+                       $controlTable->tableParams = $tableParams;
+               }
+               // loads the pagecontent
+               $conf['cWidth'] = isset($conf['cWidth.']) ? $this->cObj->stdWrap($conf['cWidth'], $conf['cWidth.']) : $conf['cWidth'];
+               $controlTable->contentW = $conf['cWidth'];
+               // loads the menues if any
+               if (is_array($conf['c.'])) {
+                       $controlTable->content = $this->cObj->cObjGet($conf['c.'], 'c.');
+                       $contentTDParams = isset($conf['c.']['TDParams.']) ? $this->cObj->stdWrap($conf['c.']['TDParams'], $conf['c.']['TDParams.']) : $conf['c.']['TDParams'];
+                       $controlTable->contentTDparams = isset($contentTDParams) ? $contentTDParams : 'valign="top"';
+               }
+               if (is_array($conf['lm.'])) {
+                       $controlTable->lm = $this->cObj->cObjGet($conf['lm.'], 'lm.');
+                       $lmTDParams = isset($conf['lm.']['TDParams.']) ? $this->cObj->stdWrap($conf['lm.']['TDParams'], $conf['lm.']['TDParams.']) : $conf['lm.']['TDParams'];
+                       $controlTable->lmTDparams = isset($lmTDParams) ? $lmTDParams : 'valign="top"';
+               }
+               if (is_array($conf['tm.'])) {
+                       $controlTable->tm = $this->cObj->cObjGet($conf['tm.'], 'tm.');
+                       $tmTDParams = isset($conf['tm.']['TDParams.']) ? $this->cObj->stdWrap($conf['tm.']['TDParams'], $conf['tm.']['TDParams.']) : $conf['tm.']['TDParams'];
+                       $controlTable->tmTDparams = isset($tmTDParams) ? $tmTDParams : 'valign="top"';
+               }
+               if (is_array($conf['rm.'])) {
+                       $controlTable->rm = $this->cObj->cObjGet($conf['rm.'], 'rm.');
+                       $rmTDParams = isset($conf['rm.']['TDParams.']) ? $this->cObj->stdWrap($conf['rm.']['TDParams'], $conf['rm.']['TDParams.']) : $conf['rm.']['TDParams'];
+                       $controlTable->rmTDparams = isset($rmTDParams) ? $rmTDParams : 'valign="top"';
+               }
+               if (is_array($conf['bm.'])) {
+                       $controlTable->bm = $this->cObj->cObjGet($conf['bm.'], 'bm.');
+                       $bmTDParams = isset($conf['bm.']['TDParams.']) ? $this->cObj->stdWrap($conf['bm.']['TDParams'], $conf['bm.']['TDParams.']) : $conf['bm.']['TDParams'];
+                       $controlTable->bmTDparams = isset($bmTDParams) ? $bmTDParams : 'valign="top"';
+               }
+               $conf['offset'] = isset($conf['offset.']) ? $this->cObj->stdWrap($conf['offset'], $conf['offset.']) : $conf['offset'];
+               $conf['cMargins'] = isset($conf['cMargins.']) ? $this->cObj->stdWrap($conf['cMargins'], $conf['cMargins.']) : $conf['cMargins'];
+               $theValue = $controlTable->start($conf['offset'], $conf['cMargins']);
+               if (isset($conf['stdWrap.'])) {
+                       $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']);
+               }
+               return $theValue;
+       }
+
+}
diff --git a/typo3/sysext/compatibility6/Classes/ContentObject/HorizontalRulerContentObject.php b/typo3/sysext/compatibility6/Classes/ContentObject/HorizontalRulerContentObject.php
new file mode 100644 (file)
index 0000000..9c3ea77
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+namespace TYPO3\CMS\Compatibility6\ContentObject;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Contains HRULER content object.
+ *
+ * @author Xavier Perseguers <typo3@perseguers.ch>
+ * @author Steffen Kamper <steffen@typo3.org>
+ */
+class HorizontalRulerContentObject extends \TYPO3\CMS\Frontend\ContentObject\AbstractContentObject {
+
+       /**
+        * Rendering the cObject, HRULER
+        *
+        * @param array $conf Array of TypoScript properties
+        * @return string Output
+        */
+       public function render($conf = array()) {
+               $lineThickness = isset($conf['lineThickness.']) ? $this->cObj->stdWrap($conf['lineThickness'], $conf['lineThickness.']) : $conf['lineThickness'];
+               $lineThickness = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($lineThickness, 1, 50);
+               $lineColor = isset($conf['lineColor.']) ? $this->cObj->stdWrap($conf['lineColor'], $conf['lineColor.']) : $conf['lineColor'];
+               if (!$lineColor) {
+                       $lineColor = 'black';
+               }
+               $spaceBefore = isset($conf['spaceLeft.']) ? (int)$this->cObj->stdWrap($conf['spaceLeft'], $conf['spaceLeft.']) : (int)$conf['spaceLeft'];
+               $spaceAfter = isset($conf['spaceRight.']) ? (int)$this->cObj->stdWrap($conf['spaceRight'], $conf['spaceRight.']) : (int)$conf['spaceRight'];
+               $tableWidth = isset($conf['tableWidth.']) ? (int)$this->cObj->stdWrap($conf['tableWidth'], $conf['tableWidth.']) : (int)$conf['tableWidth'];
+               if (!$tableWidth) {
+                       $tableWidth = '99%';
+               }
+               $theValue = '';
+               $theValue .= '<table border="0" cellspacing="0" cellpadding="0"
+                       width="' . htmlspecialchars($tableWidth) . '"
+                       summary=""><tr>';
+               if ($spaceBefore) {
+                       $theValue .= '<td width="1">
+                               <img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif"
+                               width="' . $spaceBefore . '"
+                               height="1" alt="" title="" />
+                       </td>';
+               }
+               $theValue .= '<td bgcolor="' . $lineColor . '">
+                       <img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif"
+                       width="1"
+                       height="' . $lineThickness . '"
+                       alt="" title="" />
+               </td>';
+               if ($spaceAfter) {
+                       $theValue .= '<td width="1">
+                               <img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif"
+                               width="' . $spaceAfter . '"
+                               height="1" alt="" title="" />
+                       </td>';
+               }
+               $theValue .= '</tr></table>';
+               if (isset($conf['stdWrap.'])) {
+                       $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']);
+               }
+               return $theValue;
+       }
+
+}
diff --git a/typo3/sysext/compatibility6/Classes/ContentObject/OffsetTableContentObject.php b/typo3/sysext/compatibility6/Classes/ContentObject/OffsetTableContentObject.php
new file mode 100644 (file)
index 0000000..cca9238
--- /dev/null
@@ -0,0 +1,146 @@
+<?php
+namespace TYPO3\CMS\Compatibility6\ContentObject;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Rendering of tables for offset
+ */
+class OffsetTableContentObject extends \TYPO3\CMS\Frontend\ContentObject\AbstractContentObject {
+
+       /**
+        * @var string
+        */
+       public $tableParams = 'border="0" cellspacing="0" cellpadding="0"';
+
+       /**
+        * @var string
+        */
+       public $default_tableParams = 'border="0" cellspacing="0" cellpadding="0"';
+
+       /**
+        * @var string
+        */
+       public $tdParams = ' width="99%" valign="top"';
+
+       /**
+        * Override default constructor to make it possible to instantiate this
+        * class for rendering an offset table not in content object context
+        *
+        * @param \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $cObj
+        */
+       public function __construct(\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $cObj = NULL) {
+               if (!is_null($cObj)) {
+                       $this->cObj = $cObj;
+                       $this->fileFactory = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance();
+               }
+       }
+
+       /**
+        * Rendering the cObject, OTABLE
+        *
+        * @param array $conf Array of TypoScript properties
+        * @return string Output
+        */
+       public function render($conf = array()) {
+               $tableParams = isset($conf['tableParams.']) ? $this->cObj->stdWrap($conf['tableParams'], $conf['tableParams.']) : $conf['tableParams'];
+               if ($tableParams) {
+                       $this->tableParams = $tableParams;
+               }
+               $offset = isset($conf['offset.']) ? $this->cObj->stdWrap($conf['offset'], $conf['offset.']) : $conf['offset'];
+               $content = $this->start($this->cObj->cObjGet($conf), $offset);
+               if (isset($conf['stdWrap.'])) {
+                       $content = $this->cObj->stdWrap($content, $conf['stdWrap.']);
+               }
+               return $content;
+       }
+
+       /**
+        * Wrapping the input content string in a table which will space it out from top/left/right/bottom
+        *
+        * @param string $content The HTML content string
+        * @param string $offset List of offset parameters; x,y,r,b,w,h
+        * @return string The HTML content string being wrapped in a <table> offsetting the content as the $offset parameters defined
+        */
+       public function start($content, $offset) {
+               $valPairs = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $offset . ',,,,,');
+               if ($valPairs[0] || $valPairs[1] || $valPairs[2] || $valPairs[3] || $valPairs[4] || $valPairs[5]) {
+                       // If width is defined AND there has been no change to the default table params,
+                       // then extend them to a tablewidth of 1
+                       if ($valPairs[4] && $this->default_tableParams == $this->tableParams) {
+                               $this->tableParams .= ' width="1"';
+                       }
+                       // Init:
+                       $this->begin = LF . '<table ' . $this->tableParams . '>';
+                       $this->end = '</table>';
+                       $rows = array();
+                       $widthImg = '';
+                       $heightImg = '';
+                       // If width is required, set so bottom column will display for sure
+                       if ($valPairs[4]) {
+                               if (!$valPairs[3]) {
+                                       $valPairs[3] = 1;
+                               }
+                               $widthImg = '<img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $valPairs[4] . '" height="1" alt="" title="" />';
+                       }
+                       // If height is required, set so right column will display for sure
+                       if ($valPairs[5]) {
+                               if (!$valPairs[2]) {
+                                       $valPairs[2] = 1;
+                               }
+                               $valPairs[2] = 1;
+                               $heightImg = '<img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $valPairs[5] . '" alt="" title="" />';
+                       }
+                       // First row:
+                       // top
+                       if ($valPairs[1]) {
+                               $rows[1] .= '<tr>';
+                               $rows[1] .= '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . ($valPairs[0] ?: 1) . '" height="' . $valPairs[1] . '" alt="" title="" /></td>';
+                               if ($valPairs[0]) {
+                                       $rows[1] .= '<td></td>';
+                               }
+                               if ($valPairs[2]) {
+                                       $rows[1] .= '<td></td>';
+                               }
+                               $rows[1] .= '</tr>';
+                       }
+                       // Middle row:
+                       $rows[2] .= '<tr>';
+                       if ($valPairs[0]) {
+                               $rows[2] .= $valPairs[1] ? '<td></td>' : '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $valPairs[0] . '" height="1" alt="" title="" /></td>';
+                       }
+                       $rows[2] .= '<td' . $this->tdParams . '>' . $content . '</td>';
+                       if ($valPairs[2]) {
+                               $rows[2] .= $valPairs[3] ? '<td>' . $heightImg . '</td>' : '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $valPairs[2] . '" height="' . ($valPairs[5] ?: 1) . '" alt="" title="" /></td>';
+                       }
+                       $rows[2] .= '</tr>';
+                       // Bottom row:
+                       if ($valPairs[3]) {
+                               $rows[3] .= '<tr>';
+                               if ($valPairs[0]) {
+                                       $rows[3] .= '<td></td>';
+                               }
+                               if ($valPairs[2]) {
+                                       $rows[3] .= '<td>' . $widthImg . '</td>';
+                               }
+                               $rows[3] .= '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . ($valPairs[2] ?: ($valPairs[4] ?: 1)) . '" height="' . $valPairs[3] . '" alt="" title="" /></td>';
+                               $rows[3] .= '</tr>';
+                       }
+                       return $this->begin . implode('', $rows) . $this->end;
+               } else {
+                       return $content;
+               }
+       }
+
+}
diff --git a/typo3/sysext/compatibility6/Classes/ContentObject/TableRenderer.php b/typo3/sysext/compatibility6/Classes/ContentObject/TableRenderer.php
new file mode 100644 (file)
index 0000000..74d4d80
--- /dev/null
@@ -0,0 +1,265 @@
+<?php
+namespace TYPO3\CMS\Compatibility6\ContentObject;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * Rendering of tables for content positioning
+ *
+ * @see ContentObjectRenderer::CTABLE()
+ * @author Kasper Skårhøj <kasperYYYY@typo3.com>
+ */
+class TableRenderer {
+
+       /**
+        * offset, x
+        *
+        * @var int
+        */
+       public $offX = 0;
+
+       /**
+        * offset, y
+        *
+        * @var int
+        */
+       public $offY = 0;
+
+       /**
+        * top menu
+        *
+        * @var string
+        */
+       public $tm = '';
+
+       /**
+        * left menu
+        *
+        * @var string
+        */
+       public $lm = '';
+
+       /**
+        * right menu
+        *
+        * @var string
+        */
+       public $rm = '';
+
+       /**
+        * bottom menu
+        *
+        * @var string
+        */
+       public $bm = '';
+
+       /**
+        * content
+        *
+        * @var string
+        */
+       public $content = '';
+
+       /**
+        * top menu TDparams
+        *
+        * @var string
+        */
+       public $tmTDparams = 'valign="top"';
+
+       /**
+        * left menu TDparams
+        *
+        * @var string
+        */
+       public $lmTDparams = 'valign="top"';
+
+       /**
+        * right menu TDparams
+        *
+        * @var string
+        */
+       public $rmTDparams = 'valign="top"';
+
+       /**
+        * bottom menu TDparams
+        *
+        * @var string
+        */
+       public $bmTDparams = 'valign="top"';
+
+       /**
+        * content TDparams
+        *
+        * @var string
+        */
+       public $contentTDparams = 'valign="top"';
+
+       /**
+        * content margin, left
+        *
+        * @var int
+        */
+       public $cMl = 1;
+
+       /**
+        * content margin, right
+        *
+        * @var int
+        */
+       public $cMr = 1;
+
+       /**
+        * content margin, top
+        *
+        * @var int
+        */
+       public $cMt = 0;
+
+       /**
+        * content margin, bottom
+        *
+        * @var int
+        */
+       public $cMb = 1;
+
+       /**
+        * Places a little gif-spacer in the bottom of the content frame
+        *
+        * @var int
+        */
+       public $contentW = 0;
+
+       /**
+        * @var string
+        */
+       public $tableParams = 'border="0" cellspacing="0" cellpadding="0"';
+
+       /**
+        * Wrapping internal vars ->tm, ->lm, ->rm, ->bm and ->content in a table where each content part is stored in a cell.
+        * The two arguments to this function defines some offsets and margins to use in the arrangement of the content in the table.
+        *
+        * @param string $offset List of offset parameters; x,y
+        * @param string $cMargins List of margin parameters; left, top, right, bottom
+        * @return string The content strings wrapped in a <table> as the parameters defined
+        * @see \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::CTABLE()
+        */
+       public function start($offset, $cMargins) {
+               $offArr = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $offset);
+               $cMargArr = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $cMargins);
+               $cols = 0;
+               $rows = 0;
+               if ($this->lm) {
+                       $cols++;
+               }
+               if ($this->rm) {
+                       $cols++;
+               }
+               if ($cMargArr[0]) {
+                       $cols++;
+               }
+               if ($cMargArr[2]) {
+                       $cols++;
+               }
+               if ($cMargArr[1] || $cMargArr[3] || $this->tm || $this->bm || $this->content || $this->contentW) {
+                       $cols++;
+               }
+               if ($cMargArr[1]) {
+                       $rows++;
+               }
+               if ($cMargArr[3]) {
+                       $rows++;
+               }
+               if ($this->tm) {
+                       $rows++;
+               }
+               if ($this->bm) {
+                       $rows++;
+               }
+               if ($this->content) {
+                       $rows++;
+               }
+               if ($this->contentW) {
+                       $rows++;
+               }
+               if (!$rows && $cols) {
+                       // If there are no rows in the middle but still som columns...
+                       $rows = 1;
+               }
+               if ($rows && $cols) {
+                       $res = LF . '<table ' . $this->tableParams . '>';
+                       // Top offset:
+                       if ($offArr[1]) {
+                               $xoff = $offArr[0] ? 1 : 0;
+                               if ($cols + $xoff > 1) {
+                                       $colspan = ' colspan="' . ($cols + $xoff) . '"';
+                               }
+                               $res .= '<tr><td' . $colspan . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $offArr[1] . '" alt="" title="" /></td></tr>';
+                       }
+                       // The rows:
+                       if ($rows > 1) {
+                               $rowspan = ' rowspan="' . $rows . '"';
+                       }
+                       $res .= '<tr>';
+                       if ($offArr[0]) {
+                               $res .= '<td' . $rowspan . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" height="1" width="' . $offArr[0] . '" alt="" title="" /></td>';
+                       }
+                       if ($this->lm) {
+                               $res .= '<td' . $rowspan . ' ' . $this->lmTDparams . '>' . $this->lm . '</td>';
+                       }
+                       if ($cMargArr[0]) {
+                               $res .= '<td' . $rowspan . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" height="1" width="' . $cMargArr[0] . '" alt="" title="" /></td>';
+                       }
+                       // Content...
+                       $middle = array();
+                       if ($this->tm) {
+                               $middle[] = '<td ' . $this->tmTDparams . '>' . $this->tm . '</td>';
+                       }
+                       if ($cMargArr[1]) {
+                               $middle[] = '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $cMargArr[1] . '" alt="" title="" /></td>';
+                       }
+                       if ($this->content) {
+                               $middle[] = '<td ' . $this->contentTDparams . '>' . $this->content . '</td>';
+                       }
+                       if ($cMargArr[3]) {
+                               $middle[] = '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $cMargArr[3] . '" alt="" title="" /></td>';
+                       }
+                       if ($this->bm) {
+                               $middle[] = '<td ' . $this->bmTDparams . '>' . $this->bm . '</td>';
+                       }
+                       if ($this->contentW) {
+                               $middle[] = '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" height="1" width="' . $this->contentW . '" alt="" title="" /></td>';
+                       }
+                       if (isset($middle[0])) {
+                               $res .= $middle[0];
+                       }
+                       // Left of content
+                       if ($cMargArr[2]) {
+                               $res .= '<td' . $rowspan . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" height="1" width="' . $cMargArr[2] . '" alt="" title="" /></td>';
+                       }
+                       if ($this->rm) {
+                               $res .= '<td' . $rowspan . ' ' . $this->rmTDparams . '>' . $this->rm . '</td>';
+                       }
+                       $res .= '</tr>';
+                       // More than the two rows
+                       $mCount = count($middle);
+                       for ($a = 1; $a < $mCount; $a++) {
+                               $res .= '<tr>' . $middle[$a] . '</tr>';
+                       }
+                       $res .= '</table>';
+                       return $res;
+               }
+       }
+
+}
index 33052a7..a6670cd 100644 (file)
@@ -948,8 +948,8 @@ return array(
        't3lib_formmail' => \TYPO3\CMS\Frontend\Controller\DataSubmissionController::class,
        'tslib_content_Abstract' => \TYPO3\CMS\Frontend\ContentObject\AbstractContentObject::class,
        'tslib_content_Case' => \TYPO3\CMS\Frontend\ContentObject\CaseContentObject::class,
-       'tslib_content_ClearGif' => \TYPO3\CMS\Frontend\ContentObject\ClearGifContentObject::class,
-       'tslib_content_Columns' => \TYPO3\CMS\Frontend\ContentObject\ColumnsContentObject::class,
+       'tslib_content_ClearGif' => \TYPO3\CMS\Compatibility6\ContentObject\ClearGifContentObject::class,
+       'tslib_content_Columns' => \TYPO3\CMS\Compatibility6\ContentObject\ColumnsContentObject::class,
        'tslib_content_Content' => \TYPO3\CMS\Frontend\ContentObject\ContentContentObject::class,
        'tslib_content_ContentObjectArray' => \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayContentObject::class,
        'tslib_content_ContentObjectArrayInternal' => \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayInternalContentObject::class,
@@ -960,7 +960,7 @@ return array(
        'tslib_content_PostInitHook' => \TYPO3\CMS\Frontend\ContentObject\ContentObjectPostInitHookInterface::class,
        'tslib_cObj' => \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::class,
        'tslib_content_stdWrapHook' => \TYPO3\CMS\Frontend\ContentObject\ContentObjectStdWrapHookInterface::class,
-       'tslib_content_ContentTable' => \TYPO3\CMS\Frontend\ContentObject\ContentTableContentObject::class,
+       'tslib_content_ContentTable' => \TYPO3\CMS\Compatibility6\ContentObject\ContentTableContentObject::class,
        'tslib_content_EditPanel' => \TYPO3\CMS\Frontend\ContentObject\EditPanelContentObject::class,
        'tslib_content_File' => \TYPO3\CMS\Frontend\ContentObject\FileContentObject::class,
        'tslib_content_fileLinkHook' => \TYPO3\CMS\Frontend\ContentObject\FileLinkHookInterface::class,
@@ -969,14 +969,14 @@ return array(
        'tslib_content_FluidTemplate' => \TYPO3\CMS\Frontend\ContentObject\FluidTemplateContentObject::class,
        'tslib_content_Form' => \TYPO3\CMS\Frontend\ContentObject\FormContentObject::class,
        'tslib_content_HierarchicalMenu' => \TYPO3\CMS\Frontend\ContentObject\HierarchicalMenuContentObject::class,
-       'tslib_content_HorizontalRuler' => \TYPO3\CMS\Frontend\ContentObject\HorizontalRulerContentObject::class,
+       'tslib_content_HorizontalRuler' => \TYPO3\CMS\Compatibility6\ContentObject\HorizontalRulerContentObject::class,
        'tslib_content_Image' => \TYPO3\CMS\Frontend\ContentObject\ImageContentObject::class,
        'tslib_content_ImageResource' => \TYPO3\CMS\Frontend\ContentObject\ImageResourceContentObject::class,
        'tslib_content_ImageText' => \TYPO3\CMS\Frontend\ContentObject\ImageTextContentObject::class,
        'tslib_content_LoadRegister' => \TYPO3\CMS\Frontend\ContentObject\LoadRegisterContentObject::class,
        'tslib_content_Media' => \TYPO3\CMS\Frontend\ContentObject\MediaContentObject::class,
        'tslib_content_Multimedia' => \TYPO3\CMS\Frontend\ContentObject\MultimediaContentObject::class,
-       'tslib_content_OffsetTable' => \TYPO3\CMS\Frontend\ContentObject\OffsetTableContentObject::class,
+       'tslib_content_OffsetTable' => \TYPO3\CMS\Compatibility6\ContentObject\OffsetTableContentObject::class,
        'tslib_content_QuicktimeObject' => \TYPO3\CMS\Frontend\ContentObject\QuicktimeObjectContentObject::class,
        'tslib_content_Records' => \TYPO3\CMS\Frontend\ContentObject\RecordsContentObject::class,
        'tslib_content_RestoreRegister' => \TYPO3\CMS\Frontend\ContentObject\RestoreRegisterContentObject::class,
@@ -993,9 +993,9 @@ return array(
        'tslib_imgmenu' => \TYPO3\CMS\Frontend\ContentObject\Menu\ImageMenuContentObject::class,
        'tslib_jsmenu' => \TYPO3\CMS\Frontend\ContentObject\Menu\JavaScriptMenuContentObject::class,
        'tslib_tmenu' => \TYPO3\CMS\Frontend\ContentObject\Menu\TextMenuContentObject::class,
-       'tslib_tableOffset' => \TYPO3\CMS\Frontend\ContentObject\OffsetTableContentObject::class,
+       'tslib_tableOffset' => \TYPO3\CMS\Compatibility6\ContentObject\OffsetTableContentObject::class,
        'tslib_search' => \TYPO3\CMS\Frontend\ContentObject\SearchResultContentObject::class,
-       'tslib_controlTable' => \TYPO3\CMS\Frontend\ContentObject\TableRenderer::class,
+       'tslib_controlTable' => \TYPO3\CMS\Compatibility6\ContentObject\TableRenderer::class,
        'tslib_ExtDirectEid' => \TYPO3\CMS\Frontend\Controller\ExtDirectEidController::class,
        'tx_cms_webinfo_page' => \TYPO3\CMS\Frontend\Controller\PageInformationController::class,
        'SC_tslib_showpic' => \TYPO3\CMS\Frontend\Controller\ShowImageController::class,
@@ -1273,5 +1273,10 @@ return array(
        'TBE_PageTree' => \TYPO3\CMS\Recordlist\Tree\View\ElementBrowserPageTreeView::class,
        'localFolderTree' => \TYPO3\CMS\Backend\Tree\View\ElementBrowserFolderTreeView::class,
        'TBE_FolderTree' => \TYPO3\CMS\Recordlist\Tree\View\ElementBrowserFolderTreeView::class,
-       'newRecordLocalPageTree' => \TYPO3\CMS\Backend\Tree\View\NewRecordPageTreeView::class
+       'newRecordLocalPageTree' => \TYPO3\CMS\Backend\Tree\View\NewRecordPageTreeView::class,
+       'TYPO3\\CMS\\Frontend\\ContentObject\\ClearGifContentObject' => \TYPO3\CMS\Compatibility6\ContentObject\ClearGifContentObject::class,
+       'TYPO3\\CMS\\Frontend\\ContentObject\\ContentTableContentObject' => \TYPO3\CMS\Compatibility6\ContentObject\ContentTableContentObject::class,
+       'TYPO3\\CMS\\Frontend\\ContentObject\\OffsetTableContentObject' => \TYPO3\CMS\Compatibility6\ContentObject\OffsetTableContentObject::class,
+       'TYPO3\\CMS\\Frontend\\ContentObject\\ColumnsContentObject' => \TYPO3\CMS\Compatibility6\ContentObject\ColumnsContentObject::class,
+       'TYPO3\\CMS\\Frontend\\ContentObject\\HorizontalRulerContentObject' => \TYPO3\CMS\Compatibility6\ContentObject\HorizontalRulerContentObject::class
 );
index a7bc70c..2f2d5c3 100644 (file)
@@ -4729,12 +4729,12 @@ class tslib_content_Case extends \TYPO3\CMS\Frontend\ContentObject\CaseContentOb
 /**
  * @deprecated since 6.0, removed since 7.0
  */
-class tslib_content_ClearGif extends \TYPO3\CMS\Frontend\ContentObject\ClearGifContentObject {}
+class tslib_content_ClearGif extends \TYPO3\CMS\Compatibility6\ContentObject\ClearGifContentObject {}
 
 /**
  * @deprecated since 6.0, removed since 7.0
  */
-class tslib_content_Columns extends \TYPO3\CMS\Frontend\ContentObject\ColumnsContentObject {}
+class tslib_content_Columns extends \TYPO3\CMS\Compatibility6\ContentObject\ColumnsContentObject {}
 
 /**
  * @deprecated since 6.0, removed since 7.0
@@ -4789,7 +4789,7 @@ interface tslib_content_stdWrapHook extends \TYPO3\CMS\Frontend\ContentObject\Co
 /**
  * @deprecated since 6.0, removed since 7.0
  */
-class tslib_content_ContentTable extends \TYPO3\CMS\Frontend\ContentObject\ContentTableContentObject {}
+class tslib_content_ContentTable extends \TYPO3\CMS\Compatibility6\ContentObject\ContentTableContentObject {}
 
 /**
  * @deprecated since 6.0, removed since 7.0
@@ -4834,7 +4834,7 @@ class tslib_content_HierarchicalMenu extends \TYPO3\CMS\Frontend\ContentObject\H
 /**
  * @deprecated since 6.0, removed since 7.0
  */
-class tslib_content_HorizontalRuler extends \TYPO3\CMS\Frontend\ContentObject\HorizontalRulerContentObject {}
+class tslib_content_HorizontalRuler extends \TYPO3\CMS\Compatibility6\ContentObject\HorizontalRulerContentObject {}
 
 /**
  * @deprecated since 6.0, removed since 7.0
@@ -4869,7 +4869,7 @@ class tslib_content_Multimedia extends \TYPO3\CMS\Frontend\ContentObject\Multime
 /**
  * @deprecated since 6.0, removed since 7.0
  */
-class tslib_content_OffsetTable extends \TYPO3\CMS\Frontend\ContentObject\OffsetTableContentObject {}
+class tslib_content_OffsetTable extends \TYPO3\CMS\Compatibility6\ContentObject\OffsetTableContentObject {}
 
 /**
  * @deprecated since 6.0, removed since 7.0
@@ -4944,7 +4944,7 @@ class tslib_imgmenu extends \TYPO3\CMS\Frontend\ContentObject\Menu\ImageMenuCont
 /**
  * @deprecated since 6.0, removed since 7.0
  */
-class tslib_tableOffset extends \TYPO3\CMS\Frontend\ContentObject\OffsetTableContentObject {}
+class tslib_tableOffset extends \TYPO3\CMS\Compatibility6\ContentObject\OffsetTableContentObject {}
 
 /**
  * @deprecated since 6.0, removed since 7.0
@@ -4954,7 +4954,7 @@ class tslib_search extends \TYPO3\CMS\Frontend\ContentObject\SearchResultContent
 /**
  * @deprecated since 6.0, removed since 7.0
  */
-class tslib_controlTable extends \TYPO3\CMS\Frontend\ContentObject\TableRenderer {}
+class tslib_controlTable extends \TYPO3\CMS\Compatibility6\ContentObject\TableRenderer {}
 
 /**
  * @deprecated since 6.0, removed since 7.0
diff --git a/typo3/sysext/compatibility6/ext_localconf.php b/typo3/sysext/compatibility6/ext_localconf.php
new file mode 100644 (file)
index 0000000..630ab03
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+defined('TYPO3_MODE') or die();
+
+if (TYPO3_MODE === 'FE') {
+
+       // Register legacy content objects
+       $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects']['CLEARGIF'] = \TYPO3\CMS\Compatibility6\ContentObject\ClearGifContentObject::class;
+       $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects']['CTABLE']   = \TYPO3\CMS\Compatibility6\ContentObject\ContentTableContentObject::class;
+       $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects']['OTABLE']   = \TYPO3\CMS\Compatibility6\ContentObject\OffsetTableContentObject::class;
+       $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects']['COLUMNS']  = \TYPO3\CMS\Compatibility6\ContentObject\ColumnsContentObject::class;
+       $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects']['HRULER']   = \TYPO3\CMS\Compatibility6\ContentObject\HorizontalRulerContentObject::class;
+}
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-64639-RemovedContentObjects.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-64639-RemovedContentObjects.rst
new file mode 100644 (file)
index 0000000..9e56318
--- /dev/null
@@ -0,0 +1,26 @@
+====================================================================
+Breaking: #63687 - Outdated ContentObjects moved to legacy extension
+====================================================================
+
+Description
+===========
+
+The TypoScript Content Objects (cObjects) CLEARGIF, COLUMNS, CTABLE, OTABLE and HRULER are moved to the legacy extension
+EXT:compatibility6.
+
+Impact
+======
+
+Any TypoScript using the cObjects above will result in an empty output in the TYPO3 Frontend.
+
+
+Affected installations
+======================
+
+TYPO3 CMS 7 installations still using the cObjects need the compatibility6 extension loaded if the rendering should
+be continued.
+
+Migration
+=========
+
+Any installation should migrate to alternatives such as FLUIDTEMPLATE to customize the output of the content.
diff --git a/typo3/sysext/frontend/Classes/ContentObject/ClearGifContentObject.php b/typo3/sysext/frontend/Classes/ContentObject/ClearGifContentObject.php
deleted file mode 100644 (file)
index 28b94a3..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-namespace TYPO3\CMS\Frontend\ContentObject;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Contains CLEARGIF class object.
- *
- * @author Xavier Perseguers <typo3@perseguers.ch>
- * @author Steffen Kamper <steffen@typo3.org>
- */
-class ClearGifContentObject extends AbstractContentObject {
-
-       /**
-        * Rendering the cObject, CLEARGIF
-        *
-        * @param array $conf Array of TypoScript properties
-        * @return string Output
-        */
-       public function render($conf = array()) {
-               $width = isset($conf['width.']) ? $this->cObj->stdWrap($conf['width'], $conf['width.']) : $conf['width'];
-               if (!$width) {
-                       $width = 1;
-               }
-               $height = isset($conf['height.']) ? $this->cObj->stdWrap($conf['height'], $conf['height.']) : $conf['height'];
-               if (!$height) {
-                       $height = 1;
-               }
-               $wrap = isset($conf['wrap.']) ? $this->cObj->stdWrap($conf['wrap'], $conf['wrap.']) : $conf['wrap'];
-               if (!$wrap) {
-                       $wrap = '|<br />';
-               }
-               $theValue = $this->cObj->wrap('<img
-                       src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif"
-                       width="' . $width . '"
-                       height="' . $height . '"' . $this->cObj->getBorderAttr(' border="0"') . '
-                       alt="" />', $wrap);
-               if (isset($conf['stdWrap.'])) {
-                       $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']);
-               }
-               return $theValue;
-       }
-
-}
diff --git a/typo3/sysext/frontend/Classes/ContentObject/ColumnsContentObject.php b/typo3/sysext/frontend/Classes/ContentObject/ColumnsContentObject.php
deleted file mode 100644 (file)
index 710a8e8..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-namespace TYPO3\CMS\Frontend\ContentObject;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Contains COLUMNS class object.
- *
- * @author Xavier Perseguers <typo3@perseguers.ch>
- * @author Steffen Kamper <steffen@typo3.org>
- */
-class ColumnsContentObject extends AbstractContentObject {
-
-       /**
-        * Rendering the cObject, COLUMNS
-        *
-        * @param array $conf Array of TypoScript properties
-        * @return string Output
-        */
-       public function render($conf = array()) {
-               if (empty($conf) || !empty($conf['if.']) && !$this->cObj->checkIf($conf['if.'])) {
-                       return '';
-               }
-
-               $content = '';
-
-               $tdRowCount = 0;
-               $tableParams = isset($conf['tableParams.']) ? $this->cObj->stdWrap($conf['tableParams'], $conf['tableParams.']) : $conf['tableParams'];
-               $tableParams = $tableParams ? ' ' . $tableParams : ' border="0" cellspacing="0" cellpadding="0"';
-               $TDparams = isset($conf['TDParams.']) ? $this->cObj->stdWrap($conf['TDParams'], $conf['TDParams.']) : $conf['TDParams'];
-               $TDparams = $TDparams ? ' ' . $TDparams : ' valign="top"';
-               $rows = isset($conf['rows.']) ? $this->cObj->stdWrap($conf['rows'], $conf['rows.']) : $conf['rows'];
-               $rows = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($rows, 2, 20);
-               $totalWidth = isset($conf['totalWidth.']) ? (int)$this->cObj->stdWrap($conf['totalWidth'], $conf['totalWidth.']) : (int)$conf['totalWidth'];
-               $totalGapWidth = 0;
-               $gapData = array(
-                       'gapWidth' => isset($conf['gapWidth.']) ? $this->cObj->stdWrap($conf['gapWidth'], $conf['gapWidth.']) : $conf['gapWidth'],
-                       'gapBgCol' => isset($conf['gapBgCol.']) ? $this->cObj->stdWrap($conf['gapBgCol'], $conf['gapBgCol.']) : $conf['gapBgCol'],
-                       'gapLineThickness' => isset($conf['gapLineThickness.']) ? $this->cObj->stdWrap($conf['gapLineThickness'], $conf['gapLineThickness.']) : $conf['gapLineThickness'],
-                       'gapLineCol' => isset($conf['gapLineCol.']) ? $this->cObj->stdWrap($conf['gapLineCol'], $conf['gapLineCol.']) : $conf['gapLineCol']
-               );
-               $gapData = $GLOBALS['TSFE']->tmpl->splitConfArray($gapData, $rows - 1);
-               foreach ($gapData as $val) {
-                       $totalGapWidth += (int)$val['gapWidth'];
-               }
-               if ($totalWidth) {
-                       $columnWidth = ceil(($totalWidth - $totalGapWidth) / $rows);
-                       $TDparams .= ' width="' . $columnWidth . '"';
-                       $tableParams .= ' width="' . $totalWidth . '"';
-               } else {
-                       $TDparams .= ' width="' . floor(100 / $rows) . '%"';
-                       $tableParams .= ' width="100%"';
-               }
-               for ($a = 1; $a <= $rows; $a++) {
-                       $tdRowCount++;
-                       $content .= '<td' . $TDparams . '>';
-                       $content .= $this->cObj->cObjGetSingle($conf[$a], $conf[$a . '.'], $a);
-                       $content .= '</td>';
-                       if ($a < $rows) {
-                               $gapConf = $gapData[$a - 1];
-                               $gapWidth = (int)$gapConf['gapWidth'];
-                               if ($gapWidth) {
-                                       $tdPar = $gapConf['gapBgCol'] ? ' bgcolor="' . $gapConf['gapBgCol'] . '"' : '';
-                                       $gapLine = (int)$gapConf['gapLineThickness'];
-                                       if ($gapLine) {
-                                               $gapSurround = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange(($gapWidth - $gapLine) / 2, 1, 1000);
-                                               // right gap
-                                               $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $gapSurround . '" height="1" alt="" title="" /></td>';
-                                               $tdRowCount++;
-                                               // line:
-                                               $GtdPar = $gapConf['gapLineCol'] ? ' bgcolor="' . $gapConf['gapLineCol'] . '"' : ' bgcolor="black"';
-                                               $content .= '<td' . $GtdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $gapLine . '" height="1" alt="" title="" /></td>';
-                                               $tdRowCount++;
-                                               // left gap
-                                               $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $gapSurround . '" height="1" alt="" title="" /></td>';
-                                               $tdRowCount++;
-                                       } else {
-                                               $content .= '<td' . $tdPar . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $gapWidth . '" height="1" alt="" title="" /></td>';
-                                               $tdRowCount++;
-                                       }
-                               }
-                       }
-               }
-               $content = '<tr>' . $content . '</tr>';
-               $content = '<table' . $tableParams . '>' . $content . '</table>';
-               if ($conf['after'] || isset($conf['after.'])) {
-                       $content .= $this->cObj->cObjGetSingle($conf['after'], $conf['after.'], 'after');
-               }
-               if (isset($conf['stdWrap.'])) {
-                       $content = $this->cObj->stdWrap($content, $conf['stdWrap.']);
-               }
-               return $content;
-       }
-
-}
diff --git a/typo3/sysext/frontend/Classes/ContentObject/ContentTableContentObject.php b/typo3/sysext/frontend/Classes/ContentObject/ContentTableContentObject.php
deleted file mode 100644 (file)
index 0064486..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-namespace TYPO3\CMS\Frontend\ContentObject;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Contains CTABLE class object.
- *
- * @author Xavier Perseguers <typo3@perseguers.ch>
- * @author Steffen Kamper <steffen@typo3.org>
- */
-class ContentTableContentObject extends AbstractContentObject {
-
-       /**
-        * Rendering the cObject, CTABLE
-        *
-        * @param array $conf Array of TypoScript properties
-        * @return string Output
-        */
-       public function render($conf = array()) {
-               $controlTable = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Frontend\ContentObject\TableRenderer::class);
-               $tableParams = isset($conf['tableParams.']) ? $this->cObj->stdWrap($conf['tableParams'], $conf['tableParams.']) : $conf['tableParams'];
-               if ($tableParams) {
-                       $controlTable->tableParams = $tableParams;
-               }
-               // loads the pagecontent
-               $conf['cWidth'] = isset($conf['cWidth.']) ? $this->cObj->stdWrap($conf['cWidth'], $conf['cWidth.']) : $conf['cWidth'];
-               $controlTable->contentW = $conf['cWidth'];
-               // loads the menues if any
-               if (is_array($conf['c.'])) {
-                       $controlTable->content = $this->cObj->cObjGet($conf['c.'], 'c.');
-                       $contentTDParams = isset($conf['c.']['TDParams.']) ? $this->cObj->stdWrap($conf['c.']['TDParams'], $conf['c.']['TDParams.']) : $conf['c.']['TDParams'];
-                       $controlTable->contentTDparams = isset($contentTDParams) ? $contentTDParams : 'valign="top"';
-               }
-               if (is_array($conf['lm.'])) {
-                       $controlTable->lm = $this->cObj->cObjGet($conf['lm.'], 'lm.');
-                       $lmTDParams = isset($conf['lm.']['TDParams.']) ? $this->cObj->stdWrap($conf['lm.']['TDParams'], $conf['lm.']['TDParams.']) : $conf['lm.']['TDParams'];
-                       $controlTable->lmTDparams = isset($lmTDParams) ? $lmTDParams : 'valign="top"';
-               }
-               if (is_array($conf['tm.'])) {
-                       $controlTable->tm = $this->cObj->cObjGet($conf['tm.'], 'tm.');
-                       $tmTDParams = isset($conf['tm.']['TDParams.']) ? $this->cObj->stdWrap($conf['tm.']['TDParams'], $conf['tm.']['TDParams.']) : $conf['tm.']['TDParams'];
-                       $controlTable->tmTDparams = isset($tmTDParams) ? $tmTDParams : 'valign="top"';
-               }
-               if (is_array($conf['rm.'])) {
-                       $controlTable->rm = $this->cObj->cObjGet($conf['rm.'], 'rm.');
-                       $rmTDParams = isset($conf['rm.']['TDParams.']) ? $this->cObj->stdWrap($conf['rm.']['TDParams'], $conf['rm.']['TDParams.']) : $conf['rm.']['TDParams'];
-                       $controlTable->rmTDparams = isset($rmTDParams) ? $rmTDParams : 'valign="top"';
-               }
-               if (is_array($conf['bm.'])) {
-                       $controlTable->bm = $this->cObj->cObjGet($conf['bm.'], 'bm.');
-                       $bmTDParams = isset($conf['bm.']['TDParams.']) ? $this->cObj->stdWrap($conf['bm.']['TDParams'], $conf['bm.']['TDParams.']) : $conf['bm.']['TDParams'];
-                       $controlTable->bmTDparams = isset($bmTDParams) ? $bmTDParams : 'valign="top"';
-               }
-               $conf['offset'] = isset($conf['offset.']) ? $this->cObj->stdWrap($conf['offset'], $conf['offset.']) : $conf['offset'];
-               $conf['cMargins'] = isset($conf['cMargins.']) ? $this->cObj->stdWrap($conf['cMargins'], $conf['cMargins.']) : $conf['cMargins'];
-               $theValue = $controlTable->start($conf['offset'], $conf['cMargins']);
-               if (isset($conf['stdWrap.'])) {
-                       $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']);
-               }
-               return $theValue;
-       }
-
-}
diff --git a/typo3/sysext/frontend/Classes/ContentObject/HorizontalRulerContentObject.php b/typo3/sysext/frontend/Classes/ContentObject/HorizontalRulerContentObject.php
deleted file mode 100644 (file)
index 019bfdf..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-namespace TYPO3\CMS\Frontend\ContentObject;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Contains TEXT class object.
- *
- * @author Xavier Perseguers <typo3@perseguers.ch>
- * @author Steffen Kamper <steffen@typo3.org>
- */
-class HorizontalRulerContentObject extends AbstractContentObject {
-
-       /**
-        * Rendering the cObject, HRULER
-        *
-        * @param array $conf Array of TypoScript properties
-        * @return string Output
-        */
-       public function render($conf = array()) {
-               $lineThickness = isset($conf['lineThickness.']) ? $this->cObj->stdWrap($conf['lineThickness'], $conf['lineThickness.']) : $conf['lineThickness'];
-               $lineThickness = \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange($lineThickness, 1, 50);
-               $lineColor = isset($conf['lineColor.']) ? $this->cObj->stdWrap($conf['lineColor'], $conf['lineColor.']) : $conf['lineColor'];
-               if (!$lineColor) {
-                       $lineColor = 'black';
-               }
-               $spaceBefore = isset($conf['spaceLeft.']) ? (int)$this->cObj->stdWrap($conf['spaceLeft'], $conf['spaceLeft.']) : (int)$conf['spaceLeft'];
-               $spaceAfter = isset($conf['spaceRight.']) ? (int)$this->cObj->stdWrap($conf['spaceRight'], $conf['spaceRight.']) : (int)$conf['spaceRight'];
-               $tableWidth = isset($conf['tableWidth.']) ? (int)$this->cObj->stdWrap($conf['tableWidth'], $conf['tableWidth.']) : (int)$conf['tableWidth'];
-               if (!$tableWidth) {
-                       $tableWidth = '99%';
-               }
-               $theValue = '';
-               $theValue .= '<table border="0" cellspacing="0" cellpadding="0"
-                       width="' . htmlspecialchars($tableWidth) . '"
-                       summary=""><tr>';
-               if ($spaceBefore) {
-                       $theValue .= '<td width="1">
-                               <img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif"
-                               width="' . $spaceBefore . '"
-                               height="1" alt="" title="" />
-                       </td>';
-               }
-               $theValue .= '<td bgcolor="' . $lineColor . '">
-                       <img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif"
-                       width="1"
-                       height="' . $lineThickness . '"
-                       alt="" title="" />
-               </td>';
-               if ($spaceAfter) {
-                       $theValue .= '<td width="1">
-                               <img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif"
-                               width="' . $spaceAfter . '"
-                               height="1" alt="" title="" />
-                       </td>';
-               }
-               $theValue .= '</tr></table>';
-               if (isset($conf['stdWrap.'])) {
-                       $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']);
-               }
-               return $theValue;
-       }
-
-}
diff --git a/typo3/sysext/frontend/Classes/ContentObject/OffsetTableContentObject.php b/typo3/sysext/frontend/Classes/ContentObject/OffsetTableContentObject.php
deleted file mode 100644 (file)
index 0a26271..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-namespace TYPO3\CMS\Frontend\ContentObject;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Rendering of tables for offset
- */
-class OffsetTableContentObject extends AbstractContentObject {
-
-       /**
-        * @var string
-        */
-       public $tableParams = 'border="0" cellspacing="0" cellpadding="0"';
-
-       /**
-        * @var string
-        */
-       public $default_tableParams = 'border="0" cellspacing="0" cellpadding="0"';
-
-       /**
-        * @var string
-        */
-       public $tdParams = ' width="99%" valign="top"';
-
-       /**
-        * Override default constructor to make it possible to instantiate this
-        * class for rendering an offset table not in content object context
-        *
-        * @param \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $cObj
-        */
-       public function __construct(ContentObjectRenderer $cObj = NULL) {
-               if (!is_null($cObj)) {
-                       $this->cObj = $cObj;
-                       $this->fileFactory = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance();
-               }
-       }
-
-       /**
-        * Rendering the cObject, OTABLE
-        *
-        * @param array $conf Array of TypoScript properties
-        * @return string Output
-        */
-       public function render($conf = array()) {
-               $tableParams = isset($conf['tableParams.']) ? $this->cObj->stdWrap($conf['tableParams'], $conf['tableParams.']) : $conf['tableParams'];
-               if ($tableParams) {
-                       $this->tableParams = $tableParams;
-               }
-               $offset = isset($conf['offset.']) ? $this->cObj->stdWrap($conf['offset'], $conf['offset.']) : $conf['offset'];
-               $content = $this->start($this->cObj->cObjGet($conf), $offset);
-               if (isset($conf['stdWrap.'])) {
-                       $content = $this->cObj->stdWrap($content, $conf['stdWrap.']);
-               }
-               return $content;
-       }
-
-       /**
-        * Wrapping the input content string in a table which will space it out from top/left/right/bottom
-        *
-        * @param string $content The HTML content string
-        * @param string $offset List of offset parameters; x,y,r,b,w,h
-        * @return string The HTML content string being wrapped in a <table> offsetting the content as the $offset parameters defined
-        */
-       public function start($content, $offset) {
-               $valPairs = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $offset . ',,,,,');
-               if ($valPairs[0] || $valPairs[1] || $valPairs[2] || $valPairs[3] || $valPairs[4] || $valPairs[5]) {
-                       // If width is defined AND there has been no change to the default table params,
-                       // then extend them to a tablewidth of 1
-                       if ($valPairs[4] && $this->default_tableParams == $this->tableParams) {
-                               $this->tableParams .= ' width="1"';
-                       }
-                       // Init:
-                       $this->begin = LF . '<table ' . $this->tableParams . '>';
-                       $this->end = '</table>';
-                       $rows = array();
-                       $widthImg = '';
-                       $heightImg = '';
-                       // If width is required, set so bottom column will display for sure
-                       if ($valPairs[4]) {
-                               if (!$valPairs[3]) {
-                                       $valPairs[3] = 1;
-                               }
-                               $widthImg = '<img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $valPairs[4] . '" height="1" alt="" title="" />';
-                       }
-                       // If height is required, set so right column will display for sure
-                       if ($valPairs[5]) {
-                               if (!$valPairs[2]) {
-                                       $valPairs[2] = 1;
-                               }
-                               $valPairs[2] = 1;
-                               $heightImg = '<img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $valPairs[5] . '" alt="" title="" />';
-                       }
-                       // First row:
-                       // top
-                       if ($valPairs[1]) {
-                               $rows[1] .= '<tr>';
-                               $rows[1] .= '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . ($valPairs[0] ?: 1) . '" height="' . $valPairs[1] . '" alt="" title="" /></td>';
-                               if ($valPairs[0]) {
-                                       $rows[1] .= '<td></td>';
-                               }
-                               if ($valPairs[2]) {
-                                       $rows[1] .= '<td></td>';
-                               }
-                               $rows[1] .= '</tr>';
-                       }
-                       // Middle row:
-                       $rows[2] .= '<tr>';
-                       if ($valPairs[0]) {
-                               $rows[2] .= $valPairs[1] ? '<td></td>' : '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $valPairs[0] . '" height="1" alt="" title="" /></td>';
-                       }
-                       $rows[2] .= '<td' . $this->tdParams . '>' . $content . '</td>';
-                       if ($valPairs[2]) {
-                               $rows[2] .= $valPairs[3] ? '<td>' . $heightImg . '</td>' : '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . $valPairs[2] . '" height="' . ($valPairs[5] ?: 1) . '" alt="" title="" /></td>';
-                       }
-                       $rows[2] .= '</tr>';
-                       // Bottom row:
-                       if ($valPairs[3]) {
-                               $rows[3] .= '<tr>';
-                               if ($valPairs[0]) {
-                                       $rows[3] .= '<td></td>';
-                               }
-                               if ($valPairs[2]) {
-                                       $rows[3] .= '<td>' . $widthImg . '</td>';
-                               }
-                               $rows[3] .= '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="' . ($valPairs[2] ?: ($valPairs[4] ?: 1)) . '" height="' . $valPairs[3] . '" alt="" title="" /></td>';
-                               $rows[3] .= '</tr>';
-                       }
-                       return $this->begin . implode('', $rows) . $this->end;
-               } else {
-                       return $content;
-               }
-       }
-
-}
diff --git a/typo3/sysext/frontend/Classes/ContentObject/TableRenderer.php b/typo3/sysext/frontend/Classes/ContentObject/TableRenderer.php
deleted file mode 100644 (file)
index a04289e..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-<?php
-namespace TYPO3\CMS\Frontend\ContentObject;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * Rendering of tables for content positioning
- *
- * @see ContentObjectRenderer::CTABLE()
- * @author Kasper Skårhøj <kasperYYYY@typo3.com>
- */
-class TableRenderer {
-
-       /**
-        * offset, x
-        *
-        * @var int
-        */
-       public $offX = 0;
-
-       /**
-        * offset, y
-        *
-        * @var int
-        */
-       public $offY = 0;
-
-       /**
-        * top menu
-        *
-        * @var string
-        */
-       public $tm = '';
-
-       /**
-        * left menu
-        *
-        * @var string
-        */
-       public $lm = '';
-
-       /**
-        * right menu
-        *
-        * @var string
-        */
-       public $rm = '';
-
-       /**
-        * bottom menu
-        *
-        * @var string
-        */
-       public $bm = '';
-
-       /**
-        * content
-        *
-        * @var string
-        */
-       public $content = '';
-
-       /**
-        * top menu TDparams
-        *
-        * @var string
-        */
-       public $tmTDparams = 'valign="top"';
-
-       /**
-        * left menu TDparams
-        *
-        * @var string
-        */
-       public $lmTDparams = 'valign="top"';
-
-       /**
-        * right menu TDparams
-        *
-        * @var string
-        */
-       public $rmTDparams = 'valign="top"';
-
-       /**
-        * bottom menu TDparams
-        *
-        * @var string
-        */
-       public $bmTDparams = 'valign="top"';
-
-       /**
-        * content TDparams
-        *
-        * @var string
-        */
-       public $contentTDparams = 'valign="top"';
-
-       /**
-        * content margin, left
-        *
-        * @var int
-        */
-       public $cMl = 1;
-
-       /**
-        * content margin, right
-        *
-        * @var int
-        */
-       public $cMr = 1;
-
-       /**
-        * content margin, top
-        *
-        * @var int
-        */
-       public $cMt = 0;
-
-       /**
-        * content margin, bottom
-        *
-        * @var int
-        */
-       public $cMb = 1;
-
-       /**
-        * Places a little gif-spacer in the bottom of the content frame
-        *
-        * @var int
-        */
-       public $contentW = 0;
-
-       /**
-        * @var string
-        */
-       public $tableParams = 'border="0" cellspacing="0" cellpadding="0"';
-
-       /**
-        * Wrapping internal vars ->tm, ->lm, ->rm, ->bm and ->content in a table where each content part is stored in a cell.
-        * The two arguments to this function defines some offsets and margins to use in the arrangement of the content in the table.
-        *
-        * @param string $offset List of offset parameters; x,y
-        * @param string $cMargins List of margin parameters; left, top, right, bottom
-        * @return string The content strings wrapped in a <table> as the parameters defined
-        * @see \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::CTABLE()
-        */
-       public function start($offset, $cMargins) {
-               $offArr = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $offset);
-               $cMargArr = \TYPO3\CMS\Core\Utility\GeneralUtility::intExplode(',', $cMargins);
-               $cols = 0;
-               $rows = 0;
-               if ($this->lm) {
-                       $cols++;
-               }
-               if ($this->rm) {
-                       $cols++;
-               }
-               if ($cMargArr[0]) {
-                       $cols++;
-               }
-               if ($cMargArr[2]) {
-                       $cols++;
-               }
-               if ($cMargArr[1] || $cMargArr[3] || $this->tm || $this->bm || $this->content || $this->contentW) {
-                       $cols++;
-               }
-               if ($cMargArr[1]) {
-                       $rows++;
-               }
-               if ($cMargArr[3]) {
-                       $rows++;
-               }
-               if ($this->tm) {
-                       $rows++;
-               }
-               if ($this->bm) {
-                       $rows++;
-               }
-               if ($this->content) {
-                       $rows++;
-               }
-               if ($this->contentW) {
-                       $rows++;
-               }
-               if (!$rows && $cols) {
-                       // If there are no rows in the middle but still som columns...
-                       $rows = 1;
-               }
-               if ($rows && $cols) {
-                       $res = LF . '<table ' . $this->tableParams . '>';
-                       // Top offset:
-                       if ($offArr[1]) {
-                               $xoff = $offArr[0] ? 1 : 0;
-                               if ($cols + $xoff > 1) {
-                                       $colspan = ' colspan="' . ($cols + $xoff) . '"';
-                               }
-                               $res .= '<tr><td' . $colspan . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $offArr[1] . '" alt="" title="" /></td></tr>';
-                       }
-                       // The rows:
-                       if ($rows > 1) {
-                               $rowspan = ' rowspan="' . $rows . '"';
-                       }
-                       $res .= '<tr>';
-                       if ($offArr[0]) {
-                               $res .= '<td' . $rowspan . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" height="1" width="' . $offArr[0] . '" alt="" title="" /></td>';
-                       }
-                       if ($this->lm) {
-                               $res .= '<td' . $rowspan . ' ' . $this->lmTDparams . '>' . $this->lm . '</td>';
-                       }
-                       if ($cMargArr[0]) {
-                               $res .= '<td' . $rowspan . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" height="1" width="' . $cMargArr[0] . '" alt="" title="" /></td>';
-                       }
-                       // Content...
-                       $middle = array();
-                       if ($this->tm) {
-                               $middle[] = '<td ' . $this->tmTDparams . '>' . $this->tm . '</td>';
-                       }
-                       if ($cMargArr[1]) {
-                               $middle[] = '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $cMargArr[1] . '" alt="" title="" /></td>';
-                       }
-                       if ($this->content) {
-                               $middle[] = '<td ' . $this->contentTDparams . '>' . $this->content . '</td>';
-                       }
-                       if ($cMargArr[3]) {
-                               $middle[] = '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" width="1" height="' . $cMargArr[3] . '" alt="" title="" /></td>';
-                       }
-                       if ($this->bm) {
-                               $middle[] = '<td ' . $this->bmTDparams . '>' . $this->bm . '</td>';
-                       }
-                       if ($this->contentW) {
-                               $middle[] = '<td><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" height="1" width="' . $this->contentW . '" alt="" title="" /></td>';
-                       }
-                       if (isset($middle[0])) {
-                               $res .= $middle[0];
-                       }
-                       // Left of content
-                       if ($cMargArr[2]) {
-                               $res .= '<td' . $rowspan . '><img src="' . $GLOBALS['TSFE']->absRefPrefix . 'clear.gif" height="1" width="' . $cMargArr[2] . '" alt="" title="" /></td>';
-                       }
-                       if ($this->rm) {
-                               $res .= '<td' . $rowspan . ' ' . $this->rmTDparams . '>' . $this->rm . '</td>';
-                       }
-                       $res .= '</tr>';
-                       // More than the two rows
-                       $mCount = count($middle);
-                       for ($a = 1; $a < $mCount; $a++) {
-                               $res .= '<tr>' . $middle[$a] . '</tr>';
-                       }
-                       $res .= '</table>';
-                       return $res;
-               }
-       }
-
-}
index e8306d7..a108961 100644 (file)
@@ -57,7 +57,7 @@ class ContentObjectRendererTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
        protected $contentObjectMap = array(
                'TEXT'             => \TYPO3\CMS\Frontend\ContentObject\TextContentObject::class,
                'CASE'             => \TYPO3\CMS\Frontend\ContentObject\CaseContentObject::class,
-               'CLEARGIF'         => \TYPO3\CMS\Frontend\ContentObject\ClearGifContentObject::class,
+               'CLEARGIF'         => \TYPO3\CMS\Compatibility6\ContentObject\ClearGifContentObject::class,
                'COBJ_ARRAY'       => \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayContentObject::class,
                'COA'              => \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayContentObject::class,
                'COA_INT'          => \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayInternalContentObject::class,
@@ -71,10 +71,10 @@ class ContentObjectRendererTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                'CONTENT'          => \TYPO3\CMS\Frontend\ContentObject\ContentContentObject::class,
                'RECORDS'          => \TYPO3\CMS\Frontend\ContentObject\RecordsContentObject::class,
                'HMENU'            => \TYPO3\CMS\Frontend\ContentObject\HierarchicalMenuContentObject::class,
-               'CTABLE'           => \TYPO3\CMS\Frontend\ContentObject\ContentTableContentObject::class,
-               'OTABLE'           => \TYPO3\CMS\Frontend\ContentObject\OffsetTableContentObject::class,
-               'COLUMNS'          => \TYPO3\CMS\Frontend\ContentObject\ColumnsContentObject::class,
-               'HRULER'           => \TYPO3\CMS\Frontend\ContentObject\HorizontalRulerContentObject::class,
+               'CTABLE'           => \TYPO3\CMS\Compatibility6\ContentObject\ContentTableContentObject::class,
+               'OTABLE'           => \TYPO3\CMS\Compatibility6\ContentObject\OffsetTableContentObject::class,
+               'COLUMNS'          => \TYPO3\CMS\Compatibility6\ContentObject\ColumnsContentObject::class,
+               'HRULER'           => \TYPO3\CMS\Compatibility6\ContentObject\HorizontalRulerContentObject::class,
                'CASEFUNC'         => \TYPO3\CMS\Frontend\ContentObject\CaseContentObject::class,
                'LOAD_REGISTER'    => \TYPO3\CMS\Frontend\ContentObject\LoadRegisterContentObject::class,
                'RESTORE_REGISTER' => \TYPO3\CMS\Frontend\ContentObject\RestoreRegisterContentObject::class,
index 64789e2..e1b08a1 100644 (file)
@@ -27,11 +27,10 @@ if (TYPO3_MODE === 'FE') {
        // Register the core media wizard provider
        \TYPO3\CMS\Frontend\MediaWizard\MediaWizardProviderManager::registerMediaWizardProvider(\TYPO3\CMS\Frontend\MediaWizard\MediaWizardProvider::class);
 
-       // Register all available content elements
+       // Register all available content objects
        $GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'] = array_merge($GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects'], array(
                'TEXT'             => \TYPO3\CMS\Frontend\ContentObject\TextContentObject::class,
                'CASE'             => \TYPO3\CMS\Frontend\ContentObject\CaseContentObject::class,
-               'CLEARGIF'         => \TYPO3\CMS\Frontend\ContentObject\ClearGifContentObject::class,
                'COBJ_ARRAY'       => \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayContentObject::class,
                'COA'              => \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayContentObject::class,
                'COA_INT'          => \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayInternalContentObject::class,
@@ -45,10 +44,6 @@ if (TYPO3_MODE === 'FE') {
                'CONTENT'          => \TYPO3\CMS\Frontend\ContentObject\ContentContentObject::class,
                'RECORDS'          => \TYPO3\CMS\Frontend\ContentObject\RecordsContentObject::class,
                'HMENU'            => \TYPO3\CMS\Frontend\ContentObject\HierarchicalMenuContentObject::class,
-               'CTABLE'           => \TYPO3\CMS\Frontend\ContentObject\ContentTableContentObject::class,
-               'OTABLE'           => \TYPO3\CMS\Frontend\ContentObject\OffsetTableContentObject::class,
-               'COLUMNS'          => \TYPO3\CMS\Frontend\ContentObject\ColumnsContentObject::class,
-               'HRULER'           => \TYPO3\CMS\Frontend\ContentObject\HorizontalRulerContentObject::class,
                'CASEFUNC'         => \TYPO3\CMS\Frontend\ContentObject\CaseContentObject::class,
                'LOAD_REGISTER'    => \TYPO3\CMS\Frontend\ContentObject\LoadRegisterContentObject::class,
                'RESTORE_REGISTER' => \TYPO3\CMS\Frontend\ContentObject\RestoreRegisterContentObject::class,
index d13c878..b014cb0 100644 (file)
@@ -24,15 +24,12 @@ var typoscriptWords = {
        '_LOCAL_LANG': 'keyword',
        'CARRAY': 'keyword',
        'CASE': 'keyword',
-       'CLEARGIF': 'keyword',
        'COA': 'keyword',
        'COA_INT': 'keyword',
        'COBJ_ARRAY': 'keyword',
-       'COLUMNS': 'keyword',
        'CONFIG': 'keyword',
        'CONSTANTS': 'keyword',
        'CONTENT': 'keyword',
-       'CTABLE': 'keyword',
        'CType': 'keyword',
        'DB': 'keyword',
        'DOCUMENT_BODY': 'keyword',
@@ -52,7 +49,6 @@ var typoscriptWords = {
        'GMENU_LAYERS': 'keyword',
        'GP': 'keyword',
        'HMENU': 'keyword',
-       'HRULER': 'keyword',
        'HTML': 'keyword',
        'IENV': 'keyword',
        'IMAGE': 'keyword',
@@ -68,7 +64,6 @@ var typoscriptWords = {
        'LOAD_REGISTER': 'keyword',
        'META': 'keyword',
        'MULTIMEDIA': 'keyword',
-       'OTABLE': 'keyword',
        'PAGE': 'keyword',
        'PAGE_TARGET': 'keyword',
        'PAGE_TSCONFIG_ID': 'keyword',
@@ -1352,15 +1347,12 @@ var typoscriptWords = {
        '_LOCAL_LANG': 'keyword',
        'CARRAY': 'keyword',
        'CASE': 'keyword',
-       'CLEARGIF': 'keyword',
        'COA': 'keyword',
        'COA_INT': 'keyword',
        'COBJ_ARRAY': 'keyword',
-       'COLUMNS': 'keyword',
        'CONFIG': 'keyword',
        'CONSTANTS': 'keyword',
        'CONTENT': 'keyword',
-       'CTABLE': 'keyword',
        'CType': 'keyword',
        'DB': 'keyword',
        'DOCUMENT_BODY': 'keyword',
@@ -1379,7 +1371,6 @@ var typoscriptWords = {
        'GMENU_LAYERS': 'keyword',
        'GP': 'keyword',
        'HMENU': 'keyword',
-       'HRULER': 'keyword',
        'HTML': 'keyword',
        'IENV': 'keyword',
        'IMAGE': 'keyword',
@@ -1395,7 +1386,6 @@ var typoscriptWords = {
        'LOAD_REGISTER': 'keyword',
        'META': 'keyword',
        'MULTIMEDIA': 'keyword',
-       'OTABLE': 'keyword',
        'PAGE': 'keyword',
        'PAGE_TARGET': 'keyword',
        'PAGE_TSCONFIG_ID': 'keyword',
index 74d9d1a..fd43d9a 100644 (file)
@@ -114,23 +114,6 @@ helloWorld.value = this item will be returned
 ]]></description>
                </property>
        </type>
-       <type id="CLEARGIF" name="CLEARGIF">
-               <property name="height" type="stdWrap">
-                       <description><![CDATA[<img>-data:height /stdWrap
-]]></description>
-                       <default><![CDATA[1]]></default>
-               </property>
-               <property name="width" type="stdWrap">
-                       <description><![CDATA[<img>-data:width /stdWrap
-]]></description>
-                       <default><![CDATA[1]]></default>
-               </property>
-               <property name="wrap" type="stdWrap">
-                       <description><![CDATA[wrap/stdWrap
-]]></description>
-                       <default><![CDATA[ | <BR>]]></default>
-               </property>
-       </type>
        <type id="cObjArray">
                <property name="1" type="cObj">
                        <description><![CDATA[This is a numerical "array" of content-objects (cObjects).
@@ -180,90 +163,6 @@ This is possible to do because any include-files will be known before the script
 ]]></default>
                </property>
        </type>
-       <type id="COLUMNS">
-               <property name="TDparams" type="stdWrap">
-                       <description><![CDATA[<TD>-params/stdWrap
-]]></description>
-                       <default><![CDATA[valign=top]]></default>
-               </property>
-               <property name="1" type="cObj">
-                       <description><![CDATA[This is the content-object for each column!!]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="2" type="cObj">
-                       <description><![CDATA[This is the content-object for each column!!]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="3" type="cObj">
-                       <description><![CDATA[This is the content-object for each column!!]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="4" type="cObj">
-                       <description><![CDATA[This is the content-object for each column!!]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="after" type="cObj">
-                       <description><![CDATA[This is a cObject placed after the columns-table!!]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="gapBgCol" type="stdWrap">
-                       <description><![CDATA[HTML-color /stdWrap
-background-color for the gap-tablecells]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="gapLineCol" type="stdWrap">
-                       <description><![CDATA[HTML-color /stdWrap
-      Line color]]></description>
-                       <default><![CDATA[black]]></default>
-               </property>
-               <property name="gapLineThickness" type="stdWrap">
-                       <description><![CDATA[int /stdWrap
-      lineThickness of the dividerline in the gap between cells
-0 = no line]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="gapWidth" type="stdWrap">
-                       <description><![CDATA[int /stdWrap
-      Width of the gap between columns.
-0 = no gap]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="if" type="if">
-                       <description><![CDATA[if "if" returns false the columns are not rendered!]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="rows" type="stdWrap">
-                       <description><![CDATA[int (Range: 2-20)/stdWrap
-      The number of rows  in the columns.]]></description>
-                       <default><![CDATA[2]]></default>
-               </property>
-               <property name="stdWrap" type="stdWrap">
-                       <description><![CDATA[
-]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="tableParams" type="stdWrap">
-                       <description><![CDATA[<TABLE>-params/stdWrap
-]]></description>
-                       <default><![CDATA[border=0 cellspacing=0 cellpadding=0]]></default>
-               </property>
-               <property name="totalWidth" type="stdWrap">
-                       <description><![CDATA[int/stdWrap
-                       The total-width of the columns+gaps]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-       </type>
        <type id="CONFIG">
                <property name="ATagParams" type="string">
                        <description><![CDATA[<A>-params
@@ -1207,65 +1106,6 @@ NOTE: Only tables allowed are "pages" or tables prefixed with one of these: "tt_
 ]]></default>
                </property>
        </type>
-       <type id="CTABLE">
-               <property name="bm" type="stdWrap">
-                       <description><![CDATA[CARRAY + TDParams/stdWrap
-                       bottomMenu]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="c" type="stdWrap">
-                       <description><![CDATA[CARRAY + TDParams/stdWrap
-                       content-cell ]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="cMargins" type="stdWrap">
-                       <description><![CDATA[margins/stdWrap
-                       Distance around the content-cell "c"]]></description>
-                       <default><![CDATA[0,0,0,0]]></default>
-               </property>
-               <property name="cWidth" type="stdWrap">
-                       <description><![CDATA[pixels/stdWrap
-                       Width of the content-cell "c"]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="lm" type="stdWrap">
-                       <description><![CDATA[CARRAY+TDParams/stdWrap
-                       leftMenu]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="offset" type="stdWrap">
-                       <description><![CDATA[x,y/stdWrap
-                       Offset from upper left corner]]></description>
-                       <default><![CDATA[0,0 = intet]]></default>
-               </property>
-               <property name="rm" type="stdWrap">
-                       <description><![CDATA[CARRAY+TDParams/stdWrap
-                       rightMenu]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="tableParams" type="stdWrap">
-                       <description><![CDATA[<TABLE>-params/stdWrap
-]]></description>
-                       <default><![CDATA[border=0 cellspacing=0 cellpadding=0]]></default>
-               </property>
-               <property name="tm" type="stdWrap">
-                       <description><![CDATA[CARRAY+TDParams/stdWrap
-                       topMenu]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="stdWrap" type="stdWrap">
-                       <description><![CDATA[
-]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-       </type>
        <type id="EDITPANEL">
                <property name="allow" type="string">
                        <description><![CDATA[Define which functions are accessible. Further this list may be reduced, if the BE_USER does not have permission to perform the action
@@ -4720,42 +4560,6 @@ This is useful if you want to insert an identification code in the HTML in order
                        <default><![CDATA[|]]></default>
                </property>
        </type>
-       <type id="HRULER">
-               <property name="lineColor" type="string">
-                       <description><![CDATA[The color of the ruler.]]></description>
-                       <default><![CDATA[black]]></default>
-               </property>
-               <property name="lineThickness" type="stdWrap">
-                       <description><![CDATA[integer, range: 1-50]]></description>
-                       <default><![CDATA[1]]></default>
-               </property>
-               <property name="spaceLeft" type="int">
-                       <description><![CDATA[space before the line (to the left)]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="spaceRight" type="int">
-                       <description><![CDATA[space after the line (to the right)]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="stdWrap" type="stdWrap">
-                       <description><![CDATA[ ]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="tableWidth" type="string">
-                       <description><![CDATA[Width of the ruler ("width" attribute in a table)]]></description>
-                       <default><![CDATA[99%]]></default>
-               </property>
-       </type>
-       <type id="HTML">
-               <property name="value" type="stdWrap">
-                       <description><![CDATA[Raw HTML-code.]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-       </type>
        <type id="HTMLparser">
                <property name="allowTags" type="string">
                        <description><![CDATA[Default allowed tags]]></description>
@@ -5458,42 +5262,6 @@ An empty string will remove the parameter from the embed-tag]]></description>
 ]]></default>
                </property>
        </type>
-       <type id="OTABLE" extends="cObjArray">
-               <property name="1" type="cObj">
-                       <description><![CDATA[the object which should be rendered at the specified position. You have to set this to a contenttype (IMAGE, TEXT,...)]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="2" type="cObj">
-                       <description><![CDATA[the object which should be rendered at the specified position. You have to set this to a contenttype (IMAGE, TEXT,...)]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="3" type="cObj">
-                       <description><![CDATA[the object which should be rendered at the specified position. You have to set this to a contenttype (IMAGE, TEXT,...)]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="offset" type="intList">
-                       <description><![CDATA[Offset from upper left corner
-
-Note:
-Actually the datatype is "x,y,r,b,w,h":
-x,y is offset from upperleft corner
-r,b is offset (margin) to right and bottom
-w is the required width of the content field
-h is the required height of the content field
-
-All measures is in pixels.]]></description>
-                       <default><![CDATA[
-]]></default>
-               </property>
-               <property name="tableParams" type="string">
-                       <description><![CDATA[
-]]></description>
-                       <default><![CDATA[border=0 cellspacing=0 cellpadding=0]]></default>
-               </property>
-       </type>
        <type id="RECORDS">
                <property name="conf" type="array">
                        <description><![CDATA[Config-array which renders records from table tablename]]></description>
@@ -7262,8 +7030,8 @@ Example (CARRAY used):
   10 = TEXT
   10.current = 1
   10.wrap = <B> | </B>
-  20 = CLEARGIF
-  20.height = 20
+  20 = TEXT
+  20.value = Mytext
 }]]></description>
                        <default><![CDATA[
 ]]></default>
@@ -7709,10 +7477,10 @@ lib.carViews {
 ]]></default>
                </property>
                <property name="offsetWrap" type="intList">
-                       <description><![CDATA[This wraps the input in a table with columns to the left and top that offsets the content by the values of x,y. Based on the cObject OTABLE.
+                       <description><![CDATA[This wraps the input in a table with columns to the left and top that offsets the content by the values of x,y.
 
 .tableParams / .tdParams /stdWrap
-- used to manipulate tableParams/tdParams (default width=99%)  of the offset. Default: See OTABLE.
+- used to manipulate tableParams/tdParams (default width=99%)  of the offset.
 
 .stdWrap
 - stdWrap properties wrapping the offsetWrap'ed output]]></description>