class MediaWithLinkTargetSelection
Limits selection of media entities to those that have a link target.
When standalone URLs are:
- enabled, all media entities have a link target and will be returned
- disabled, only media entities using a media source plugin whose ::getMetadata() method computes a METADATA_ATTRIBUTE_LINK_TARGET should be returned, because only they can have link targets.
Attributes
#[EntityReferenceSelection(id: "default:media_link_target", label: new TranslatableMarkup("Media with link target selection"), group: "default", weight: 0, entity_types: [
"media",
])]
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\DependencyInjection\AutowiredInstanceTrait, \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
- class \Drupal\Core\Plugin\ConfigurablePluginBase implements \Drupal\Component\Plugin\ConfigurableInterface uses \Drupal\Core\Plugin\ConfigurableTrait extends \Drupal\Core\Plugin\PluginBase
- class \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginBase implements \Drupal\Core\Entity\EntityReferenceSelection\SelectionInterface, \Drupal\Component\Plugin\DependentPluginInterface extends \Drupal\Core\Plugin\ConfigurablePluginBase
- class \Drupal\Core\Entity\Plugin\EntityReferenceSelection\DefaultSelection implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\Core\Entity\EntityReferenceSelection\SelectionWithAutocreateInterface extends \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginBase
- class \Drupal\media\Plugin\EntityReferenceSelection\MediaSelection extends \Drupal\Core\Entity\Plugin\EntityReferenceSelection\DefaultSelection
- class \Drupal\media\Plugin\EntityReferenceSelection\MediaWithLinkTargetSelection extends \Drupal\media\Plugin\EntityReferenceSelection\MediaSelection
- class \Drupal\media\Plugin\EntityReferenceSelection\MediaSelection extends \Drupal\Core\Entity\Plugin\EntityReferenceSelection\DefaultSelection
- class \Drupal\Core\Entity\Plugin\EntityReferenceSelection\DefaultSelection implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\Core\Entity\EntityReferenceSelection\SelectionWithAutocreateInterface extends \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginBase
- class \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginBase implements \Drupal\Core\Entity\EntityReferenceSelection\SelectionInterface, \Drupal\Component\Plugin\DependentPluginInterface extends \Drupal\Core\Plugin\ConfigurablePluginBase
- class \Drupal\Core\Plugin\ConfigurablePluginBase implements \Drupal\Component\Plugin\ConfigurableInterface uses \Drupal\Core\Plugin\ConfigurableTrait extends \Drupal\Core\Plugin\PluginBase
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\DependencyInjection\AutowiredInstanceTrait, \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
Expanded class hierarchy of MediaWithLinkTargetSelection
See also
\Drupal\media\MediaSourceInterface::METADATA_ATTRIBUTE_LINK_TARGET
\Drupal\media\Plugin\media\Source\OEmbed::getMetadata()
\Drupal\media\Entity\MediaLinkTarget
File
-
core/
modules/ media/ src/ Plugin/ EntityReferenceSelection/ MediaWithLinkTargetSelection.php, line 21
Namespace
Drupal\media\Plugin\EntityReferenceSelectionView source
class MediaWithLinkTargetSelection extends MediaSelection {
/**
* {@inheritdoc}
*/
protected function buildEntityQuery($match = NULL, $match_operator = 'CONTAINS') {
$query = parent::buildEntityQuery($match, $match_operator);
// phpcs:disable
// @see \Drupal\media\MediaSourceBase::getMetadata()
if (!\Drupal::config('media.settings')->get('standalone_url')) {
// @todo fix in https://www.drupal.org/project/drupal/issues/3524300.
// The logic for finding media entities (which are used to provide entity link suggestions in CKEditor)
// should be at the API level for bundles. From the core, we enable node bundle selection only
// @see \Drupal\ckeditor5\Hook\Ckeditor5Hooks::entityBundleInfoAlter().
// To generates entity link suggestions for use by an autocomplete in CKEditor 5, an equivalent entity selection
// plugin is selected, @see \Drupal\ckeditor5\Controller\EntityLinkSuggestionsController::getSuggestions.
// This is an example to build and add logic to avoid finding media entities that are not linkable:
// any media bundle whose media source does not compute a link target should be omitted.
// $query->condition('bundle', 'document', '<>');
}
// phpcs:enable
return $query;
}
}
Members
| Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
|---|---|---|---|---|---|---|
| AutowiredInstanceTrait::createInstanceAutowired | public static | function | Instantiates a new instance of the implementing class using autowiring. | |||
| ConfigurableTrait::$configuration | protected | property | Configuration information passed into the plugin. | |||
| ConfigurableTrait::getConfiguration | public | function | Gets this plugin's configuration. | 3 | ||
| ConfigurableTrait::setConfiguration | public | function | Sets the configuration for this plugin instance. | 2 | ||
| DefaultSelection::$currentUser | protected | property | The current user. | |||
| DefaultSelection::$entityFieldManager | protected | property | The entity field manager service. | |||
| DefaultSelection::$entityRepository | protected | property | The entity repository. | |||
| DefaultSelection::$entityTypeBundleInfo | public | property | Entity type bundle info service. | |||
| DefaultSelection::$entityTypeManager | protected | property | The entity type manager service. | |||
| DefaultSelection::$moduleHandler | protected | property | The module handler service. | |||
| DefaultSelection::buildConfigurationForm | public | function | Form constructor. | Overrides SelectionPluginBase::buildConfigurationForm | 3 | |
| DefaultSelection::countReferenceableEntities | public | function | Counts entities that are referenceable. | Overrides SelectionInterface::countReferenceableEntities | 3 | |
| DefaultSelection::create | public static | function | Instantiates a new instance of the implementing class using autowiring. | Overrides PluginBase::create | 2 | |
| DefaultSelection::defaultConfiguration | public | function | Gets default configuration for this plugin. | Overrides SelectionPluginBase::defaultConfiguration | 3 | |
| DefaultSelection::elementValidateFilter | public static | function | Form element validation handler; Filters the #value property of an element. | |||
| DefaultSelection::getReferenceableEntities | public | function | Gets the list of referenceable entities. | Overrides SelectionInterface::getReferenceableEntities | 4 | |
| DefaultSelection::reAlterQuery | protected | function | Helper method: Passes a query to the alteration system again. | |||
| DefaultSelection::validateReferenceableEntities | public | function | Validates which existing entities can be referenced. | Overrides SelectionInterface::validateReferenceableEntities | 1 | |
| DefaultSelection::validateTargetBundles | public static | function | Validates a target_bundles element. | |||
| DefaultSelection::validateTargetBundlesUpdate | public static | function | Validates a target_bundles_update element. | |||
| DefaultSelection::__construct | public | function | Constructs a new DefaultSelection object. | Overrides ConfigurablePluginBase::__construct | 1 | |
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | |||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | |||
| DependencySerializationTrait::__sleep | public | function | 2 | |||
| DependencySerializationTrait::__wakeup | public | function | 2 | |||
| MediaSelection::createNewEntity | public | function | Creates a new entity object that can be used as a valid reference. | Overrides DefaultSelection::createNewEntity | ||
| MediaSelection::validateReferenceableNewEntities | public | function | Validates which newly created entities can be referenced. | Overrides DefaultSelection::validateReferenceableNewEntities | ||
| MediaWithLinkTargetSelection::buildEntityQuery | protected | function | Builds an EntityQuery to get referenceable entities. | Overrides MediaSelection::buildEntityQuery | ||
| MessengerTrait::$messenger | protected | property | The messenger. | 25 | ||
| MessengerTrait::messenger | public | function | Gets the messenger. | 25 | ||
| MessengerTrait::setMessenger | public | function | Sets the messenger. | |||
| PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | ||
| PluginBase::$pluginId | protected | property | The plugin ID. | |||
| PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||||
| PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | ||
| PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | ||
| PluginBase::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | 2 | |
| PluginBase::getPluginId | public | function | Gets the plugin ID of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | ||
| PluginBase::isConfigurable | Deprecated | public | function | Determines if the plugin is configurable. | ||
| SelectionPluginBase::calculateDependencies | public | function | Calculates dependencies for the configured plugin. | Overrides DependentPluginInterface::calculateDependencies | ||
| SelectionPluginBase::entityQueryAlter | public | function | Allows altering the SelectQuery generated by EntityFieldQuery. | Overrides SelectionInterface::entityQueryAlter | 2 | |
| SelectionPluginBase::submitConfigurationForm | public | function | Form submission handler. | Overrides PluginFormInterface::submitConfigurationForm | ||
| SelectionPluginBase::validateConfigurationForm | public | function | Form validation handler. | Overrides PluginFormInterface::validateConfigurationForm | ||
| StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | ||
| StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |||
| StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |||
| StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |||
| StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | ||
| StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | 1 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.