[BUGFIX] Distinguish unassigend columns and colPos 0 49/18349/7
authorGeorg Ringer <georg.ringer@gmail.com>
Sun, 17 Feb 2013 17:06:51 +0000 (18:06 +0100)
committerPhilipp Gampe <philipp.gampe@typo3.org>
Wed, 13 Nov 2013 17:39:10 +0000 (18:39 +0100)
When using backend layout columns without a colPos value they should be
just placeholders with the label "not assigned". Currently they are
showing the content of the column 0 instead if there is such a column in
the backend layout.

The label "not assigned" is used for columns without any
label, otherwise the label is used together with the suffix
"(not assigned)".

Change-Id: I02c418eebdd9345c3066aa8c3eeec353d2cd9e58
Resolves: #25157
Resolves: #45550
Releases: 4.5, 4.7, 6.0, 6.1, 6.2
Reviewed-on: https://review.typo3.org/18349
Reviewed-by: Carsten Lausen
Tested-by: Carsten Lausen
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Mattias Nilsson
Tested-by: Mattias Nilsson
Reviewed-by: Stefan Neufeind
typo3/sysext/backend/Classes/View/PageLayoutView.php

index f669f0d..416790a 100644 (file)
@@ -540,16 +540,27 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
                                                        // Render the grid cell
                                                        $colSpan = intval($columnConfig['colspan']);
                                                        $rowSpan = intval($columnConfig['rowspan']);
-                                                       $grid .= '<td valign="top"' . ($colSpan > 0 ? ' colspan="' . $colSpan . '"' : '') . ($rowSpan > 0 ? ' rowspan="' . $rowSpan . '"' : '') . ' class="t3-gridCell t3-page-column t3-page-column-' . $columnKey . (!isset($columnConfig['colPos']) ? ' t3-gridCell-unassigned' : '') . (isset($columnConfig['colPos']) && !$head[$columnKey] ? ' t3-gridCell-restricted' : '') . ($colSpan > 0 ? ' t3-gridCell-width' . $colSpan : '') . ($rowSpan > 0 ? ' t3-gridCell-height' . $rowSpan : '') . '">';
+                                                       $grid .= '<td valign="top"' .
+                                                               ($colSpan > 0 ? ' colspan="' . $colSpan . '"' : '') .
+                                                               ($rowSpan > 0 ? ' rowspan="' . $rowSpan . '"' : '') .
+                                                               ' class="t3-gridCell t3-page-column t3-page-column-' . $columnKey .
+                                                               ((!isset($columnConfig['colPos']) || $columnConfig['colPos'] === '') ? ' t3-gridCell-unassigned' : '') .
+                                                               ((isset($columnConfig['colPos']) && $columnConfig['colPos'] !== '' && !$head[$columnKey]) ? ' t3-gridCell-restricted' : '') .
+                                                               ($colSpan > 0 ? ' t3-gridCell-width' . $colSpan : '') .
+                                                               ($rowSpan > 0 ? ' t3-gridCell-height' . $rowSpan : '') . '">';
+
                                                        // Draw the pre-generated header with edit and new buttons if a colPos is assigned.
                                                        // If not, a new header without any buttons will be generated.
-                                                       if (isset($columnConfig['colPos']) && $head[$columnKey]) {
+                                                       if (isset($columnConfig['colPos']) && $columnConfig['colPos'] !== '' && $head[$columnKey]) {
                                                                $grid .= $head[$columnKey] . $content[$columnKey];
-                                                       } elseif ($columnConfig['colPos']) {
+                                                       } elseif (isset($columnConfig['colPos']) && $columnConfig['colPos'] !== '') {
                                                                $grid .= $this->tt_content_drawColHeader($GLOBALS['LANG']->getLL('noAccess'), '', '');
+                                                       } elseif (isset($columnConfig['name']) && strlen($columnConfig['name']) > 0) {
+                                                               $grid .= $this->tt_content_drawColHeader($GLOBALS['LANG']->sL($columnConfig['name']) . ' (' . $GLOBALS['LANG']->getLL('notAssigned') . ')', '', '');
                                                        } else {
                                                                $grid .= $this->tt_content_drawColHeader($GLOBALS['LANG']->getLL('notAssigned'), '', '');
                                                        }
+
                                                        $grid .= '</td>';
                                                }
                                                $grid .= '</tr>';