diff --git a/main/inc/lib/TicketManager.php b/main/inc/lib/TicketManager.php index 07bc4bc6e7..5be4a06264 100644 --- a/main/inc/lib/TicketManager.php +++ b/main/inc/lib/TicketManager.php @@ -196,7 +196,7 @@ class TicketManager if (self::userIsAssignedToCategory($userId, $categoryId) == false) { $params = [ 'category_id' => $categoryId, - 'user_id' => $userId + 'user_id' => $userId, ]; Database::insert($table, $params); } @@ -356,7 +356,7 @@ class TicketManager 'source' => $source, 'assigned_last_user' => $assignedUserId, 'subject' => $subject, - 'message' => $content + 'message' => $content, ]; if (!empty($course_id)) { @@ -599,7 +599,7 @@ class TicketManager 'ticket_id' => $ticketId, 'user_id' => $userId, 'sys_insert_user_id' => api_get_user_id(), - 'assigned_date' => api_get_utc_datetime() + 'assigned_date' => api_get_utc_datetime(), ]; Database::insert($table, $params); @@ -654,7 +654,7 @@ class TicketManager 'sys_insert_datetime' => $now, 'sys_lastedit_user_id' => $userId, 'sys_lastedit_datetime' => $now, - 'status' => $status + 'status' => $status, ]; $messageId = Database::insert($table_support_messages, $params); if ($messageId) { @@ -864,7 +864,7 @@ class TicketManager 'keyword_assigned_to' => 'ticket.assigned_last_user', 'keyword_source' => 'ticket.source ', 'keyword_status' => 'ticket.status_id', - 'keyword_priority' => 'ticket.priority_id' + 'keyword_priority' => 'ticket.priority_id', ]; foreach ($keywords as $keyword => $label) { @@ -954,7 +954,7 @@ class TicketManager $icon .= ''.$row['code'].''; if ($isAdmin) { - $ticket = array( + $ticket = [ $icon.' '.$row['subject'], $row['status_name'], $row['start_date'], @@ -962,16 +962,16 @@ class TicketManager $row['category_name'], $name, $row['assigned_last_user'], - $row['total_messages'] - ); + $row['total_messages'], + ]; } else { - $ticket = array( + $ticket = [ $icon.' '.$row['subject'], $row['status_name'], $row['start_date'], $row['sys_lastedit_datetime'], - $row['category_name'] - ); + $row['category_name'], + ]; } if ($isAdmin) { $ticket['0'] .= '   @@ -1051,7 +1051,7 @@ class TicketManager 'keyword_assigned_to' => 'ticket.assigned_last_user', 'keyword_source' => 'ticket.source', 'keyword_status' => 'ticket.status_id', - 'keyword_priority' => 'ticket.priority_id' + 'keyword_priority' => 'ticket.priority_id', ]; foreach ($keywords as $keyword => $sqlLabel) { @@ -1107,6 +1107,22 @@ class TicketManager return false; } + /** + * @param int $id + * @return array + */ + public static function getTicketMessageAttachmentsByTicketId($id) + { + $id = (int) $id; + $em = Database::getManager(); + $items = $em->getRepository('ChamiloTicketBundle:MessageAttachment')->findBy(['ticketId' => $id]); + if ($items) { + return $items; + } + + return false; + } + /** * @param int $ticketId * @return array @@ -1284,8 +1300,31 @@ class TicketManager $messageEmail .= get_lang('Priority').": $priority
"; $messageEmail .= '

'; $messageEmail .= $message; - $currentUserId = api_get_user_id(); + $attachmentList = []; + $attachments = self::getTicketMessageAttachmentsByTicketId($ticketId); + if (!empty($attachments)) { + /** @var MessageAttachment $attachment */ + foreach ($attachments as $attachment) { + $file = api_get_uploaded_file( + 'ticket_attachment', + $ticketId, + $attachment->getPath() + ); + if (!empty($file)) { + $attachmentList[] = [ + 'tmp_name' => api_get_uploaded_file( + 'ticket_attachment', + $ticketId, + $attachment->getPath() + ), + 'size' => $attachment->getSize(), + 'name' => $attachment->getFilename(), + 'error' => 0 + ]; + } + } + } if (!empty($onlyToUserId)) { // Send only to specific user @@ -1293,7 +1332,13 @@ class TicketManager MessageManager::send_message_simple( $onlyToUserId, $titleEmail, - $messageEmail + $messageEmail, + 0, + false, + false, + [], + false, + $attachmentList ); } } else { @@ -1302,7 +1347,13 @@ class TicketManager MessageManager::send_message_simple( $requestUserInfo['id'], $titleEmail, - $messageEmail + $messageEmail, + 0, + false, + false, + [], + false, + $attachmentList ); } @@ -1313,7 +1364,13 @@ class TicketManager MessageManager::send_message_simple( $assignedUserInfo['id'], $titleEmail, - $messageEmail + $messageEmail, + 0, + false, + false, + [], + false, + $attachmentList ); } } @@ -1825,7 +1882,7 @@ class TicketManager '0' => $row->getId(), '1' => $row->getName(), '2' => $row->getDescription(), - '3' => $row->getId() + '3' => $row->getId(), ]; } @@ -1849,7 +1906,7 @@ class TicketManager $row->getName(), api_get_path(WEB_CODE_PATH).'ticket/tickets.php?project_id='.$row->getId() ), - '2' => $row->getDescription() + '2' => $row->getDescription(), ]; } @@ -1949,7 +2006,7 @@ class TicketManager '0' => $row->getId(), '1' => $row->getName(), '2' => $row->getDescription(), - '3' => $row->getId() + '3' => $row->getId(), ]; } @@ -1970,7 +2027,7 @@ class TicketManager 'id' => $row->getId(), '0' => $row->getId(), '1' => Display::url($row->getName()), - '2' => $row->getDescription() + '2' => $row->getDescription(), ]; } @@ -2069,7 +2126,7 @@ class TicketManager '0' => $row->getId(), '1' => $row->getName(), '2' => $row->getDescription(), - '3' => $row->getId() + '3' => $row->getId(), ]; } @@ -2090,7 +2147,7 @@ class TicketManager 'id' => $row->getId(), '0' => $row->getId(), '1' => Display::url($row->getName()), - '2' => $row->getDescription() + '2' => $row->getDescription(), ]; } @@ -2189,17 +2246,17 @@ class TicketManager $project = [ 'icon' => 'project.png', 'url' => 'projects.php', - 'content' => get_lang('Projects') + 'content' => get_lang('Projects'), ]; $status = [ 'icon' => 'check-circle.png', 'url' => 'status.php', - 'content' => get_lang('Status') + 'content' => get_lang('Status'), ]; $priority = [ 'icon' => 'tickets_urgent.png', 'url' => 'priorities.php', - 'content' => get_lang('Priority') + 'content' => get_lang('Priority'), ]; switch ($exclude) { case 'project': @@ -2230,7 +2287,7 @@ class TicketManager self::STATUS_PENDING, self::STATUS_UNCONFIRMED, self::STATUS_CLOSE, - self::STATUS_FORWARDED + self::STATUS_FORWARDED, ]; } @@ -2244,7 +2301,7 @@ class TicketManager self::PRIORITY_HIGH, self::PRIORITY_LOW, self::STATUS_CLOSE, - self::STATUS_FORWARDED + self::STATUS_FORWARDED, ]; }