You are here

function social_private_message_thread_view_alter in Open Social 8.9

Same name and namespace in other branches
  1. 8 modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  2. 8.2 modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  3. 8.3 modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  4. 8.4 modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  5. 8.5 modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  6. 8.6 modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  7. 8.7 modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  8. 8.8 modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  9. 10.3.x modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  10. 10.0.x modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  11. 10.1.x modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()
  12. 10.2.x modules/social_features/social_private_message/social_private_message.module \social_private_message_thread_view_alter()

Implements hook_thread_view_alter().

File

modules/social_features/social_private_message/social_private_message.module, line 382
The Social Privagte Message module.

Code

function social_private_message_thread_view_alter(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display) {
  $current_user = Drupal::currentUser();
  if ($display
    ->getComponent('delete_link') && $current_user
    ->hasPermission('use private messaging system') && $current_user
    ->hasPermission('delete private messages thread')) {
    $url = Url::fromRoute('entity.private_message_thread.delete_form', [
      'private_message_thread' => $entity
        ->id(),
    ]);
    $build['delete_link'] = [
      '#prefix' => '',
      '#suffix' => '',
      '#type' => 'link',
      '#url' => $url,
      '#title' => t('Delete thread'),
    ];
  }
  else {
    unset($build['delete_link']);
  }
  if (!$current_user
    ->hasPermission('use private messaging system') || !$current_user
    ->hasPermission('reply to private messages thread')) {
    unset($build['private_message_form']);
  }

  // Also add the back to inbox link
  // but just the link since it's a drop down with icon.
  $build['back_to_inbox']['#markup'] = Url::fromRoute('social_private_message.inbox')
    ->toString();
}