3 namespace wcf\system\importer
;
5 use wcf\data\conversation\Conversation
;
6 use wcf\data\conversation\ConversationEditor
;
9 * Imports conversations.
12 * @copyright 2001-2019 WoltLab GmbH
13 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
15 class ConversationImporter
extends AbstractImporter
20 protected $className = Conversation
::class;
25 public function import($oldID, array $data, array $additionalData = [])
27 $oldUserID = $data['userID'];
28 $data['userID'] = ImportHandler
::getInstance()->getNewID('com.woltlab.wcf.user', $data['userID']);
30 // check existing conversation
31 if (\
ctype_digit((string)$oldID)) {
32 $existingConversation = new Conversation($oldID);
33 if (!$existingConversation->conversationID
) {
34 $data['conversationID'] = $oldID;
38 $conversation = ConversationEditor
::create($data);
40 ImportHandler
::getInstance()->saveNewID('com.woltlab.wcf.conversation', $oldID, $conversation->conversationID
);
43 if (empty($data['isDraft'])) {
44 ImportHandler
::getInstance()->getImporter('com.woltlab.wcf.conversation.user')->import(0, [
45 'conversationID' => $oldID,
46 'participantID' => $oldUserID,
47 'username' => $data['username'],
48 'hideConversation' => 0,
50 'lastVisitTime' => $data['time'],
51 ], ['labelIDs' => []]);
54 return $conversation->conversationID
;