' . t('About') . ''; $output .= '
' . t('Attach an attribution and license info to embedded media') . '
'; return $output; default: } } /** * Implements hook_modules_installed(). * * Add attribution form to media embed forms and view displays. */ function entity_embed_attribution_modules_installed($modules) { foreach (['media_browser', 'default'] as $form_variant) { $form_entity = EntityFormDisplay::load("media.image.$form_variant"); $form_entity->setComponent('field_image_attribution', [ 'region' => 'content', 'settings' => [ 'title' => 'Paragraph', 'title_plural' => 'Paragraphs', 'edit_mode' => 'open', 'closed_mode' => 'summary', 'autocollapse' => 'none', 'closed_mode_threshold' => 0, 'add_mode' => 'dropdown', 'form_display_mode' => 'default', 'default_paragraph_type' => '', 'features' => [ 'duplicate' => 'duplicate', 'collapse_edit_all' => 'collapse_edit_all', ] ], 'type' => 'paragraphs', ]) ->save(); } foreach (['embedded', 'default'] as $entity_view_variant) { $view_entity = EntityViewDisplay::load("media.image.$entity_view_variant"); $view_entity->setComponent('field_image_attribution', [ 'type' => 'entity_reference_revisions_entity_view', 'label' => 'hidden', 'settings' => ['view_mode' => 'default', 'link' => ''], ])->save(); } } /** * Implementation of hook_preprocess_entity_embed_container(). * * @param $variables */ function entity_embed_attribution_preprocess_entity_embed_container(&$variables) { if ($attributions = $variables['element']['#entity']->get('field_image_attribution')->referencedEntities()) { $attribution = $attributions[0]; $author = $attribution->get('field_attribution_author')->getValue()[0]; $source = $attribution->get('field_attribution_source')->getValue()[0]; $license = $attribution->get('field_license')->entity; $license_link = $license->get('field_license_link')->getValue()[0]; $attribution_text = [ 'source' => [ '#type' => 'link', '#title' => $source['title'], '#prefix' => "