protected function AjaxController::getNewPrivateMessages in Private Message 8.2
Same name and namespace in other branches
- 8 src/Controller/AjaxController.php \Drupal\private_message\Controller\AjaxController::getNewPrivateMessages()
Creates an Ajax Command containing new private message.
Parameters
Drupal\Core\Ajax\AjaxResponse $response: The response to which any commands should be attached.
1 call to AjaxController::getNewPrivateMessages()
- AjaxController::ajaxCallback in src/
Controller/ AjaxController.php - Create AJAX responses for JavaScript requests.
File
- src/
Controller/ AjaxController.php, line 205
Class
- AjaxController
- Controller to handle Ajax requests.
Namespace
Drupal\private_message\ControllerCode
protected function getNewPrivateMessages(AjaxResponse $response) {
$thread_id = $this->requestStack
->getCurrentRequest()
->get('threadid');
$message_id = $this->requestStack
->getCurrentRequest()
->get('messageid');
$count = 0;
if (is_numeric($thread_id) && is_numeric($message_id)) {
$thread = $this->threadManager
->load($thread_id);
if ($thread) {
$new_messages = $this->privateMessageService
->getNewMessages($thread_id, $message_id);
$this->privateMessageService
->updateThreadAccessTime($thread);
$count = count($new_messages);
if ($count) {
$messages = [];
$view_builder = $this->entityTypeManager
->getViewBuilder('private_message');
foreach ($new_messages as $message) {
if ($message
->access('view', $this->currentUser)) {
$message_view = $view_builder
->view($message);
$message_view['#prefix'] = '<div class="private-message-wrapper field__item">';
$message_view['#suffix'] = '</div>';
$messages[] = $message_view;
}
}
// Ensure the browser knows the thread ID at all times.
$messages['#attached']['drupalSettings']['privateMessageThread']['threadId'] = (int) $thread
->id();
}
$response
->addCommand(new PrivateMessageInsertNewMessagesCommand($this->renderer
->renderRoot($messages), $count));
}
}
}