Replace `->prepareStatement()` in importer
[GitHub/WoltLab/com.woltlab.wcf.conversation.git] / files / lib / system / importer / ConversationUserImporter.class.php
CommitLineData
0ce25d96 1<?php
fea86294 2
0ce25d96 3namespace wcf\system\importer;
fea86294 4
0ce25d96
MW
5use wcf\system\WCF;
6
7/**
8 * Imports conversation users.
fea86294
TD
9 *
10 * @author Marcel Werk
11 * @copyright 2001-2019 WoltLab GmbH
12 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
0ce25d96 13 */
fea86294
TD
14class ConversationUserImporter extends AbstractImporter
15{
16 /**
17 * @inheritDoc
18 */
19 public function import($oldID, array $data, array $additionalData = [])
20 {
21 $data['conversationID'] = ImportHandler::getInstance()
22 ->getNewID('com.woltlab.wcf.conversation', $data['conversationID']);
23 if (!$data['conversationID']) {
24 return 0;
25 }
26 $data['participantID'] = ImportHandler::getInstance()->getNewID('com.woltlab.wcf.user', $data['participantID']);
27
51e78132 28 $sql = "INSERT INTO wcf1_conversation_to_user
8fbd8b01
MS
29 (conversationID, participantID, username, hideConversation, isInvisible, lastVisitTime)
30 VALUES (?, ?, ?, ?, ?, ?)
31 ON DUPLICATE KEY UPDATE hideConversation = IF(hideConversation > 0 AND hideConversation = VALUES(hideConversation),hideConversation,0),
32 isInvisible = IF(isInvisible AND VALUES(isInvisible),1,0),
33 lastVisitTime = GREATEST(lastVisitTime,VALUES(lastVisitTime))";
51e78132 34 $statement = WCF::getDB()->prepare($sql);
fea86294
TD
35 $statement->execute([
36 $data['conversationID'],
37 $data['participantID'],
38 $data['username'],
39 $data['hideConversation'],
40 $data['isInvisible'],
41 $data['lastVisitTime'],
42 ]);
43
44 // save labels
45 if ($data['participantID'] && !empty($additionalData['labelIDs'])) {
51e78132 46 $sql = "INSERT IGNORE INTO wcf1_conversation_label_to_object
8fbd8b01
MS
47 (labelID, conversationID)
48 VALUES (?, ?)";
51e78132 49 $statement = WCF::getDB()->prepare($sql);
fea86294
TD
50 foreach ($additionalData['labelIDs'] as $labelID) {
51 $labelID = ImportHandler::getInstance()->getNewID('com.woltlab.wcf.conversation.label', $labelID);
52 if ($labelID) {
53 $statement->execute([$labelID, $data['conversationID']]);
54 }
55 }
56 }
57
58 return 1;
59 }
0ce25d96 60}