public function GroupContentVisibilityUpdate::updateVisibility in Open Social 10.2.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
- 8.4 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
- 8.5 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
- 8.6 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
- 8.7 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
- 8.8 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
- 10.3.x modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
- 10.0.x modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
- 10.1.x modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::updateVisibility()
Update visibility for all Group Content based on a new group type.
Parameters
\Drupal\node\Entity\Node|\Drupal\social_post\Entity\Post|\Drupal\group\GroupMembership|\Drupal\group\Entity\GroupContentInterface $entity: The content we are updating.
string $new_type: The new Group type.
array $context: Passed on by reference.
Throws
\Drupal\Core\Entity\EntityStorageException
File
- modules/
social_features/ social_group/ src/ GroupContentVisibilityUpdate.php, line 115
Class
- GroupContentVisibilityUpdate
- Class GroupContentVisibilityUpdate.
Namespace
Drupal\social_groupCode
public function updateVisibility($entity, $new_type, array &$context) {
// Find the corresponding visibility for the new group_type.
$default_visibility = SocialGroupHelperService::getDefaultGroupVisibility($new_type);
// Store some results for post-processing in the 'finished' callback.
// The contents of 'results' will be available as $results in the
// 'finished' function updateVisibilityFinishedCallback().
if ($entity instanceof Post) {
$entity
->setVisibility($default_visibility);
$entity
->save();
}
if ($entity instanceof Node) {
$entity
->set('field_content_visibility', $default_visibility);
$entity
->save();
}
// For GroupMembers we have to update the GroupContent.
if ($entity instanceof GroupMembership) {
$new_group_type = $new_type . '-group_membership';
$membershipEntity = $entity
->getGroupContent();
$membershipEntity
->set('type', $new_group_type);
$membershipEntity
->save();
$entity = $membershipEntity;
}
// Make sure our GroupContent referenced entities also get invalidated.
$tags = $entity
->getCacheTagsToInvalidate();
Cache::invalidateTags($tags);
// Add referenced entity to results. Might want to add it to the result.
$context['results'][] = $entity;
// Optional message displayed under the progressbar.
$context['message'] = t('Updating group content (@id)', [
'@id' => $entity
->id(),
]);
}