2 namespace wcf\system\event\listener
;
3 use wcf\system\database\util\PreparedStatementConditionBuilder
;
7 * Merges user conversations.
10 * @copyright 2001-2014 WoltLab GmbH
11 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
12 * @package com.woltlab.wcf.conversation
13 * @subpackage system.event.listener
14 * @category Community Framework
16 class ConversationUserMergeListener
implements IParameterizedEventListener
{
18 * @see \wcf\system\event\listener\IParameterizedEventListener::execute()
20 public function execute($eventObj, $className, $eventName, array &$parameters) {
22 $conditions = new PreparedStatementConditionBuilder();
23 $conditions->add("userID IN (?)", array($eventObj->mergedUserIDs
));
24 $sql = "UPDATE wcf".WCF_N
."_conversation
27 $statement = WCF
::getDB()->prepareStatement($sql);
28 $statement->execute(array_merge(array($eventObj->destinationUserID
), $conditions->getParameters()));
30 // conversation_to_user
31 $conditions = new PreparedStatementConditionBuilder();
32 $conditions->add("participantID IN (?)", array($eventObj->mergedUserIDs
));
33 $sql = "UPDATE IGNORE wcf".WCF_N
."_conversation_to_user
36 $statement = WCF
::getDB()->prepareStatement($sql);
37 $statement->execute(array_merge(array($eventObj->destinationUserID
), $conditions->getParameters()));
39 // conversation_message
40 $conditions = new PreparedStatementConditionBuilder();
41 $conditions->add("userID IN (?)", array($eventObj->mergedUserIDs
));
42 $sql = "UPDATE wcf".WCF_N
."_conversation_message
45 $statement = WCF
::getDB()->prepareStatement($sql);
46 $statement->execute(array_merge(array($eventObj->destinationUserID
), $conditions->getParameters()));
49 $conditions = new PreparedStatementConditionBuilder();
50 $conditions->add("userID IN (?)", array($eventObj->mergedUserIDs
));
51 $sql = "UPDATE wcf".WCF_N
."_conversation_label
54 $statement = WCF
::getDB()->prepareStatement($sql);
55 $statement->execute(array_merge(array($eventObj->destinationUserID
), $conditions->getParameters()));