[BUGFIX] Fix broken HTML in FormEngine 31/34131/2
authorFrank Nägler <typo3@naegler.net>
Thu, 13 Nov 2014 21:26:24 +0000 (22:26 +0100)
committerFelix Kopp <felix-source@phorax.com>
Thu, 13 Nov 2014 23:21:22 +0000 (00:21 +0100)
A lot of HTML output in FormEngine is broken, because of
missing spaces. This patch add the missing spaces.

Resolves: #62937
Releases: master
Change-Id: Iec2c25f9b913da87aaa5d06e0a77dd257e58e1f9
Reviewed-on: http://review.typo3.org/34131
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Reviewed-by: Felix Kopp <felix-source@phorax.com>
Tested-by: Felix Kopp <felix-source@phorax.com>
typo3/sysext/backend/Classes/Form/Element/CheckboxElement.php
typo3/sysext/backend/Classes/Form/Element/InlineElement.php
typo3/sysext/backend/Classes/Form/Element/RadioElement.php
typo3/sysext/backend/Classes/Form/Element/SelectElement.php
typo3/sysext/backend/Classes/Form/FormEngine.php
typo3/sysext/backend/Classes/Template/DocumentTemplate.php

index 8305f1a..64abaae 100644 (file)
@@ -73,7 +73,7 @@ class CheckboxElement extends AbstractFormElement {
                                $checkboxName = $additionalInformation['itemFormElName'] . '_' . $c;
                                $checkboxId = $additionalInformation['itemFormElID'] . '_' . $c;
                                $item .= '<td nowrap="nowrap"><input type="checkbox" ' . $this->formEngine->insertDefStyle('check')
-                                       . 'value="1" name="' . $checkboxName . '" ' . $checkboxParameters . $disabled . 'id="' . $checkboxId . '" />'
+                                       . ' value="1" name="' . $checkboxName . '" ' . $checkboxParameters . $disabled . ' id="' . $checkboxId . '" />'
                                        . '<label for="' . $checkboxId . '">' . htmlspecialchars($selectedItem[0]) . '</label>&nbsp;'
                                        . '</td>';
                                if ($c % $cols + 1 == $cols) {
@@ -102,7 +102,7 @@ class CheckboxElement extends AbstractFormElement {
                                );
                                $checkboxName = $additionalInformation['itemFormElName'] . '_' . $c;
                                $checkboxId = $additionalInformation['itemFormElID'] . '_' . $c;
-                               $item .= ($c > 0 ? '<br />' : '') . '<input type="checkbox"' . $this->formEngine->insertDefStyle('check')
+                               $item .= ($c > 0 ? '<br />' : '') . '<input type="checkbox" ' . $this->formEngine->insertDefStyle('check')
                                        . ' value="1" name="' . $checkboxName . '"' . $checkboxParameters . $additionalInformation['onFocus'] . $disabled
                                        . ' id="' . $checkboxId . '" /> '
                                        . '<label for="' . $checkboxId . '">' . htmlspecialchars($selectedItem[0]) . '</label>';
index 9a506df..f09e8fe 100644 (file)
@@ -842,7 +842,7 @@ class InlineElement {
                        $size = $conf['autoSizeMax'] ? MathUtility::forceIntegerInRange(count($selItems) + 1, MathUtility::forceIntegerInRange($size, 1), $conf['autoSizeMax']) : $size;
                        $onChange = 'return inline.importNewRecord(\'' . $this->inlineNames['object'] . self::Structure_Separator . $conf['foreign_table'] . '\')';
                        $item = '
-                               <select id="' . $this->inlineNames['object'] . self::Structure_Separator . $conf['foreign_table'] . '_selector"' . $this->fObj->insertDefStyle('select') . ($size ? ' size="' . $size . '"' : '') . ' onchange="' . htmlspecialchars($onChange) . '"' . $PA['onFocus'] . $selector_itemListStyle . ($conf['foreign_unique'] ? ' isunique="isunique"' : '') . '>
+                               <select id="' . $this->inlineNames['object'] . self::Structure_Separator . $conf['foreign_table'] . '_selector" ' . $this->fObj->insertDefStyle('select') . ($size ? ' size="' . $size . '"' : '') . ' onchange="' . htmlspecialchars($onChange) . '"' . $PA['onFocus'] . $selector_itemListStyle . ($conf['foreign_unique'] ? ' isunique="isunique"' : '') . '>
                                        ' . implode('
                                        ', $opt) . '
                                </select>';
index 82c9338..d3ab13e 100644 (file)
@@ -54,7 +54,7 @@ class RadioElement extends AbstractFormElement {
                        $radioId = $additionalInformation['itemFormElID'] . '_' . $checkbox;
                        $radioOnClick = implode('', $additionalInformation['fieldChangeFunc']);
                        $radioChecked = (string)$selectedItem[1] === (string)$additionalInformation['itemFormElValue'] ? ' checked="checked"' : '';
-                       $item .= '<input type="radio"' . $this->formEngine->insertDefStyle('radio') . ' name="' . $additionalInformation['itemFormElName']
+                       $item .= '<input type="radio" ' . $this->formEngine->insertDefStyle('radio') . ' name="' . $additionalInformation['itemFormElName']
                                . '" value="' . htmlspecialchars($selectedItem[1]) . '" onclick="' . htmlspecialchars($radioOnClick) . '"' . $radioChecked
                                . $additionalInformation['onFocus'] . $disabled . ' id="' . $radioId . '" />
                                        <label for="' . $radioId . '">' . htmlspecialchars($selectedItem[0]) . '</label>
index 50d5b3c..cbd325a 100644 (file)
@@ -179,7 +179,7 @@ class SelectElement extends AbstractFormElement {
                        $multiSelectId = str_replace('.', '', uniqid('tceforms-multiselect-', TRUE));
                        $itemsToSelect = '
                                <select data-relatedfieldname="' . htmlspecialchars($PA['itemFormElName']) . '" data-exclusivevalues="'
-                               . htmlspecialchars($config['exclusiveKeys']) . '" id="' . $multiSelectId . '" name="' . $PA['itemFormElName'] . '_sel"'
+                               . htmlspecialchars($config['exclusiveKeys']) . '" id="' . $multiSelectId . '" name="' . $PA['itemFormElName'] . '_sel" '
                                . $this->formEngine->insertDefStyle('select', 'tceforms-multiselect tceforms-itemstoselect t3-form-select-itemstoselect')
                                . ($size ? ' size="' . $size . '"' : '') . ' onchange="' . htmlspecialchars($sOnChange) . '"'
                                . $PA['onFocus'] . $selector_itemListStyle . '>
@@ -473,7 +473,7 @@ class SelectElement extends AbstractFormElement {
                if ($config['iconsInOptionTags']) {
                        $classesForSelectTag[] = 'icon-select';
                }
-               $item .= '<select' . $selectedStyle . ' id="' . str_replace('.', '', uniqid('tceforms-select-', TRUE)) . '" name="' . $PA['itemFormElName'] . '"' . $this->formEngine->insertDefStyle('select', implode(' ', $classesForSelectTag)) . ($size ? ' size="' . $size . '"' : '') . ' onchange="' . htmlspecialchars($sOnChange) . '"' . $PA['onFocus'] . $disabled . '>';
+               $item .= '<select' . $selectedStyle . ' id="' . str_replace('.', '', uniqid('tceforms-select-', TRUE)) . '" name="' . $PA['itemFormElName'] . '" ' . $this->formEngine->insertDefStyle('select', implode(' ', $classesForSelectTag)) . ($size ? ' size="' . $size . '"' : '') . ' onchange="' . htmlspecialchars($sOnChange) . '"' . $PA['onFocus'] . $disabled . '>';
                $item .= implode('', $opt);
                $item .= '</select>';
                // Create icon table:
@@ -593,7 +593,7 @@ class SelectElement extends AbstractFormElement {
                                        $tRows[] = '
                                                <tr id="' . $rowId . '" class="' . ($sM ? 'c-selectedItem' : 'c-unselectedItem')
                                                . '" onclick="' . htmlspecialchars($onClick) . '" style="cursor: pointer;">
-                                                       <td class="c-checkbox"><input type="checkbox"' . $this->formEngine->insertDefStyle('check')
+                                                       <td class="c-checkbox"><input type="checkbox" ' . $this->formEngine->insertDefStyle('check')
                                                . ' name="' . htmlspecialchars(($PA['itemFormElName'] . '[' . $c . ']'))
                                                . '" value="' . htmlspecialchars($p[1]) . '"' . $sM . ' onclick="' . htmlspecialchars($sOnChange)
                                                . '"' . $PA['onFocus'] . ' /></td>
@@ -610,7 +610,7 @@ class SelectElement extends AbstractFormElement {
                                // Compile <checkboxes> tag:
                                array_unshift($tRows, '
                                                <tr class="c-invalidItem">
-                                                       <td class="c-checkbox"><input type="checkbox"' . $this->formEngine->insertDefStyle('check')
+                                                       <td class="c-checkbox"><input type="checkbox" ' . $this->formEngine->insertDefStyle('check')
                                        . ' name="' . htmlspecialchars(($PA['itemFormElName'] . '[' . $c . ']'))
                                        . '" value="' . htmlspecialchars($theNoMatchValue) . '" checked="checked" onclick="' . htmlspecialchars($sOnChange) . '"'
                                        . $PA['onFocus'] . $disabled . ' /></td>
@@ -715,10 +715,10 @@ class SelectElement extends AbstractFormElement {
                $size = $config['autoSizeMax']
                        ? MathUtility::forceIntegerInRange(count($selItems) + 1, MathUtility::forceIntegerInRange($size, 1), $config['autoSizeMax'])
                        : $size;
-               $selectBox = '<select id="' . str_replace('.', '', uniqid($cssPrefix, TRUE)) . '" name="' . $PA['itemFormElName'] . '[]"'
-                       . $this->formEngine->insertDefStyle('select', $cssPrefix) . ($size ? ' size="' . $size . '"' : '')
+               $selectBox = '<select id="' . str_replace('.', '', uniqid($cssPrefix, TRUE)) . '" name="' . $PA['itemFormElName'] . '[]" '
+                       . $this->formEngine->insertDefStyle('select', $cssPrefix) . ($size ? ' size="' . $size . '" ' : '')
                        . ' multiple="multiple" onchange="' . htmlspecialchars($sOnChange) . '"' . $PA['onFocus']
-                       . $selector_itemListStyle . $disabled . '>
+                       . ' ' . $selector_itemListStyle . $disabled . '>
                                                ' . implode('
                                                ', $opt) . '
                                        </select>';
index e4e51af..6c61e55 100644 (file)
@@ -2291,7 +2291,7 @@ class FormEngine {
                if (!$selector) {
                        $isMultiple = $params['maxitems'] != 1 && $params['size'] != 1;
                        $selector = '<select id="' . str_replace('.', '', uniqid('tceforms-multiselect-', TRUE)) . '" '
-                               . ($params['noList'] ? 'style="display: none"' : 'size="' . $sSize . '"' . $this->insertDefStyle('group', 'tceforms-multiselect'))
+                               . ($params['noList'] ? 'style="display: none"' : 'size="' . $sSize . '" ' . $this->insertDefStyle('group', 'tceforms-multiselect'))
                                . ($isMultiple ? ' multiple="multiple"' : '')
                                . ' name="' . $fName . '_list" ' . $onFocus . $params['style'] . $disabled . '>' . implode('', $opt)
                                . '</select>';
index 15a4d57..8d0870b 100644 (file)
@@ -508,7 +508,7 @@ function jumpToUrl(URL) {
                if ($returnTagParameters) {
                        return $tagParameters;
                } else {
-                       return '<a href="#"' . GeneralUtility::implodeAttributes($tagParameters) . '>' . $content . '</a>';
+                       return '<a href="#" ' . GeneralUtility::implodeAttributes($tagParameters) . '>' . $content . '</a>';
                }
        }