class OEmbedWidget
Same name in other branches
- 9 core/modules/media/src/Plugin/Field/FieldWidget/OEmbedWidget.php \Drupal\media\Plugin\Field\FieldWidget\OEmbedWidget
- 8.9.x core/modules/media/src/Plugin/Field/FieldWidget/OEmbedWidget.php \Drupal\media\Plugin\Field\FieldWidget\OEmbedWidget
- 11.x core/modules/media/src/Plugin/Field/FieldWidget/OEmbedWidget.php \Drupal\media\Plugin\Field\FieldWidget\OEmbedWidget
Plugin implementation of the 'oembed_textfield' widget.
@internal This is an internal part of the oEmbed system and should only be used by oEmbed-related code in Drupal core.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
- class \Drupal\Core\Field\PluginSettingsBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\Core\Field\PluginSettingsInterface, \Drupal\Component\Plugin\DependentPluginInterface
- class \Drupal\Core\Field\WidgetBase extends \Drupal\Core\Field\PluginSettingsBase implements \Drupal\Core\Field\WidgetInterface, \Drupal\Core\Plugin\ContainerFactoryPluginInterface
- class \Drupal\Core\Field\Plugin\Field\FieldWidget\StringTextfieldWidget extends \Drupal\Core\Field\WidgetBase
- class \Drupal\media\Plugin\Field\FieldWidget\OEmbedWidget extends \Drupal\Core\Field\Plugin\Field\FieldWidget\StringTextfieldWidget
- class \Drupal\Core\Field\Plugin\Field\FieldWidget\StringTextfieldWidget extends \Drupal\Core\Field\WidgetBase
- class \Drupal\Core\Field\WidgetBase extends \Drupal\Core\Field\PluginSettingsBase implements \Drupal\Core\Field\WidgetInterface, \Drupal\Core\Plugin\ContainerFactoryPluginInterface
- class \Drupal\Core\Field\PluginSettingsBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\Core\Field\PluginSettingsInterface, \Drupal\Component\Plugin\DependentPluginInterface
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
Expanded class hierarchy of OEmbedWidget
File
-
core/
modules/ media/ src/ Plugin/ Field/ FieldWidget/ OEmbedWidget.php, line 21
Namespace
Drupal\media\Plugin\Field\FieldWidgetView source
class OEmbedWidget extends StringTextfieldWidget {
/**
* {@inheritdoc}
*/
public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
$element = parent::formElement($items, $delta, $element, $form, $form_state);
/** @var \Drupal\media\Plugin\media\Source\OEmbedInterface $source */
$source = $items->getEntity()
->getSource();
$message = $this->t('You can link to media from the following services: @providers', [
'@providers' => implode(', ', $source->getProviders()),
]);
if (!empty($element['value']['#description'])) {
$element['value']['#description'] = [
'#theme' => 'item_list',
'#items' => [
$element['value']['#description'],
$message,
],
];
}
else {
$element['value']['#description'] = $message;
}
return $element;
}
/**
* {@inheritdoc}
*/
public static function isApplicable(FieldDefinitionInterface $field_definition) {
$target_bundle = $field_definition->getTargetBundle();
if (!parent::isApplicable($field_definition) || $field_definition->getTargetEntityTypeId() !== 'media' || !$target_bundle) {
return FALSE;
}
return MediaType::load($target_bundle)->getSource() instanceof OEmbedInterface;
}
}
Members
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.