From 6bf6369fac4de67aafe30399e27eddd2b9c3f785 Mon Sep 17 00:00:00 2001
From: Christian Kuhn <lolli@schwarzbu.ch>
Date: Mon, 20 Mar 2017 20:43:33 +0100
Subject: [PATCH] [TASK] Clean up ['ctrl'] sortby and default_sortby
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

sortby: An integer field with an explicit sorting value

default_sortby: A query->orderBy statement to sort records
if no explicit sortby field is given.

default_sortby is ignored if sortby is given. The patch removes
a couple of TCA ['ctrl']['default_sortby'] declarations where both
were defined.

default_sortby needs no "ORDER BY" prefix. The patch removes it
from those TCA tables where this prefix was still defined.

Additionally, the TCA reference docs have been improved in this
area to hint about both fields and their correlation. It is especially
evil if that is confused and a field like 'title' is set as sortby:
The DataHandler would happily write integers into that field on save.

Change-Id: Ib5c38a538cd3f60d3e05033488363a144f756505
Resolves: #80361
Releases: master
Reviewed-on: https://review.typo3.org/52108
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Steffen Kamper <info@sk-typo3.de>
Reviewed-by: Josef Glatz <josef.glatz@typo3.org>
Tested-by: Josef Glatz <josef.glatz@typo3.org>
Tested-by: Mona Muzaffar <mona.muzaffar@gmx.de>
Reviewed-by: Jan Helke <typo3@helke.de>
Tested-by: Jan Helke <typo3@helke.de>
Reviewed-by: Frank Nägler <frank.naegler@typo3.org>
Tested-by: Frank Nägler <frank.naegler@typo3.org>
---
 typo3/sysext/core/Configuration/TCA/be_groups.php               | 2 +-
 typo3/sysext/core/Configuration/TCA/be_users.php                | 2 +-
 typo3/sysext/core/Configuration/TCA/sys_collection.php          | 2 +-
 typo3/sysext/core/Configuration/TCA/sys_file.php                | 2 +-
 typo3/sysext/core/Configuration/TCA/sys_file_collection.php     | 2 +-
 typo3/sysext/core/Configuration/TCA/sys_file_metadata.php       | 2 +-
 typo3/sysext/core/Configuration/TCA/sys_file_storage.php        | 2 +-
 typo3/sysext/core/Configuration/TCA/sys_language.php            | 1 -
 typo3/sysext/frontend/Configuration/TCA/fe_users.php            | 2 +-
 typo3/sysext/indexed_search/Configuration/TCA/index_config.php  | 2 +-
 .../rtehtmlarea/Configuration/TCA/tx_rtehtmlarea_acronym.php    | 1 -
 typo3/sysext/sys_action/Configuration/TCA/sys_action.php        | 1 -
 typo3/sysext/sys_note/Configuration/TCA/sys_note.php            | 1 -
 13 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/typo3/sysext/core/Configuration/TCA/be_groups.php b/typo3/sysext/core/Configuration/TCA/be_groups.php
index e381a07d19a0..b51239bec20c 100644
--- a/typo3/sysext/core/Configuration/TCA/be_groups.php
+++ b/typo3/sysext/core/Configuration/TCA/be_groups.php
@@ -7,7 +7,7 @@ return [
         'crdate' => 'crdate',
         'cruser_id' => 'cruser_id',
         'delete' => 'deleted',
-        'default_sortby' => 'ORDER BY title',
+        'default_sortby' => 'title',
         'prependAtCopy' => 'LLL:EXT:lang/Resources/Private/Language/locallang_general.xlf:LGL.prependAtCopy',
         'adminOnly' => true,
         'rootLevel' => 1,
diff --git a/typo3/sysext/core/Configuration/TCA/be_users.php b/typo3/sysext/core/Configuration/TCA/be_users.php
index 85fdf436308d..768c4cd2f76a 100644
--- a/typo3/sysext/core/Configuration/TCA/be_users.php
+++ b/typo3/sysext/core/Configuration/TCA/be_users.php
@@ -10,7 +10,7 @@ return [
         'delete' => 'deleted',
         'adminOnly' => true,
         'rootLevel' => 1,
-        'default_sortby' => 'ORDER BY admin, username',
+        'default_sortby' => 'admin, username',
         'enablecolumns' => [
             'disabled' => 'disable',
             'starttime' => 'starttime',
diff --git a/typo3/sysext/core/Configuration/TCA/sys_collection.php b/typo3/sysext/core/Configuration/TCA/sys_collection.php
index 9675e1cefcca..c23ba5c60ccd 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_collection.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_collection.php
@@ -12,7 +12,7 @@ return [
         'languageField' => 'sys_language_uid',
         'transOrigPointerField' => 'l10n_parent',
         'transOrigDiffSourceField' => 'l10n_diffsource',
-        'default_sortby' => 'ORDER BY crdate',
+        'default_sortby' => 'crdate',
         'delete' => 'deleted',
         'type' => 'type',
         'rootLevel' => -1,
diff --git a/typo3/sysext/core/Configuration/TCA/sys_file.php b/typo3/sysext/core/Configuration/TCA/sys_file.php
index b92b097b526b..298b74b321ba 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_file.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_file.php
@@ -7,7 +7,7 @@ return [
         'type' => 'type',
         'hideTable' => true,
         'rootLevel' => true,
-        'default_sortby' => 'ORDER BY name ASC',
+        'default_sortby' => 'name ASC',
         'typeicon_column' => 'type',
         'typeicon_classes' => [
             '1' => 'mimetypes-text-text',
diff --git a/typo3/sysext/core/Configuration/TCA/sys_file_collection.php b/typo3/sysext/core/Configuration/TCA/sys_file_collection.php
index 833de93a7ba8..e4d864919c27 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_file_collection.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_file_collection.php
@@ -11,7 +11,7 @@ return [
         'languageField' => 'sys_language_uid',
         'transOrigPointerField' => 'l10n_parent',
         'transOrigDiffSourceField' => 'l10n_diffsource',
-        'default_sortby' => 'ORDER BY crdate',
+        'default_sortby' => 'crdate',
         'delete' => 'deleted',
         'type' => 'type',
         'typeicon_column' => 'type',
diff --git a/typo3/sysext/core/Configuration/TCA/sys_file_metadata.php b/typo3/sysext/core/Configuration/TCA/sys_file_metadata.php
index c98aa0b5306b..e213e6050727 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_file_metadata.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_file_metadata.php
@@ -14,7 +14,7 @@ return [
         'transOrigDiffSourceField' => 'l10n_diffsource',
         'versioningWS' => true,
         'origUid' => 't3_origuid',
-        'default_sortby' => 'ORDER BY crdate DESC',
+        'default_sortby' => 'crdate DESC',
         'typeicon_classes' => [
             'default' => 'mimetypes-other-other'
         ],
diff --git a/typo3/sysext/core/Configuration/TCA/sys_file_storage.php b/typo3/sysext/core/Configuration/TCA/sys_file_storage.php
index bb3088cf93a1..a63280630435 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_file_storage.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_file_storage.php
@@ -6,7 +6,7 @@ return [
         'tstamp' => 'tstamp',
         'crdate' => 'crdate',
         'cruser_id' => 'cruser_id',
-        'default_sortby' => 'ORDER BY name',
+        'default_sortby' => 'name',
         'delete' => 'deleted',
         'descriptionColumn' => 'description',
         'rootLevel' => true,
diff --git a/typo3/sysext/core/Configuration/TCA/sys_language.php b/typo3/sysext/core/Configuration/TCA/sys_language.php
index 18bcefe12d07..02355714ce54 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_language.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_language.php
@@ -3,7 +3,6 @@ return [
     'ctrl' => [
         'label' => 'title',
         'tstamp' => 'tstamp',
-        'default_sortby' => 'ORDER BY sorting',
         'sortby' => 'sorting',
         'title' => 'LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_language',
         'adminOnly' => true,
diff --git a/typo3/sysext/frontend/Configuration/TCA/fe_users.php b/typo3/sysext/frontend/Configuration/TCA/fe_users.php
index 9f55b471f8c5..583e423c9fca 100644
--- a/typo3/sysext/frontend/Configuration/TCA/fe_users.php
+++ b/typo3/sysext/frontend/Configuration/TCA/fe_users.php
@@ -3,7 +3,7 @@ return [
     'ctrl' => [
         'label' => 'username',
         'descriptionColumn' => 'description',
-        'default_sortby' => 'ORDER BY username',
+        'default_sortby' => 'username',
         'tstamp' => 'tstamp',
         'crdate' => 'crdate',
         'cruser_id' => 'cruser_id',
diff --git a/typo3/sysext/indexed_search/Configuration/TCA/index_config.php b/typo3/sysext/indexed_search/Configuration/TCA/index_config.php
index a209f57026dc..ab556c02e7ce 100644
--- a/typo3/sysext/indexed_search/Configuration/TCA/index_config.php
+++ b/typo3/sysext/indexed_search/Configuration/TCA/index_config.php
@@ -8,7 +8,7 @@ return [
         'crdate' => 'crdate',
         'cruser_id' => 'cruser_id',
         'type' => 'type',
-        'default_sortby' => 'ORDER BY crdate',
+        'default_sortby' => 'crdate',
         'enablecolumns' => [
             'disabled' => 'hidden',
             'starttime' => 'starttime'
diff --git a/typo3/sysext/rtehtmlarea/Configuration/TCA/tx_rtehtmlarea_acronym.php b/typo3/sysext/rtehtmlarea/Configuration/TCA/tx_rtehtmlarea_acronym.php
index f62011f095c9..13968f6a8b31 100644
--- a/typo3/sysext/rtehtmlarea/Configuration/TCA/tx_rtehtmlarea_acronym.php
+++ b/typo3/sysext/rtehtmlarea/Configuration/TCA/tx_rtehtmlarea_acronym.php
@@ -3,7 +3,6 @@ return [
     'ctrl' => [
         'title' => 'LLL:EXT:rtehtmlarea/Resources/Private/Language/locallang_db.xlf:tx_rtehtmlarea_acronym',
         'label' => 'term',
-        'default_sortby' => 'ORDER BY term',
         'sortby' => 'sorting',
         'delete' => 'deleted',
         'enablecolumns' => [
diff --git a/typo3/sysext/sys_action/Configuration/TCA/sys_action.php b/typo3/sysext/sys_action/Configuration/TCA/sys_action.php
index 3679fe0ec7b7..50ffd716496b 100644
--- a/typo3/sysext/sys_action/Configuration/TCA/sys_action.php
+++ b/typo3/sysext/sys_action/Configuration/TCA/sys_action.php
@@ -4,7 +4,6 @@ return [
         'label' => 'title',
         'descriptionColumn' => 'description',
         'tstamp' => 'tstamp',
-        'default_sortby' => 'ORDER BY title',
         'sortby' => 'sorting',
         'prependAtCopy' => 'LLL:EXT:lang/Resources/Private/Language/locallang_general.xlf:LGL.prependAtCopy',
         'title' => 'LLL:EXT:sys_action/Resources/Private/Language/locallang_tca.xlf:sys_action',
diff --git a/typo3/sysext/sys_note/Configuration/TCA/sys_note.php b/typo3/sysext/sys_note/Configuration/TCA/sys_note.php
index 76ec5eaa355b..31e39ca9927b 100644
--- a/typo3/sysext/sys_note/Configuration/TCA/sys_note.php
+++ b/typo3/sysext/sys_note/Configuration/TCA/sys_note.php
@@ -2,7 +2,6 @@
 return [
     'ctrl' => [
         'label' => 'subject',
-        'default_sortby' => 'ORDER BY crdate',
         'tstamp' => 'tstamp',
         'crdate' => 'crdate',
         'cruser_id' => 'cruser',
-- 
GitLab