You are here

function opigno_messaging_private_message_add_form_submit in Opigno messaging 3.x

Same name and namespace in other branches
  1. 8 opigno_messaging.module \opigno_messaging_private_message_add_form_submit()

Add private message form custom submit handler.

Parameters

array $form: The PM creation form.

\Drupal\Core\Form\FormStateInterface $form_state: The form state object.

1 string reference to 'opigno_messaging_private_message_add_form_submit'
opigno_messaging_form_private_message_add_form_alter in ./opigno_messaging.module
Implements hook_form_alter().

File

./opigno_messaging.module, line 315
Contains opigno_messaging.module.

Code

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

  /** @var \Drupal\Core\Entity\ContentEntityFormInterface $form_obj */
  $form_obj = $form_state
    ->getFormObject();

  /** @var \Drupal\opigno_messaging\Services\OpignoMessageThread $pm_service */
  $pm_service = \Drupal::service('opigno_messaging.manager');
  $form_state
    ->cleanValues();

  /** @var \Drupal\private_message\Entity\PrivateMessageInterface $entity */
  $entity = $form_obj
    ->buildEntity($form, $form_state);

  // Get the thread and send the email to all participants.
  try {
    $private_message_thread = \Drupal::entityTypeManager()
      ->getStorage('private_message_thread')
      ->loadByProperties([
      'private_messages' => $entity
        ->id(),
    ]);
    if ($private_message_thread instanceof PrivateMessageThreadInterface) {
      $pm_service
        ->sendEmailToThreadMembers($private_message_thread, $entity);
    }
  } catch (PluginNotFoundException|InvalidPluginDefinitionException $e) {
    watchdog_exception('opigno_messaging_exception', $e);
  }
}