Mercurial > hg > cmmr2012-drupal-site
diff core/modules/image/src/Controller/QuickEditImageController.php @ 5:12f9dff5fda9 tip
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:34:47 +0100 |
parents | c75dbcec494b |
children |
line wrap: on
line diff
--- a/core/modules/image/src/Controller/QuickEditImageController.php Thu Feb 28 13:11:55 2019 +0000 +++ b/core/modules/image/src/Controller/QuickEditImageController.php Thu May 09 15:34:47 2019 +0100 @@ -5,7 +5,9 @@ use Drupal\Core\Cache\CacheableJsonResponse; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Entity\ContentEntityInterface; +use Drupal\Core\Entity\EntityDisplayRepositoryInterface; use Drupal\Core\Entity\EntityInterface; +use Drupal\Core\File\FileSystemInterface; use Drupal\Core\Image\ImageFactory; use Drupal\Core\Render\Element\StatusMessages; use Drupal\Core\Render\RendererInterface; @@ -42,6 +44,20 @@ protected $imageFactory; /** + * The entity display repository service. + * + * @var \Drupal\Core\Entity\EntityDisplayRepositoryInterface + */ + protected $entityDisplayRepository; + + /** + * The file system. + * + * @var \Drupal\Core\File\FileSystemInterface + */ + protected $fileSystem; + + /** * Constructs a new QuickEditImageController. * * @param \Drupal\Core\Render\RendererInterface $renderer @@ -50,11 +66,25 @@ * The image factory. * @param \Drupal\Core\TempStore\PrivateTempStoreFactory $temp_store_factory * The tempstore factory. + * @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository + * The entity display repository service. + * @param \Drupal\Core\File\FileSystemInterface $file_system + * The file system. */ - public function __construct(RendererInterface $renderer, ImageFactory $image_factory, PrivateTempStoreFactory $temp_store_factory) { + public function __construct(RendererInterface $renderer, ImageFactory $image_factory, PrivateTempStoreFactory $temp_store_factory, EntityDisplayRepositoryInterface $entity_display_repository = NULL, FileSystemInterface $file_system = NULL) { $this->renderer = $renderer; $this->imageFactory = $image_factory; $this->tempStore = $temp_store_factory->get('quickedit'); + if (!$entity_display_repository) { + @trigger_error('The entity_display.repository service must be passed to QuickEditImageController::__construct(), it is required before Drupal 9.0.0. See https://www.drupal.org/node/2549139.', E_USER_DEPRECATED); + $entity_display_repository = \Drupal::service('entity_display.repository'); + } + $this->entityDisplayRepository = $entity_display_repository; + if (!$file_system) { + @trigger_error('The file_system service must be passed to QuickEditImageController::__construct(), it is required before Drupal 9.0.0. See https://www.drupal.org/node/3006851.', E_USER_DEPRECATED); + $file_system = \Drupal::service('file_system'); + } + $this->fileSystem = $file_system; } /** @@ -64,7 +94,9 @@ return new static( $container->get('renderer'), $container->get('image.factory'), - $container->get('tempstore.private') + $container->get('tempstore.private'), + $container->get('entity_display.repository'), + $container->get('file_system') ); } @@ -95,7 +127,7 @@ } // Create the destination directory if it does not already exist. - if (isset($destination) && !file_prepare_directory($destination, FILE_CREATE_DIRECTORY)) { + if (isset($destination) && !$this->fileSystem->prepareDirectory($destination, FileSystemInterface::CREATE_DIRECTORY)) { return new JsonResponse(['main_error' => $this->t('The destination directory could not be created.'), 'errors' => '']); } @@ -115,7 +147,7 @@ $entity->$field_name->setValue($value); // Render the new image using the correct formatter settings. - $entity_view_mode_ids = array_keys($this->entityManager()->getViewModes($entity->getEntityTypeId())); + $entity_view_mode_ids = array_keys($this->entityDisplayRepository->getViewModes($entity->getEntityTypeId())); if (in_array($view_mode_id, $entity_view_mode_ids, TRUE)) { $output = $entity->$field_name->view($view_mode_id); }