You are here

public function RemoveMediaFromGroup::execute in Group Media 8.2

Same name in this branch
  1. 8.2 src/Plugin/Action/RemoveMediaFromGroup.php \Drupal\groupmedia\Plugin\Action\RemoveMediaFromGroup::execute()
  2. 8.2 modules/groupmedia_vbo/src/Plugin/Action/RemoveMediaFromGroup.php \Drupal\groupmedia_vbo\Plugin\Action\RemoveMediaFromGroup::execute()

Executes the plugin.

Overrides ExecutableInterface::execute

File

src/Plugin/Action/RemoveMediaFromGroup.php, line 65

Class

RemoveMediaFromGroup
Remove media from Group.

Namespace

Drupal\groupmedia\Plugin\Action

Code

public function execute(MediaInterface $media = NULL) {
  $plugin_id = 'group_media:' . $media
    ->bundle();
  $group_content_types = $this->entityTypeManager
    ->getStorage('group_content_type')
    ->loadByContentPluginId($plugin_id);
  if (empty($group_content_types)) {
    return;
  }
  $group_contents = $this->entityTypeManager
    ->getStorage('group_content')
    ->loadByProperties([
    'type' => array_keys($group_content_types),
    'entity_id' => $media
      ->id(),
    'gid' => $this->configuration['group_id'],
  ]);
  foreach ($group_contents as $group_content) {
    $group_content
      ->delete();
  }
}