Skip to content

Commit

Permalink
GH-126 Move fetching original messages to its own utility
Browse files Browse the repository at this point in the history
  • Loading branch information
mdziekon committed Oct 26, 2020
1 parent 74f7e55 commit a730ada
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 41 deletions.
44 changes: 3 additions & 41 deletions messages.php
Original file line number Diff line number Diff line change
Expand Up @@ -429,47 +429,9 @@
}

$messagesCopyIds = Messages\Utils\getMessagesCopyIds($MsgCache);
$copyOriginalMessages = [];

if (!empty($messagesCopyIds)) {
$getMassMessagesQuery = (
"SELECT " .
"`m`.*, `u`.`username`, `u`.`authlevel` " .
"FROM {{table}} as `m` " .
"LEFT JOIN " .
"`{{prefix}}users` AS `u` " .
"ON `u`.`id` = `m`.`id_sender` " .
"WHERE " .
"`m`.`id` IN (" . implode(', ', $messagesCopyIds) . ") " .
";"
);

$getMassMessagesResult = doquery($getMassMessagesQuery, 'messages');

while ($copyOriginalMessage = $getMassMessagesResult->fetch_assoc()) {
$messageId = $copyOriginalMessage['id'];

$copyOriginalMessages[$messageId] = [];
$messageRef = &$copyOriginalMessages[$messageId];

if (Messages\Utils\isSystemSentMessage($copyOriginalMessage)) {
$messageRef = [
'from' => $copyOriginalMessage['from'],
'subject' => $_Lang['msg_const']['subjects']['019'],
'text' => sprintf($_Lang['msg_const']['msgs']['err3'], $messageId),
];

continue;
}

$messageRef = Messages\Utils\_buildTypedUserMessageDetails(
$copyOriginalMessage,
[
'copyOriginalMessagesStorage' => [],
]
);
}
}
$copyOriginalMessages = Messages\Utils\fetchOriginalMessagesForRefSystem([
'originalMessageIds' => $messagesCopyIds,
]);

foreach ($MsgCache as $CurMess) {
$parseMSG = [
Expand Down
1 change: 1 addition & 0 deletions modules/messages/_includes.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
include($includePath . './utils/buildMessageDetails.utils.php');
include($includePath . './utils/createReplyMessageSubject.utils.php');
include($includePath . './utils/fetchFormDataForReply.utils.php');
include($includePath . './utils/fetchOriginalMessagesForRefSystem.utils.php');
include($includePath . './utils/fetchRecipientDataByUserId.utils.php');
include($includePath . './utils/fetchRecipientDataByUsername.utils.php');
include($includePath . './utils/fetchUserMessages.utils.php');
Expand Down
60 changes: 60 additions & 0 deletions modules/messages/utils/fetchOriginalMessagesForRefSystem.utils.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?php

namespace UniEngine\Engine\Modules\Messages\Utils;

use UniEngine\Engine\Modules\Messages;

function fetchOriginalMessagesForRefSystem($params) {
global $_Lang;

$originalMessageIds = $params['originalMessageIds'];

$messagesById = [];

if (empty($originalMessageIds)) {
return $messagesById;
}

$getMassMessagesQuery = (
"SELECT " .
"`m`.*, `u`.`username`, `u`.`authlevel` " .
"FROM {{table}} as `m` " .
"LEFT JOIN " .
"`{{prefix}}users` AS `u` " .
"ON `u`.`id` = `m`.`id_sender` " .
"WHERE " .
"`m`.`id` IN (" . implode(', ', $originalMessageIds) . ") " .
";"
);

$getMassMessagesResult = doquery($getMassMessagesQuery, 'messages');

while ($copyOriginalMessage = $getMassMessagesResult->fetch_assoc()) {
$messageId = $copyOriginalMessage['id'];

if (Messages\Utils\isSystemSentMessage($copyOriginalMessage)) {
$messageObject = [
'from' => $copyOriginalMessage['from'],
'subject' => $_Lang['msg_const']['subjects']['019'],
'text' => sprintf($_Lang['msg_const']['msgs']['err3'], $messageId),
];

$messagesById[$messageId] = $messageObject;

continue;
}

$messageObject = Messages\Utils\_buildTypedUserMessageDetails(
$copyOriginalMessage,
[
'copyOriginalMessagesStorage' => [],
]
);

$messagesById[$messageId] = $messageObject;
}

return $messagesById;
}

?>

0 comments on commit a730ada

Please sign in to comment.