function social_profile_privacy_profile_form_submit 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_profile_form_submit()
- 8.2 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_profile_form_submit()
- 8.3 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_profile_form_submit()
- 8.4 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_profile_form_submit()
- 8.5 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_profile_form_submit()
- 8.6 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_profile_form_submit()
- 8.7 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_profile_form_submit()
- 8.8 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_profile_form_submit()
Additional submit function to save settings of hidden fields.
1 string reference to 'social_profile_privacy_profile_form_submit'
- social_profile_privacy_form_alter in modules/
social_features/ social_profile/ modules/ social_profile_privacy/ social_profile_privacy.module - Implements hook_form_alter().
File
- modules/
social_features/ social_profile/ modules/ social_profile_privacy/ social_profile_privacy.module, line 229 - The Social profile privacy module file.
Code
function social_profile_privacy_profile_form_submit($form, FormStateInterface $form_state) {
if (!empty($form_state
->getValue('uid'))) {
$uid = $form_state
->getValue('uid');
}
if (!isset($uid)) {
$uid = $form_state
->getFormObject()
->getEntity()
->get('uid')->target_id;
}
$config = \Drupal::config('social_profile_privacy.settings');
$field_groups = social_profile_privacy_get_field_groups_for_form_state($form_state, $config);
$user_data = \Drupal::service('user.data');
$existing_user_data = $user_data
->get('social_profile_privacy', $uid, 'private_info');
$data = $existing_user_data ? $existing_user_data : [];
foreach ($field_groups['field_groups'] as $group => $group_setting) {
if (!empty($form_state
->getValue('profile_privacy'))) {
$profile_privacy_values = $form_state
->getValue('profile_privacy');
if (isset($profile_privacy_values[$group . '_visible'])) {
$data[$group] = (bool) $profile_privacy_values[$group . '_visible'];
}
}
else {
if ($form_state
->getValue($group . '_visible') !== NULL) {
$data[$group] = (bool) $form_state
->getValue($group . '_visible');
}
}
}
// We need to clear caches for a user and the profile entity
// this to ensure the information block data gets invalidated.
$entity_type_manager = \Drupal::entityTypeManager();
$storage = $entity_type_manager
->getStorage('profile');
if ($storage !== NULL) {
/** @var \Drupal\user\Entity\User $account */
$account = User::load($uid);
$profile = \Drupal::entityTypeManager()
->getStorage('profile')
->loadByUser($account, ProfileType::load('profile')
->id(), TRUE);
if ($profile !== NULL) {
Cache::invalidateTags([
'entity_view:profile:' . $profile
->id(),
]);
Cache::invalidateTags([
'profile:' . $profile
->id(),
]);
Cache::invalidateTags([
'user:' . $uid,
]);
}
}
$user_data
->set('social_profile_privacy', $uid, 'private_info', $data);
}