You are here

public function SocialGroupQuickjoinSettings::buildForm in Open Social 8.4

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()
  2. 8.5 modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()
  3. 8.6 modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()
  4. 8.7 modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()
  5. 8.8 modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()
  6. 10.3.x modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()
  7. 10.0.x modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()
  8. 10.1.x modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()
  9. 10.2.x modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php \Drupal\social_group_quickjoin\Form\SocialGroupQuickjoinSettings::buildForm()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides ConfigFormBase::buildForm

File

modules/social_features/social_group/modules/social_group_quickjoin/src/Form/SocialGroupQuickjoinSettings.php, line 35

Class

SocialGroupQuickjoinSettings
Class SocialEventTypeSettings.

Namespace

Drupal\social_group_quickjoin\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $config = $this
    ->config('social_group_quickjoin.settings');
  $form['help'] = [
    '#type' => 'item',
    '#markup' => $this
      ->t("Enabling this feature gives site builders the possibility to create group 'quick join' links (ex., /group/1/quickjoin). Furthermore, it's possible to skip the confirmation step on a group type basis."),
  ];
  $form['social_group_quickjoin_enabled'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t("Enable quickjoin"),
    '#description' => $this
      ->t("Allow users to join groups with a single click."),
    '#default_value' => $config
      ->get('social_group_quickjoin_enabled'),
  ];
  $form['grouptypes'] = [
    '#type' => 'details',
    '#title' => $this
      ->t('Group types'),
    '#open' => TRUE,
    '#states' => [
      'visible' => [
        ':input[name="social_group_quickjoin_enabled"]' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];

  /** @var \Drupal\group\Entity\GroupType $group_type */
  foreach ($this
    ->getGroups() as $group_type) {

    // The setting name.
    $setting_name = 'social_group_quickjoin_' . $group_type
      ->id();
    $form['grouptypes'][$setting_name] = [
      '#type' => 'checkbox',
      '#title' => $this
        ->t('Skip confirmation for type @grouptype', [
        '@grouptype' => $group_type
          ->label(),
      ]),
      '#description' => $this
        ->t('Allow users to skip the confirmation step when joining any @grouptype.', [
        '@grouptype' => $group_type
          ->label(),
      ]),
      '#default_value' => $config
        ->get($setting_name),
    ];
  }
  return parent::buildForm($form, $form_state);
}