} } if (count($groupRecipients) > 0) { $usersTableGateway = new DirectusUsersTableGateway($acl, $ZendDb); $result = $usersTableGateway->findActiveUserIdsByGroupIds($groupRecipients); foreach ($result as $item) { $userRecipients[] = $item['id']; } } $userRecipients[] = $currentUser['id']; $messagesTableGateway = new DirectusMessagesTableGateway($acl, $ZendDb); $id = $messagesTableGateway->sendMessage($requestPayload, array_unique($userRecipients), $currentUser['id']); if ($id) { $Activity = new DirectusActivityTableGateway($acl, $ZendDb); $requestPayload['id'] = $id; $Activity->recordMessage($requestPayload, $currentUser['id']); } $mail = new Directus\Mail\Mailer(); foreach ($userRecipients as $recipient) { $usersTableGateway = new DirectusUsersTableGateway($acl, $ZendDb); $user = $usersTableGateway->findOneBy('id', $recipient); if (isset($user) && $user['email_messages'] == 1) { $messageNotificationMail = new Directus\Mail\NotificationMail($user['email'], $requestPayload['subject'], $requestPayload['message']); $mail->send($messageNotificationMail); $mail->ClearAllRecipients(); } } $message = $messagesTableGateway->fetchMessageWithRecipients($id, $currentUser['id']); JsonView::render($message); }); $app->get("/{$v}/messages/recipients/?", function () use($params, $requestPayload, $app, $acl, $ZendDb) {