Commit 50192d72 authored by Nikolay Lobachev's avatar Nikolay Lobachev
Browse files

Issue #3294710 by LOBsTerr: Code improvements.

parent 446f97ab
Loading
Loading
Loading
Loading
+14 −39
Original line number Diff line number Diff line
@@ -149,18 +149,17 @@ function ginvite_group_content_delete(GroupContentInterface $group_content) {
    $group_invite_config = $group_plugin_collection->getConfiguration()['group_invitation'];

    if ($group_invite_config['send_cancel_email'] && $group_content->get('invitation_status')->value == GroupInvitation::INVITATION_PENDING) {
      $mail = $group_content->get('invitee_mail')->getString();
      $mail_manager = \Drupal::service('plugin.manager.mail');
      $from = $group_content->getEntity();

      if ($from instanceof UserInterface) {
        $mail = $group_content->get('invitee_mail')->getString();
        $params = [
          'user' => $from,
          'group' => $group,
          'group_content' => $group_content,
        ];
        $langcode = $from->getPreferredLangcode();
        $mail_manager->mail('ginvite', 'cancel', $mail, $langcode, $params, NULL, TRUE);
        \Drupal::service('plugin.manager.mail')->mail('ginvite', 'cancel', $mail, $langcode, $params, NULL, TRUE);
      }
    }
  }
@@ -176,8 +175,7 @@ function ginvite_group_content_delete(GroupContentInterface $group_content) {
 * @see ginvite_group_content_insert()
 */
function ginvite_mail($key, &$message, $params) {
  if ($key == 'invite') {

  if ($key == 'invite' || $key == 'cancel') {
    $token_service = \Drupal::token();
    $language_manager = \Drupal::languageManager();

@@ -193,47 +191,25 @@ function ginvite_mail($key, &$message, $params) {
    $group_plugin_collection = \Drupal::service('plugin.manager.group_content_enabler')->getInstalled($group->getGroupType());
    $group_invite_config = $group_plugin_collection->getConfiguration()['group_invitation'];

    $invitation_subject = (!$params['existing_user']) ? $group_invite_config["invitation_subject"] : $group_invite_config["existing_user_invitation_subject"];
    $invitation_body = (!$params['existing_user']) ? $group_invite_config["invitation_body"] : $group_invite_config["existing_user_invitation_body"];

    unset($params['existing_user']);

    $body = $token_service->replace($invitation_body, $params);
    $subject = $token_service->replace($invitation_subject, $params);

    $message['subject'] = $subject;
    $message['body'][] = $body;

    $language_manager->setConfigOverrideLanguage($original_language);

  }

    if ($key == 'cancel') {
    $token_service = \Drupal::token();
    $language_manager = \Drupal::languageManager();

    // Get email from GroupInvitation.
    $group = $params['group'];
    $langcode = $message['langcode'];

    $language = $language_manager->getLanguage($langcode);
    $original_language = $language_manager->getConfigOverrideLanguage();
    $language_manager->setConfigOverrideLanguage($language);
      $subject = $group_invite_config['cancel_user_invitation_subject'];
      $body = $group_invite_config['cancel_user_invitation_body'];
    }

    // Load plugin configuration.
    $group_plugin_collection = \Drupal::service('plugin.manager.group_content_enabler')->getInstalled($group->getGroupType());
    $group_invite_config = $group_plugin_collection->getConfiguration()['group_invitation'];
    if ($key == 'invite') {
      $subject = (!$params['existing_user']) ? $group_invite_config['invitation_subject'] : $group_invite_config['existing_user_invitation_subject'];
      $body = (!$params['existing_user']) ? $group_invite_config['invitation_body'] : $group_invite_config['existing_user_invitation_body'];

    $cancel_subject = $group_invite_config["cancel_user_invitation_subject"];
    $cancel_body = $group_invite_config["cancel_user_invitation_body"];
      unset($params['existing_user']);
    }

    $body = $token_service->replace($cancel_body, $params);
    $subject = $token_service->replace($cancel_subject, $params);
    $body = $token_service->replace($body, $params);
    $subject = $token_service->replace($subject, $params);

    $message['subject'] = $subject;
    $message['body'][] = $body;

    $language_manager->setConfigOverrideLanguage($original_language);
  }
}

@@ -472,4 +448,3 @@ function ginvite_user_login(UserInterface $user) {
    $event_dispatcher->dispatch($event, UserLoginWithInvitationEvent::EVENT_NAME);
  }
}
+1 −0
Original line number Diff line number Diff line
@@ -171,6 +171,7 @@ class GroupInvitation extends GroupContentEnablerBase implements ContainerFactor
      'group_cardinality' => 0,
      'entity_cardinality' => 0,
      'use_creation_wizard' => 0,
      'autoaccept_invitees' => 0,
      'unblock_invitees' => 1,
      'invitation_subject' => 'You have a pending group invitation',
      'invitation_body' => $body_message,