function _social_flexible_group_edit_submit in Open Social 8.8
Same name and namespace in other branches
- 8.9 modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \_social_flexible_group_edit_submit()
- 8.6 modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \_social_flexible_group_edit_submit()
- 8.7 modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \_social_flexible_group_edit_submit()
- 10.3.x modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \_social_flexible_group_edit_submit()
- 10.0.x modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \_social_flexible_group_edit_submit()
- 10.1.x modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \_social_flexible_group_edit_submit()
- 10.2.x modules/social_features/social_group/modules/social_group_flexible_group/social_group_flexible_group.module \_social_flexible_group_edit_submit()
Custom form submit handler for editing a flexible group.
Parameters
array $form: The form array.
\Drupal\Core\Form\FormStateInterface $form_state: Form state.
Throws
\Drupal\Core\Entity\EntityStorageException
1 string reference to '_social_flexible_group_edit_submit'
- social_group_flexible_group_form_group_flexible_group_edit_form_alter in modules/
social_features/ social_group/ modules/ social_group_flexible_group/ social_group_flexible_group.module - Implements hook_form_FORM_ID_form_alter().
File
- modules/
social_features/ social_group/ modules/ social_group_flexible_group/ social_group_flexible_group.module, line 73 - The Social Group Flexible Group module.
Code
function _social_flexible_group_edit_submit(array $form, FormStateInterface $form_state) {
// Check if the visibility changed.
$default_visibility = $form['field_group_allowed_visibility']['widget']['#default_value'];
$new_visibility = $form_state
->getValue('field_group_allowed_visibility');
$changed_visibility = [];
// If there was a visibility that we don't have anymore after editting
// all the content that was inside the group with this visibility
// will get the lowest visibility that is still checked.
foreach ($default_visibility as $key => $option) {
if (array_search($option, array_column($new_visibility, 'value')) === FALSE) {
$changed_visibility[] = $option;
}
}
// So there is now a visibility setting we don't support anymore
// after editing. Make sure we update all the content that has this
// to the next best optin.
if (!empty($changed_visibility)) {
$group = _social_group_get_current_group();
// Update the default visibility of all the content.
FlexibleGroupContentVisibilityUpdate::batchUpdateGroupContentVisibility($group, $changed_visibility, $new_visibility);
// Make sure we clear cache tags accordingly.
$cache_tags = _social_group_cache_tags($group);
foreach ($cache_tags as $cache_tag) {
Cache::invalidateTags([
$cache_tag,
]);
}
}
}