function media_directories_editor_form_entity_embed_dialog_alter in Media Directories 8
Same name and namespace in other branches
- 2.x modules/media_directories_editor/media_directories_editor.module \media_directories_editor_form_entity_embed_dialog_alter()
Implements hook_form_FORM_ID_alter().
File
- modules/
media_directories_editor/ media_directories_editor.module, line 38 - Main module file.
Code
function media_directories_editor_form_entity_embed_dialog_alter(&$form, FormStateInterface $form_state, $form_id) {
$storage = $form_state
->getStorage();
/** @var \Drupal\media\Entity\Media $entity */
$entity = $storage['entity'];
/** @var \Drupal\embed\Entity\EmbedButton $embed_button */
$embed_button = $storage['embed_button'];
if ($entity !== NULL) {
/** @var \Drupal\file\Entity\File $file */
$file = $entity
->get('thumbnail')->entity;
$image_style = ImageStyle::load('thumbnail');
if ($image_style !== NULL) {
$image_style_url = $image_style
->buildUri($file
->getFileUri());
$url = file_create_url($image_style_url);
$image_style
->createDerivative($file
->getFileUri(), $image_style_url);
// TODO it should be converted to render array.
$form['entity']['#markup'] = '<a href="' . $entity
->toUrl()
->toString() . '" title="' . $entity
->label() . '"><img src="' . $url . '" alt="' . $entity
->label() . '" /></a>';
}
}
if (isset($form['attributes']['data-entity-embed-display-settings']) && $entity
->bundle() === 'image') {
$entity_element = $form_state
->get('entity_element');
if (isset($entity_element['data-entity-embed-display-settings']) && !is_array($entity_element['data-entity-embed-display-settings'])) {
$entity_element['data-entity-embed-display-settings'] = Json::decode($entity_element['data-entity-embed-display-settings']);
}
}
// Add bundle validation constraint to entity browser.
if (isset($form['entity_browser'])) {
$bundles = $embed_button
->getTypeSetting('bundles');
$bundles = array_combine($bundles, $bundles);
$form['entity_browser']['#entity_browser_validators']['target_bundles'] = [
'bundle' => $bundles,
];
}
}