/** * Constructs a new class instance. * * @param array $configuration * A configuration array containing information about the plugin instance. * @param string $plugin_id * The plugin_id for the plugin instance. * @param mixed $plugin_definition * The plugin implementation definition. * @param \Drupal\Core\Entity\EntityManager $entity_manager * Entity manager service. * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory * Config factory service. */ public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityManager $entity_manager, ConfigFactoryInterface $config_factory) { parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_manager, $config_factory->get('media_entity.settings')); $this->configFactory = $config_factory; }
/** * Constructs a new class instance. * * @param array $configuration * A configuration array containing information about the plugin instance. * @param string $plugin_id * The plugin_id for the plugin instance. * @param mixed $plugin_definition * The plugin implementation definition. * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager * Entity type manager service. * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager * Entity field manager service. * @param \Drupal\Core\Image\ImageFactory $image_factory * The image factory. * @param \Drupal\Core\Config\Config $config * Media entity config object. */ public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, ImageFactory $image_factory, Config $config) { parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager, $entity_field_manager, $config); $this->imageFactory = $image_factory; }
/** * {@inheritdoc} */ public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, Config $config, ProviderManagerInterface $provider_manager, Config $media_settings) { parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager, $entity_field_manager, $config); $this->providerManager = $provider_manager; $this->mediaSettings = $media_settings; }
/** * {@inheritdoc} */ public function attachConstraints(MediaInterface $media) { parent::attachConstraints($media); $source_field_name = $this->configuration['source_field']; // Get all providers regexes. Wehen we will be able to select providers // per field we should handle that here. $video_provider_definitions = $this->videoProviders->getDefinitions(); $regexes = []; foreach ($video_provider_definitions as $definition) { $regexes = array_merge($regexes, $definition['regular_expressions']); } foreach ($media->get($source_field_name) as &$embed_code) { /** @var \Drupal\Core\TypedData\DataDefinitionInterface $typed_data */ $typed_data = $embed_code->getDataDefinition(); $typed_data->addConstraint('VideoProviderMatch', ['regular_expressions' => $regexes]); } }