TestDifferentDisplays.php in Drupal 8
File
core/modules/media/tests/modules/media_test_source/src/Plugin/media/Source/TestDifferentDisplays.php
View source
<?php
namespace Drupal\media_test_source\Plugin\media\Source;
use Drupal\Core\Entity\Display\EntityFormDisplayInterface;
use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
use Drupal\media\MediaTypeInterface;
class TestDifferentDisplays extends Test {
public function prepareViewDisplay(MediaTypeInterface $type, EntityViewDisplayInterface $display) {
parent::prepareViewDisplay($type, $display);
$source_name = $this
->getSourceFieldDefinition($type)
->getName();
$source_component = $display
->getComponent($source_name) ?: [];
$source_component['type'] = 'entity_reference_entity_id';
$display
->setComponent($source_name, $source_component);
}
public function prepareFormDisplay(MediaTypeInterface $type, EntityFormDisplayInterface $display) {
parent::prepareFormDisplay($type, $display);
$source_name = $this
->getSourceFieldDefinition($type)
->getName();
$source_component = $display
->getComponent($source_name) ?: [];
$source_component['type'] = 'entity_reference_autocomplete_tags';
$display
->setComponent($source_name, $source_component);
}
protected function getSourceFieldName() {
return 'field_media_different_display';
}
}