[BUGFIX] Fix several typos in php comments
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / Form / Element / NoneElement.php
index 8ed79be..c77a3e8 100644 (file)
@@ -14,23 +14,67 @@ namespace TYPO3\CMS\Backend\Form\Element;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Core\Utility\MathUtility;
+
 /**
- * Generation of TCEform elements where no rendering could be found
+ * None element is a "disabled" input element with formatted values if needed.
  */
-class NoneElement extends AbstractFormElement {
-
-       /**
-        * This will render a non-editable display of the content of the field.
-        *
-        * @param string $table The table name of the record
-        * @param string $field The field name which this element is supposed to edit
-        * @param array $row The record data array where the value(s) for the field can be found
-        * @param array $additionalInformation An array with additional configuration options.
-        * @return string The HTML code for the TCEform field
-        */
-       public function render($table, $field, $row, &$additionalInformation) {
-               $config = $additionalInformation['fieldConf']['config'];
-               $itemValue = $additionalInformation['itemFormElValue'];
-               return $this->formEngine->getSingleField_typeNone_render($config, $itemValue);
-       }
+class NoneElement extends AbstractFormElement
+{
+    /**
+     * Default field information enabled for this element.
+     *
+     * @var array
+     */
+    protected $defaultFieldInformation = [
+        'tcaDescription' => [
+            'renderType' => 'tcaDescription',
+        ],
+    ];
+
+    /**
+     * This will render a non-editable display of the content of the field.
+     *
+     * @return array The HTML code for the TCEform field
+     */
+    public function render(): array
+    {
+        $resultArray = $this->initializeResultArray();
+
+        $parameterArray = $this->data['parameterArray'];
+        $config = $parameterArray['fieldConf']['config'];
+        $itemValue = $parameterArray['itemFormElValue'];
+
+        if (isset($config['format']) && $config['format']) {
+            $formatOptions = $config['format.'] ?? [];
+            $itemValue = $this->formatValue($config['format'], $itemValue, $formatOptions);
+        }
+        if (!$config['pass_content']) {
+            $itemValue = htmlspecialchars($itemValue);
+        }
+
+        $cols = $config['cols'] ?: ($config['size'] ?: $this->defaultInputWidth);
+        $size = MathUtility::forceIntegerInRange($cols ?: $this->defaultInputWidth, 5, $this->maxInputWidth);
+        $width = $this->formMaxWidth($size);
+
+        $fieldInformationResult = $this->renderFieldInformation();
+        $fieldInformationHtml = $fieldInformationResult['html'];
+        $resultArray = $this->mergeChildReturnIntoExistingResult($resultArray, $fieldInformationResult, false);
+
+        $html = [];
+        $html[] = '<div class="formengine-field-item t3js-formengine-field-item">';
+        $html[] =   $fieldInformationHtml;
+        $html[] =   '<div class="form-wizards-wrap">';
+        $html[] =       '<div class="form-wizards-element">';
+        $html[] =           '<div class="form-control-wrap" style="max-width: ' . $width . 'px">';
+        $html[] =               '<input class="form-control" value="' . htmlspecialchars($itemValue) . '" type="text" disabled>';
+        $html[] =           '</div>';
+        $html[] =       '</div>';
+        $html[] =   '</div>';
+        $html[] = '</div>';
+
+        $resultArray['html'] = implode(LF, $html);
+
+        return $resultArray;
+    }
 }