You are here

public static function GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility in Open Social 8.9

Same name and namespace in other branches
  1. 8.4 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
  2. 8.5 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
  3. 8.6 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
  4. 8.7 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
  5. 8.8 modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
  6. 10.3.x modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
  7. 10.0.x modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
  8. 10.1.x modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
  9. 10.2.x modules/social_features/social_group/src/GroupContentVisibilityUpdate.php \Drupal\social_group\GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()

Update Group content after Group changed.

Parameters

\Drupal\group\Entity\Group $group: The Group we've updated.

string $new_type: The Group's new group type.

Throws

\Drupal\Core\Entity\EntityStorageException

1 call to GroupContentVisibilityUpdate::batchUpdateGroupContentVisibility()
_social_group_type_edit_submit in modules/social_features/social_group/social_group.module
Form submit for removing members from a group so we can clear caches.

File

modules/social_features/social_group/src/GroupContentVisibilityUpdate.php, line 60

Class

GroupContentVisibilityUpdate
Class GroupContentVisibilityUpdate.

Namespace

Drupal\social_group

Code

public static function batchUpdateGroupContentVisibility(Group $group, $new_type) {

  // Set it up as a batch. We need to update visibility.
  // Load all the GroupContentEntities from Post to Memberships to content.
  $entities = $group
    ->getContentEntities();
  $posts = self::getPostsFromGroup($group);
  foreach ($posts as $pid => $post) {
    $entities[] = $post;
  }
  $memberships = $group
    ->getMembers();
  foreach ($memberships as $member) {
    $entities[] = $member;
  }
  $num_operations = count($entities);
  $operations = [];

  // Update Memberships & ContentVisibility.
  // As per documentation each entity has it's own operation.
  for ($i = 0; $i < $num_operations; $i++) {
    $operations[] = [
      '\\Drupal\\social_group\\GroupContentVisibilityUpdate::updateVisibility',
      [
        $entities[$i],
        $new_type,
      ],
    ];
  }

  // Provide all the operations and the finish callback to our batch.
  $batch = [
    'title' => t('Updating Group Content...'),
    'operations' => $operations,
    'finished' => '\\Drupal\\social_group\\GroupContentVisibilityUpdate::updateVisibilityFinishedCallback',
  ];
  batch_set($batch);
  $group
    ->set('type', $new_type);
  $group
    ->save();
}