function social_profile_privacy_form_alter in Open Social 8.9
Same name and namespace in other branches
- 8 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 8.2 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 8.3 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 8.4 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 8.5 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 8.6 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 8.7 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 8.8 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 10.3.x modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 10.0.x modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 10.1.x modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
- 10.2.x modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_form_alter()
Implements hook_form_alter().
File
- modules/
social_features/ social_profile/ modules/ social_profile_privacy/ social_profile_privacy.module, line 136 - The Social profile privacy module file.
Code
function social_profile_privacy_form_alter(&$form, FormStateInterface $form_state, $form_id) {
// Check with preg_match because of the form id might be different
// for adding or editing profile.
if (preg_match('/^profile_profile_\\w+_form$/', $form_id) || preg_match('/^user_form$/', $form_id)) {
$config = \Drupal::config('social_profile_privacy.settings');
$field_groups = social_profile_privacy_get_field_groups_for_form_state($form_state, $config);
$field_groups_labels = social_profile_privacy_form_field_group_options();
if (!empty($field_groups)) {
$settings_form_id = $field_groups['settings_form_id'];
$profile = $form_state
->getFormObject()
->getEntity();
$account = \Drupal::routeMatch()
->getParameter('user');
$uid = $account ? $account
->id() : NULL;
if (empty($uid)) {
$uid = $profile
->get('uid')->target_id;
}
if (!empty($uid)) {
$user_data = \Drupal::service('user.data');
$values = $user_data
->get('social_profile_privacy', $uid, 'private_info');
foreach ($field_groups['field_groups'] as $id) {
if (array_key_exists($id, $form['#fieldgroups'])) {
$form[$id . '_visible'] = [
'#type' => 'checkbox',
'#title' => t('Show on my profile'),
'#weight' => -100,
'#default_value' => isset($values[$id]) ? $values[$id] : TRUE,
'#attributes' => [
'data-switch' => TRUE,
],
];
$form['#group_children'][$id . '_visible'] = $id;
$disclaimer_weight = $form['#fieldgroups'][$id]->weight + 1;
}
elseif (isset($form['profile_privacy'])) {
if (array_key_exists($id, $field_groups_labels)) {
$form['profile_privacy'][$id . '_visible'] = [
'#type' => 'checkbox',
'#title' => t('Show "@field_group" on my profile', [
'@field_group' => $field_groups_labels[$id],
]),
'#weight' => -10,
'#default_value' => isset($values[$id]) ? $values[$id] : TRUE,
'#attributes' => [
'data-switch' => TRUE,
],
];
}
}
}
if ($value = $config
->get($settings_form_id . '_disclaimer.text.value')) {
if (isset($form['profile_privacy'])) {
if (!empty($config
->get($settings_form_id . '_disclaimer.title'))) {
$title = '<strong>' . $config
->get($settings_form_id . '_disclaimer.title') . ':</strong> ';
}
else {
$title = '';
}
$form['profile_privacy']['disclaimer'] = [
'#type' => 'markup',
'#markup' => $title . check_markup($value, $config
->get($settings_form_id . '_disclaimer.text.format')),
'#weight' => -100,
];
}
else {
$form['disclaimer'] = [
'#type' => 'fieldset',
'#title' => $config
->get($settings_form_id . '_disclaimer.title'),
'text' => [
'#type' => 'markup',
'#markup' => check_markup($value, $config
->get($settings_form_id . '_disclaimer.text.format')),
],
'#weight' => isset($disclaimer_weight) ? $disclaimer_weight : 99,
];
}
}
}
$form['actions']['submit']['#submit'][] = 'social_profile_privacy_profile_form_submit';
}
}
}