You are here

function social_group_invite_tokens_alter in Open Social 10.3.x

Same name and namespace in other branches
  1. 10.1.x modules/social_features/social_group/modules/social_group_invite/social_group_invite.module \social_group_invite_tokens_alter()
  2. 10.2.x modules/social_features/social_group/modules/social_group_invite/social_group_invite.module \social_group_invite_tokens_alter()

Implements hook_tokens_alter().

File

modules/social_features/social_group/modules/social_group_invite/social_group_invite.module, line 573
The Social Invite group module.

Code

function social_group_invite_tokens_alter(array &$replacements, array $context, BubbleableMetadata $bubbleable_metadata) {
  if (!empty($replacements) && isset($context["data"]["group"]) && $context["type"] === 'group_content') {
    $group_content = $context["data"]["group_content"];
    $group_content_id = $group_content
      ->get('id')
      ->getString();
    $destination = 'destination=/social-group-invite/' . $group_content_id . '/accept';

    // Attach destination to accept invite. So, after sign up/sign step the
    // invite will be accepted and user  will be redirected to the invited page.
    if (isset($context["tokens"]["register_link"]) && $context["tokens"]["register_link"] === '[group_content:register_link]') {

      // For new users for register_link token.
      $link = $replacements["[group_content:register_link]"];
      $replacements["[group_content:register_link]"] = "{$link}&{$destination}";
    }
    if (isset($context["tokens"]["my_invitations_link"]) && $context["tokens"]["my_invitations_link"] === '[group_content:my_invitations_link]') {

      // For existing users for my_invitations_link token.
      $group_invitations_link = Url::fromRoute('user.login', [], [
        'absolute' => TRUE,
      ])
        ->toString();
      $replacements["[group_content:my_invitations_link]"] = "{$group_invitations_link}?{$destination}";
    }
  }
}