You are here

function social_group_request_form_alter in Open Social 10.2.x

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_group/modules/social_group_request/social_group_request.module \social_group_request_form_alter()
  2. 10.3.x modules/social_features/social_group/modules/social_group_request/social_group_request.module \social_group_request_form_alter()
  3. 10.0.x modules/social_features/social_group/modules/social_group_request/social_group_request.module \social_group_request_form_alter()
  4. 10.1.x modules/social_features/social_group/modules/social_group_request/social_group_request.module \social_group_request_form_alter()

Implements hook_form_alter().

File

modules/social_features/social_group/modules/social_group_request/social_group_request.module, line 238
Primary module hooks for social_group_request module.

Code

function social_group_request_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
  $social_group_types = [
    'open_group',
    'closed_group',
    'public_group',
  ];
  \Drupal::moduleHandler()
    ->alter('social_group_types', $social_group_types);
  $group_membership_add_forms = [];
  foreach ($social_group_types as $social_group_type) {
    $group_membership_add_forms[] = "group_content_{$social_group_type}-group_membership_add_form";
  }
  $route = \Drupal::routeMatch()
    ->getRouteName();
  if (in_array($form_id, $group_membership_add_forms) && $route === 'grequest.group_request_membership_approve') {

    // Name of user which we're adding to the group.
    $user_name = $form['entity_id']['widget'][0]['target_id']['#default_value']
      ->getDisplayName();
    $form['question'] = [
      '#type' => 'html_tag',
      '#tag' => 'p',
      '#value' => t('Are you sure you want to approve the membership request for @name?', [
        '@name' => $user_name,
      ]),
      '#weight' => 1,
    ];

    // Remove possibility to select members to add to group.
    if (isset($form['entity_id']['widget'][0]['target_id'])) {
      unset($form['entity_id']);
    }
    if (isset($form['group_roles']['widget'])) {
      unset($form['group_roles']);
    }
    $form['actions']['submit']['#value'] = t('Yes');
  }
  $group_forms = [];
  foreach ($social_group_types as $social_group_type) {
    $group_forms[] = "group_{$social_group_type}_edit_form";
    $group_forms[] = "group_{$social_group_type}_add_form";
  }
  if (in_array($form_id, $group_forms)) {

    /** @var \Drupal\group\Entity\GroupTypeInterface $group_type */
    $group_type = $form_state
      ->getFormObject()
      ->getEntity()
      ->getGroupType();
    $group_types = [
      'flexible_group',
    ];
    \Drupal::moduleHandler()
      ->alter('social_group_request', $group_types);
    if (in_array($group_type
      ->id(), $group_types) || !$group_type
      ->hasContentPlugin('group_membership_request')) {
      unset($form['allow_request']);
    }
  }
}