Loading src/Form/PhotosAdminSettingsForm.php +16 −4 Changes for src/Form/PhotosAdminSettingsForm.php: 16 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -237,15 +237,27 @@ class PhotosAdminSettingsForm extends ConfigFormBase { if ($fieldType == 'entity_reference') { // Check if media field allows image. $fieldSettings = $fieldData->getSettings(); if (isset($fieldSettings['handler_settings']['target_bundles']) && !empty($fieldSettings['handler_settings']['target_bundles']) && in_array('image', $fieldSettings['handler_settings']['target_bundles'])) { $fieldOptions[$key] = $this->t('Media: :fieldKey', [ if ($fieldSettings['handler'] == 'default:media' && isset($fieldSettings['handler_settings']['target_bundles']) && !empty($fieldSettings['handler_settings']['target_bundles'])) { // Check all media bundle fields for image. foreach ($fieldSettings['handler_settings']['target_bundles'] as $mediaBundle) { $mediaFields = $this->entityFieldManager->getFieldDefinitions('media', $mediaBundle); foreach ($mediaFields as $mediaFieldKey => $mediaFieldData) { $fieldType = $mediaFieldData->getType(); // Check all image fields in media bundle. if ($fieldType == 'image' && $mediaFieldKey != 'thumbnail') { $fieldOptions[$key . ':' . $mediaFieldKey . ':' . $mediaBundle] = $this->t('Media: :fieldKey::mediaFieldKey::mediaBundle', [ ':fieldKey' => $key, ':mediaFieldKey' => $mediaFieldKey, ':mediaBundle' => $mediaBundle, ]); } } } } } } if (!empty($fieldOptions)) { $form['upload']['multi_upload_default_field'] = [ '#type' => 'select', Loading src/PhotosUpload.php +18 −15 Changes for src/PhotosUpload.php: 18 added lines, 15 removed lines. Original line number Diff line number Diff line Loading @@ -160,13 +160,14 @@ class PhotosUpload implements PhotosUploadInterface { 'description' => isset($file->des) ? $file->des : '', ]; // Check if photos_image has default field_image. // @todo allow field to be changed in advanced settings? $uploadField = \Drupal::config('photos.settings')->get('multi_upload_default_field'); $uploadFieldParts = explode(':', $uploadField); $field = isset($uploadFieldParts[0]) ? $uploadFieldParts[0] : 'field_image'; $allBundleFields = \Drupal::service('entity_field.manager')->getFieldDefinitions('photos_image', 'photos_image'); if (isset($allBundleFields[$uploadField])) { $fieldType = $allBundleFields[$uploadField]->getType(); if (isset($allBundleFields[$field])) { $fieldType = $allBundleFields[$field]->getType(); if ($fieldType == 'image') { $newPhotosImageEntity[$uploadField] = [ $newPhotosImageEntity[$field] = [ 'target_id' => $fid, 'alt' => $title, 'title' => $title, Loading @@ -177,20 +178,22 @@ class PhotosUpload implements PhotosUploadInterface { else { // Check media fields. if ($fieldType == 'entity_reference') { // Check if media field allows image. $fieldSettings = $allBundleFields[$uploadField]->getSettings(); if (isset($fieldSettings['handler_settings']['target_bundles']) && !empty($fieldSettings['handler_settings']['target_bundles']) && in_array('image', $fieldSettings['handler_settings']['target_bundles'])) { $media = Media::create([ 'bundle' => 'image', $mediaField = isset($uploadFieldParts[1]) ? $uploadFieldParts[1] : ''; $mediaBundle = isset($uploadFieldParts[2]) ? $uploadFieldParts[2] : ''; if ($mediaField && $mediaBundle) { // Create new media entity. $values = [ 'bundle' => $mediaBundle, 'uid' => \Drupal::currentUser()->id(), 'field_media_image' => [ ]; $values[$mediaField] = [ 'target_id' => $file->id(), ], ]); ]; $media = Media::create($values); // @todo media name? $media->setName('Photos Image ' . $file->id())->setPublished(TRUE)->save(); $newPhotosImageEntity[$uploadField] = [ // Set photos_image media reference field. $newPhotosImageEntity[$field] = [ 'target_id' => $media->id(), ]; } Loading Loading
src/Form/PhotosAdminSettingsForm.php +16 −4 Changes for src/Form/PhotosAdminSettingsForm.php: 16 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -237,15 +237,27 @@ class PhotosAdminSettingsForm extends ConfigFormBase { if ($fieldType == 'entity_reference') { // Check if media field allows image. $fieldSettings = $fieldData->getSettings(); if (isset($fieldSettings['handler_settings']['target_bundles']) && !empty($fieldSettings['handler_settings']['target_bundles']) && in_array('image', $fieldSettings['handler_settings']['target_bundles'])) { $fieldOptions[$key] = $this->t('Media: :fieldKey', [ if ($fieldSettings['handler'] == 'default:media' && isset($fieldSettings['handler_settings']['target_bundles']) && !empty($fieldSettings['handler_settings']['target_bundles'])) { // Check all media bundle fields for image. foreach ($fieldSettings['handler_settings']['target_bundles'] as $mediaBundle) { $mediaFields = $this->entityFieldManager->getFieldDefinitions('media', $mediaBundle); foreach ($mediaFields as $mediaFieldKey => $mediaFieldData) { $fieldType = $mediaFieldData->getType(); // Check all image fields in media bundle. if ($fieldType == 'image' && $mediaFieldKey != 'thumbnail') { $fieldOptions[$key . ':' . $mediaFieldKey . ':' . $mediaBundle] = $this->t('Media: :fieldKey::mediaFieldKey::mediaBundle', [ ':fieldKey' => $key, ':mediaFieldKey' => $mediaFieldKey, ':mediaBundle' => $mediaBundle, ]); } } } } } } if (!empty($fieldOptions)) { $form['upload']['multi_upload_default_field'] = [ '#type' => 'select', Loading
src/PhotosUpload.php +18 −15 Changes for src/PhotosUpload.php: 18 added lines, 15 removed lines. Original line number Diff line number Diff line Loading @@ -160,13 +160,14 @@ class PhotosUpload implements PhotosUploadInterface { 'description' => isset($file->des) ? $file->des : '', ]; // Check if photos_image has default field_image. // @todo allow field to be changed in advanced settings? $uploadField = \Drupal::config('photos.settings')->get('multi_upload_default_field'); $uploadFieldParts = explode(':', $uploadField); $field = isset($uploadFieldParts[0]) ? $uploadFieldParts[0] : 'field_image'; $allBundleFields = \Drupal::service('entity_field.manager')->getFieldDefinitions('photos_image', 'photos_image'); if (isset($allBundleFields[$uploadField])) { $fieldType = $allBundleFields[$uploadField]->getType(); if (isset($allBundleFields[$field])) { $fieldType = $allBundleFields[$field]->getType(); if ($fieldType == 'image') { $newPhotosImageEntity[$uploadField] = [ $newPhotosImageEntity[$field] = [ 'target_id' => $fid, 'alt' => $title, 'title' => $title, Loading @@ -177,20 +178,22 @@ class PhotosUpload implements PhotosUploadInterface { else { // Check media fields. if ($fieldType == 'entity_reference') { // Check if media field allows image. $fieldSettings = $allBundleFields[$uploadField]->getSettings(); if (isset($fieldSettings['handler_settings']['target_bundles']) && !empty($fieldSettings['handler_settings']['target_bundles']) && in_array('image', $fieldSettings['handler_settings']['target_bundles'])) { $media = Media::create([ 'bundle' => 'image', $mediaField = isset($uploadFieldParts[1]) ? $uploadFieldParts[1] : ''; $mediaBundle = isset($uploadFieldParts[2]) ? $uploadFieldParts[2] : ''; if ($mediaField && $mediaBundle) { // Create new media entity. $values = [ 'bundle' => $mediaBundle, 'uid' => \Drupal::currentUser()->id(), 'field_media_image' => [ ]; $values[$mediaField] = [ 'target_id' => $file->id(), ], ]); ]; $media = Media::create($values); // @todo media name? $media->setName('Photos Image ' . $file->id())->setPublished(TRUE)->save(); $newPhotosImageEntity[$uploadField] = [ // Set photos_image media reference field. $newPhotosImageEntity[$field] = [ 'target_id' => $media->id(), ]; } Loading