Mercurial > hg > isophonics-drupal-site
comparison core/modules/quickedit/src/QuickEditController.php @ 18:af1871eacc83
Update to Drupal core 8.7.1
author | Chris Cannam |
---|---|
date | Thu, 09 May 2019 15:33:08 +0100 |
parents | 129ea1e6d783 |
children |
comparison
equal
deleted
inserted
replaced
17:129ea1e6d783 | 18:af1871eacc83 |
---|---|
1 <?php | 1 <?php |
2 | 2 |
3 namespace Drupal\quickedit; | 3 namespace Drupal\quickedit; |
4 | 4 |
5 use Drupal\Core\Controller\ControllerBase; | 5 use Drupal\Core\Controller\ControllerBase; |
6 use Drupal\Core\Entity\EntityRepositoryInterface; | |
6 use Drupal\Core\Form\FormState; | 7 use Drupal\Core\Form\FormState; |
7 use Drupal\Core\Render\RendererInterface; | 8 use Drupal\Core\Render\RendererInterface; |
8 use Drupal\Core\TempStore\PrivateTempStoreFactory; | 9 use Drupal\Core\TempStore\PrivateTempStoreFactory; |
9 use Symfony\Component\DependencyInjection\ContainerInterface; | 10 use Symfony\Component\DependencyInjection\ContainerInterface; |
10 use Symfony\Component\HttpFoundation\JsonResponse; | 11 use Symfony\Component\HttpFoundation\JsonResponse; |
11 use Symfony\Component\HttpFoundation\Request; | 12 use Symfony\Component\HttpFoundation\Request; |
12 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; | 13 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; |
13 use Drupal\Core\Ajax\AjaxResponse; | 14 use Drupal\Core\Ajax\AjaxResponse; |
14 use Drupal\Core\Entity\EntityInterface; | 15 use Drupal\Core\Entity\EntityInterface; |
16 use Drupal\Core\Entity\EntityDisplayRepositoryInterface; | |
15 use Drupal\quickedit\Ajax\FieldFormCommand; | 17 use Drupal\quickedit\Ajax\FieldFormCommand; |
16 use Drupal\quickedit\Ajax\FieldFormSavedCommand; | 18 use Drupal\quickedit\Ajax\FieldFormSavedCommand; |
17 use Drupal\quickedit\Ajax\FieldFormValidationErrorsCommand; | 19 use Drupal\quickedit\Ajax\FieldFormValidationErrorsCommand; |
18 use Drupal\quickedit\Ajax\EntitySavedCommand; | 20 use Drupal\quickedit\Ajax\EntitySavedCommand; |
19 | 21 |
47 * The renderer. | 49 * The renderer. |
48 * | 50 * |
49 * @var \Drupal\Core\Render\RendererInterface | 51 * @var \Drupal\Core\Render\RendererInterface |
50 */ | 52 */ |
51 protected $renderer; | 53 protected $renderer; |
54 | |
55 /** | |
56 * The entity display repository service. | |
57 * | |
58 * @var \Drupal\Core\Entity\EntityDisplayRepositoryInterface | |
59 */ | |
60 protected $entityDisplayRepository; | |
61 | |
62 /** | |
63 * The entity repository. | |
64 * | |
65 * @var \Drupal\Core\Entity\EntityRepositoryInterface | |
66 */ | |
67 protected $entityRepository; | |
52 | 68 |
53 /** | 69 /** |
54 * Constructs a new QuickEditController. | 70 * Constructs a new QuickEditController. |
55 * | 71 * |
56 * @param \Drupal\Core\TempStore\PrivateTempStoreFactory $temp_store_factory | 72 * @param \Drupal\Core\TempStore\PrivateTempStoreFactory $temp_store_factory |
59 * The in-place editing metadata generator. | 75 * The in-place editing metadata generator. |
60 * @param \Drupal\quickedit\EditorSelectorInterface $editor_selector | 76 * @param \Drupal\quickedit\EditorSelectorInterface $editor_selector |
61 * The in-place editor selector. | 77 * The in-place editor selector. |
62 * @param \Drupal\Core\Render\RendererInterface $renderer | 78 * @param \Drupal\Core\Render\RendererInterface $renderer |
63 * The renderer. | 79 * The renderer. |
64 */ | 80 * @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository |
65 public function __construct(PrivateTempStoreFactory $temp_store_factory, MetadataGeneratorInterface $metadata_generator, EditorSelectorInterface $editor_selector, RendererInterface $renderer) { | 81 * The entity display repository service. |
82 * @param \Drupal\Core\Entity\EntityRepositoryInterface $entity_repository | |
83 * The entity repository. | |
84 */ | |
85 public function __construct(PrivateTempStoreFactory $temp_store_factory, MetadataGeneratorInterface $metadata_generator, EditorSelectorInterface $editor_selector, RendererInterface $renderer, EntityDisplayRepositoryInterface $entity_display_repository, EntityRepositoryInterface $entity_repository) { | |
66 $this->tempStoreFactory = $temp_store_factory; | 86 $this->tempStoreFactory = $temp_store_factory; |
67 $this->metadataGenerator = $metadata_generator; | 87 $this->metadataGenerator = $metadata_generator; |
68 $this->editorSelector = $editor_selector; | 88 $this->editorSelector = $editor_selector; |
69 $this->renderer = $renderer; | 89 $this->renderer = $renderer; |
90 if (!$entity_display_repository) { | |
91 @trigger_error('The entity_display.repository service must be passed to QuickEditController::__construct(), it is required before Drupal 9.0.0. See https://www.drupal.org/node/2549139.', E_USER_DEPRECATED); | |
92 $entity_display_repository = \Drupal::service('entity_display.repository'); | |
93 } | |
94 $this->entityDisplayRepository = $entity_display_repository; | |
95 if (!$entity_repository) { | |
96 @trigger_error('The entity.repository service must be passed to QuickEditController::__construct(), it is required before Drupal 9.0.0. See https://www.drupal.org/node/2549139.', E_USER_DEPRECATED); | |
97 $entity_repository = \Drupal::service('entity.repository'); | |
98 } | |
99 $this->entityRepository = $entity_repository; | |
70 } | 100 } |
71 | 101 |
72 /** | 102 /** |
73 * {@inheritdoc} | 103 * {@inheritdoc} |
74 */ | 104 */ |
75 public static function create(ContainerInterface $container) { | 105 public static function create(ContainerInterface $container) { |
76 return new static( | 106 return new static( |
77 $container->get('tempstore.private'), | 107 $container->get('tempstore.private'), |
78 $container->get('quickedit.metadata.generator'), | 108 $container->get('quickedit.metadata.generator'), |
79 $container->get('quickedit.editor.selector'), | 109 $container->get('quickedit.editor.selector'), |
80 $container->get('renderer') | 110 $container->get('renderer'), |
111 $container->get('entity_display.repository'), | |
112 $container->get('entity.repository') | |
81 ); | 113 ); |
82 } | 114 } |
83 | 115 |
84 /** | 116 /** |
85 * Returns the metadata for a set of fields. | 117 * Returns the metadata for a set of fields. |
101 $metadata = []; | 133 $metadata = []; |
102 foreach ($fields as $field) { | 134 foreach ($fields as $field) { |
103 list($entity_type, $entity_id, $field_name, $langcode, $view_mode) = explode('/', $field); | 135 list($entity_type, $entity_id, $field_name, $langcode, $view_mode) = explode('/', $field); |
104 | 136 |
105 // Load the entity. | 137 // Load the entity. |
106 if (!$entity_type || !$this->entityManager()->getDefinition($entity_type)) { | 138 if (!$entity_type || !$this->entityTypeManager()->getDefinition($entity_type)) { |
107 throw new NotFoundHttpException(); | 139 throw new NotFoundHttpException(); |
108 } | 140 } |
109 $entity = $this->entityManager()->getStorage($entity_type)->load($entity_id); | 141 $entity = $this->entityTypeManager()->getStorage($entity_type)->load($entity_id); |
110 if (!$entity) { | 142 if (!$entity) { |
111 throw new NotFoundHttpException(); | 143 throw new NotFoundHttpException(); |
112 } | 144 } |
113 | 145 |
114 // Validate the field name and language. | 146 // Validate the field name and language. |
254 * Rendered HTML. | 286 * Rendered HTML. |
255 * | 287 * |
256 * @see hook_quickedit_render_field() | 288 * @see hook_quickedit_render_field() |
257 */ | 289 */ |
258 protected function renderField(EntityInterface $entity, $field_name, $langcode, $view_mode_id) { | 290 protected function renderField(EntityInterface $entity, $field_name, $langcode, $view_mode_id) { |
259 $entity_view_mode_ids = array_keys($this->entityManager()->getViewModes($entity->getEntityTypeId())); | 291 $entity_view_mode_ids = array_keys($this->entityDisplayRepository->getViewModes($entity->getEntityTypeId())); |
260 if (in_array($view_mode_id, $entity_view_mode_ids)) { | 292 if (in_array($view_mode_id, $entity_view_mode_ids)) { |
261 $entity = \Drupal::entityManager()->getTranslationFromContext($entity, $langcode); | 293 $entity = $this->entityRepository->getTranslationFromContext($entity, $langcode); |
262 $output = $entity->get($field_name)->view($view_mode_id); | 294 $output = $entity->get($field_name)->view($view_mode_id); |
263 } | 295 } |
264 else { | 296 else { |
265 // Each part of a custom (non-Entity Display) view mode ID is separated | 297 // Each part of a custom (non-Entity Display) view mode ID is separated |
266 // by a dash; the first part must be the module name. | 298 // by a dash; the first part must be the module name. |