DRY up restoring of participants in ConversationDraftEditForm
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 19 Jan 2021 09:45:43 +0000 (10:45 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 19 Jan 2021 09:45:43 +0000 (10:45 +0100)
files/lib/form/ConversationDraftEditForm.class.php

index 40845252fad62b48fbea0f7c5085e2453e1c3fa3..f330fa90d991c478edbe91ce2d0400ae384d0c5f 100644 (file)
@@ -127,35 +127,23 @@ class ConversationDraftEditForm extends ConversationAddForm
 
             if ($this->conversation->draftData) {
                 $draftData = @\unserialize($this->conversation->draftData);
-                if (!empty($draftData['participants'])) {
-                    $condition = new PreparedStatementConditionBuilder();
-                    $condition->add('userID IN (?)', [$draftData['participants']]);
-
-                    $sql = "SELECT  username
-                            FROM    wcf" . WCF_N . "_user
-                            " . $condition;
-                    $statement = WCF::getDB()->prepareStatement($sql);
-                    $statement->execute($condition->getParameters());
-
-                    if (!empty($this->participants)) {
-                        $this->participants .= ', ';
-                    }
-                    $this->participants .= \implode(', ', $statement->fetchAll(\PDO::FETCH_COLUMN));
-                }
-                if (!empty($draftData['invisibleParticipants'])) {
-                    $condition = new PreparedStatementConditionBuilder();
-                    $condition->add('userID IN (?)', [$draftData['invisibleParticipants']]);
-
-                    $sql = "SELECT  username
-                            FROM    wcf" . WCF_N . "_user
-                            " . $condition;
-                    $statement = WCF::getDB()->prepareStatement($sql);
-                    $statement->execute($condition->getParameters());
-
-                    if (!empty($this->invisibleParticipants)) {
-                        $this->invisibleParticipants .= ', ';
+
+                foreach (['participants', 'invisibleParticipants'] as $participantType) {
+                    if (!empty($draftData[$participantType])) {
+                        $condition = new PreparedStatementConditionBuilder();
+                        $condition->add('userID IN (?)', [$draftData[$participantType]]);
+
+                        $sql = "SELECT  username
+                                FROM    wcf" . WCF_N . "_user
+                                " . $condition;
+                        $statement = WCF::getDB()->prepareStatement($sql);
+                        $statement->execute($condition->getParameters());
+
+                        if (!empty($this->{$participantType})) {
+                            $this->{$participantType} .= ', ';
+                        }
+                        $this->{$participantType} .= \implode(', ', $statement->fetchAll(\PDO::FETCH_COLUMN));
                     }
-                    $this->invisibleParticipants .= \implode(', ', $statement->fetchAll(\PDO::FETCH_COLUMN));
                 }
             }
         }