From 957082fc82249715341bc91012b9a241809e3253 Mon Sep 17 00:00:00 2001
From: Oliver Hader <oliver@typo3.org>
Date: Sat, 16 Dec 2017 11:23:37 +0100
Subject: [PATCH] [FOLLOWUP][TASK] Remove column sys_file_reference.sorting
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Table sys_file_reference is used as "inline 1:n foreign_field" composite
assiciation and is processed in RelationHandler methods readForeignField
and writeForeignField. Albeit it looks like an MM table it still is a
regular TCA table being used as an entity with further attributes.

That's why this follow-up reverts the changes in file RelationHandler.php
that have been introduced in 728bfc194f46651ac70725d8aa6b476dac777765.

Related: #83160
Releases: master
Change-Id: I4b7a78a0ee494af9492996e81c2b631c29832cc6
Reviewed-on: https://review.typo3.org/55107
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
Reviewed-by: Stephan Großberndt <stephan@grossberndt.de>
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
---
 .../core/Classes/Database/RelationHandler.php | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/typo3/sysext/core/Classes/Database/RelationHandler.php b/typo3/sysext/core/Classes/Database/RelationHandler.php
index 5106a97588b5..435212cda9ca 100644
--- a/typo3/sysext/core/Classes/Database/RelationHandler.php
+++ b/typo3/sysext/core/Classes/Database/RelationHandler.php
@@ -556,7 +556,7 @@ class RelationHandler
             // Default
             $uidLocal_field = 'uid_local';
             $uidForeign_field = 'uid_foreign';
-            $sorting_field = $tableName === 'sys_file_reference' ? '' : 'sorting';
+            $sorting_field = 'sorting';
         }
         if ($this->MM_table_where) {
             $queryBuilder->andWhere(
@@ -574,9 +574,7 @@ class RelationHandler
                 $queryBuilder->createNamedParameter((int)$uid, \PDO::PARAM_INT)
             )
         );
-        if (!empty($sorting_field)) {
-            $queryBuilder->orderBy($sorting_field);
-        }
+        $queryBuilder->orderBy($sorting_field);
         $statement = $queryBuilder->execute();
         while ($row = $statement->fetch()) {
             // Default
@@ -618,7 +616,7 @@ class RelationHandler
             // default
             $uidLocal_field = 'uid_local';
             $uidForeign_field = 'uid_foreign';
-            $sorting_field = $MM_tableName === 'sys_file_reference' ? '' : 'sorting';
+            $sorting_field = 'sorting';
         }
         // If there are tables...
         $tableC = count($this->tableArray);
@@ -654,10 +652,9 @@ class RelationHandler
                 ->where($queryBuilder->expr()->eq(
                     $uidLocal_field,
                     $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT)
-                ));
-            if (!empty($sorting_field)) {
-                $queryBuilder->orderBy($sorting_field);
-            }
+                ))
+                ->orderBy($sorting_field);
+
             if ($prep) {
                 $queryBuilder->addSelect('tablenames');
             }
@@ -754,9 +751,7 @@ class RelationHandler
                     $insertFields = $this->MM_insert_fields;
                     $insertFields[$uidLocal_field] = $uid;
                     $insertFields[$uidForeign_field] = $val['id'];
-                    if (!empty($sorting_field)) {
-                        $insertFields[$sorting_field] = $c;
-                    }
+                    $insertFields[$sorting_field] = $c;
                     if ($tablename) {
                         $insertFields['tablenames'] = $tablename;
                         $insertFields = $this->completeOppositeUsageValues($tablename, $insertFields);
-- 
GitLab