You are here

function social_private_message_thread_delete_redirect in Open Social 10.0.x

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

Redirects the form to the inbox.

Parameters

array $form: The form.

\Drupal\Core\Form\FormStateInterface $form_state: The form_state.

1 string reference to 'social_private_message_thread_delete_redirect'
social_private_message_form_private_message_thread_delete_form_alter in modules/social_features/social_private_message/social_private_message.module
Implements hook_form_FORMID_alter().

File

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

Code

function social_private_message_thread_delete_redirect(array $form, FormStateInterface $form_state) {

  // Set a nice message.
  \Drupal::messenger()
    ->addStatus(t('Your message has been deleted.'));

  // Force redirect to the inbox.
  $url = Url::fromRoute('social_private_message.inbox');
  $form_state
    ->setRedirectUrl($url);

  // Unset cache tags for user profiles.
  $build_info = $form_state
    ->getBuildInfo();
  if (isset($build_info['callback_object'])) {

    /** @var \Drupal\private_message\Form\PrivateMessageThreadDeleteForm $pm_thread_form */
    $pm_thread_form = $build_info['callback_object'];
    $pm_thread = $pm_thread_form
      ->getEntity();

    /** @var \Drupal\private_message\Entity\PrivateMessageThread $pm_thread */
    if ($pm_thread) {
      $members = $pm_thread
        ->getMembers();
      $cache_tags = [];
      foreach ($members as $member) {

        /** @var \Drupal\user\Entity\User $member */
        if ($member) {
          foreach ($member
            ->getCacheTagsToInvalidate() as $cache_tag) {
            $cache_tags[] = $cache_tag;
          }
        }
      }
      \Drupal::service('cache_tags.invalidator')
        ->invalidateTags($cache_tags);
    }
  }
}