You are here

function social_profile_form_user_form_alter in Open Social 8.3

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  2. 8 modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  3. 8.2 modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  4. 8.4 modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  5. 8.5 modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  6. 8.6 modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  7. 8.7 modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  8. 8.8 modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  9. 10.3.x modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  10. 10.0.x modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  11. 10.1.x modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()
  12. 10.2.x modules/social_features/social_profile/social_profile.module \social_profile_form_user_form_alter()

Implements hook_form_FORM_ID_alter() for user_form().

File

modules/social_features/social_profile/social_profile.module, line 440
The Social profile module.

Code

function social_profile_form_user_form_alter(&$form, FormStateInterface $form_state) {
  $profile = _social_profile_get_profile_from_route();
  if ($profile instanceof Profile) {
    if (isset($profile->field_profile_show_email)) {

      // Check what the global value is.
      $global_show_email = \Drupal::config('social_profile.settings')
        ->get('social_profile_show_email');

      // Account value.
      $show_email = $profile->field_profile_show_email->value;
      $form['profile_privacy'] = [
        '#type' => 'fieldset',
        '#title' => t('Privacy settings'),
        '#tree' => TRUE,
      ];
      $form['profile_privacy']['social_profile_show_email'] = [
        '#type' => 'checkbox',
        '#title' => t('Show my email on my profile'),
        '#default_value' => $show_email,
        '#attributes' => [
          'data-switch' => TRUE,
        ],
      ];

      // If global setting is set, disable the setting and give a reason why.
      if ($global_show_email == TRUE) {
        $form['profile_privacy']['social_profile_show_email']['#disabled'] = TRUE;
        $form['profile_privacy']['social_profile_show_email']['#value'] = TRUE;
        $form['profile_privacy']['social_profile_show_email']['#description'] = t('This setting is currently being controlled by a platform wide setting and cannot be changed. Please contact a sitemanager if you have questions.');
      }
      else {

        // Submit function only when the data is actually editable.
        $form['actions']['submit']['#submit'][] = '_social_profile_form_user_form_submit';
      }
    }
  }
  $form['#pre_render'][] = '_social_profile_form_pre_render';
}