Commit | Line | Data |
---|---|---|
0ce25d96 | 1 | <?php |
fea86294 | 2 | |
0ce25d96 | 3 | namespace wcf\system\importer; |
fea86294 | 4 | |
0ce25d96 MW |
5 | use 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 |
14 | class 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 | } |