Procházet zdrojové kódy

Fix c_student_publication.post_group_id update see BT#12609

jmontoyaa před 7 roky
rodič
revize
29dbe08690
1 změnil soubory, kde provedl 20 přidání a 18 odebrání
  1. 20 18
      main/install/install.lib.php

+ 20 - 18
main/install/install.lib.php

@@ -3241,35 +3241,37 @@ function fixPostGroupIds($connection)
     error_log('Fix c_student_publication.post_group_id');
 
     // Fix post_group_id
-    $sql = "SELECT * FROM c_student_publication WHERE (post_group_id <> 0 AND post_group_id is not null)";
+    $sql = "SELECT * FROM c_student_publication 
+            WHERE (post_group_id <> 0 AND post_group_id is not null)";
     $statement = $connection->executeQuery($sql);
     $result = $statement->fetchAll();
+
     foreach ($result as $row) {
         $groupId = $row['post_group_id'];
         $courseId = $row['c_id'];
         $workIid = $row['iid'];
-        $sql = "SELECT iid from c_group_info WHERE c_id = $courseId AND iid = $groupId";
+        $sql = "SELECT iid from c_group_info 
+                WHERE c_id = $courseId AND id = $groupId";
         $statement = $connection->executeQuery($sql);
         $count = $statement->rowCount();
-        if ($count == 0) {
-            $sql = "SELECT iid from c_group_info WHERE c_id = $courseId AND id = $groupId";
-            $statement = $connection->executeQuery($sql);
-            $count = $statement->rowCount();
-            if ($count > 0) {
-                $rowGroup = $statement->fetch();
-                $newGroupId = $rowGroup['iid'];
-                if ($newGroupId) {
-                    $sqlUpdate = "UPDATE c_student_publication 
-                                  SET post_group_id = $newGroupId 
-                                  WHERE 
-                                    c_id = $courseId AND
-                                    iid = $workIid
-                                  ";
-                    $connection->executeQuery($sqlUpdate);
-                }
+        if ($count > 0) {
+            $rowGroup = $statement->fetch();
+            $newGroupId = $rowGroup['iid'];
+            if ($newGroupId == $groupId) {
+                continue;
+            }
+            if ($newGroupId) {
+                $sql = "UPDATE c_student_publication 
+                        SET post_group_id = $newGroupId 
+                        WHERE 
+                            c_id = $courseId AND
+                            iid = $workIid
+                        ";
+                $connection->executeQuery($sql);
             }
         }
     }
+
     error_log('End - Fix c_student_publication.post_group_id');
 
     // Delete c_student_publication from any session that doesn't exist anymore