- Issue created by @vistree
- 🇩🇪Germany vistree
I changed the hook a little bit and use library opener now:
/** * Implements hook_media_insert(). * * @throws \Drupal\Core\Entity\EntityStorageException */ function mymodule_media_insert(MediaInterface $media) { $mid = $media->id(); $mediaType = $media->bundle(); $mediaRelationType = 'cockpit_va-group_media-' . $mediaType; $request = \Drupal::request(); $query_params = $request->query->all(); if (!empty($query_params["media_library_opener_parameters"]["entity_type_id"]) && $query_params["media_library_opener_parameters"]["entity_type_id"] == 'node' && !empty($query_params['media_library_opener_parameters']['entity_id'])) { $nid = $query_params['media_library_opener_parameters']['entity_id']; // Bestehende Beziehungen zur Node finden $relationships = \Drupal::entityTypeManager() ->getStorage('group_relationship') ->loadByProperties([ 'entity_id' => $nid, 'type' => 'cockpit_va-70ca4d242eb34a0c55e94', ]); foreach ($relationships as $relationship) { $group = $relationship->getGroup(); // Prüfen, ob Media bereits verbunden ist $existing = \Drupal::entityTypeManager() ->getStorage('group_relationship') ->loadByProperties([ 'type' => $mediaRelationType, // z. B. 'group_media' 'entity_id' => $mid, 'gid' => $group->id(), ]); if (empty($existing)) { // Media zur Gruppe hinzufügen $new_relationship = GroupRelationship::create([ 'type' => $mediaRelationType, // <- den richtigen Typnamen verwenden! 'gid' => $group->id(), 'entity_type' => 'media', 'entity_id' => $mid, ]); $new_relationship->save(); } } } }