Alexander O'Neill
6 years ago
commit
cd40aed829
23 changed files with 793 additions and 0 deletions
@ -0,0 +1,14 @@ |
|||||||
|
{ |
||||||
|
"name": "drupal/entity_embed_attribution", |
||||||
|
"type": "drupal-module", |
||||||
|
"description": "Attach an attribution and license info to embedded media", |
||||||
|
"keywords": ["Drupal"], |
||||||
|
"license": "GPL-2.0+", |
||||||
|
"homepage": "https://www.drupal.org/project/entity_embed_attribution", |
||||||
|
"minimum-stability": "dev", |
||||||
|
"support": { |
||||||
|
"issues": "https://www.drupal.org/project/issues/entity_embed_attribution", |
||||||
|
"source": "http://cgit.drupalcode.org/entity_embed_attribution" |
||||||
|
}, |
||||||
|
"require": { } |
||||||
|
} |
@ -0,0 +1,60 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.field.media.image.field_image_attribution |
||||||
|
- field.field.media.image.field_media_in_library |
||||||
|
- field.field.media.image.image |
||||||
|
- image.style.thumbnail |
||||||
|
- media.type.image |
||||||
|
module: |
||||||
|
- image |
||||||
|
- paragraphs |
||||||
|
_core: |
||||||
|
default_config_hash: kyoAHlZTGIuGTaQuBblGBk8EhfnVKOl19_0j5WbpQqM |
||||||
|
id: media.image.default |
||||||
|
targetEntityType: media |
||||||
|
bundle: image |
||||||
|
mode: default |
||||||
|
content: |
||||||
|
field_image_attribution: |
||||||
|
type: entity_reference_paragraphs |
||||||
|
weight: 3 |
||||||
|
settings: |
||||||
|
title: Paragraph |
||||||
|
title_plural: Paragraphs |
||||||
|
edit_mode: open |
||||||
|
add_mode: dropdown |
||||||
|
form_display_mode: default |
||||||
|
default_paragraph_type: '' |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
field_media_in_library: |
||||||
|
type: boolean_checkbox |
||||||
|
weight: 2 |
||||||
|
settings: |
||||||
|
display_label: true |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
image: |
||||||
|
type: image_image |
||||||
|
weight: 0 |
||||||
|
settings: |
||||||
|
progress_indicator: throbber |
||||||
|
preview_image_style: thumbnail |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
name: |
||||||
|
type: string_textfield |
||||||
|
weight: 1 |
||||||
|
settings: |
||||||
|
size: 60 |
||||||
|
placeholder: '' |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
hidden: |
||||||
|
created: true |
||||||
|
moderation_state: true |
||||||
|
path: true |
||||||
|
status: true |
||||||
|
uid: true |
@ -0,0 +1,65 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- core.entity_form_mode.media.media_browser |
||||||
|
- field.field.media.image.field_image_attribution |
||||||
|
- field.field.media.image.field_media_in_library |
||||||
|
- field.field.media.image.image |
||||||
|
- image.style.medium |
||||||
|
- media.type.image |
||||||
|
module: |
||||||
|
- image |
||||||
|
- lightning_media |
||||||
|
- paragraphs |
||||||
|
_core: |
||||||
|
default_config_hash: iVmRBD7y3Gmddt29sSx9DwwH6Q4UaROqMu7FLyy_bvQ |
||||||
|
id: media.image.media_browser |
||||||
|
targetEntityType: media |
||||||
|
bundle: image |
||||||
|
mode: media_browser |
||||||
|
content: |
||||||
|
field_image_attribution: |
||||||
|
type: entity_reference_paragraphs |
||||||
|
weight: 3 |
||||||
|
region: content |
||||||
|
settings: |
||||||
|
title: Paragraph |
||||||
|
title_plural: Paragraphs |
||||||
|
edit_mode: open |
||||||
|
add_mode: dropdown |
||||||
|
form_display_mode: default |
||||||
|
default_paragraph_type: '' |
||||||
|
third_party_settings: { } |
||||||
|
field_media_in_library: |
||||||
|
type: boolean_checkbox |
||||||
|
weight: 2 |
||||||
|
settings: |
||||||
|
display_label: true |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
image: |
||||||
|
type: image_image |
||||||
|
weight: 0 |
||||||
|
settings: |
||||||
|
preview_image_style: medium |
||||||
|
progress_indicator: throbber |
||||||
|
third_party_settings: |
||||||
|
lightning_media: |
||||||
|
file_links: false |
||||||
|
remove_button: false |
||||||
|
region: content |
||||||
|
name: |
||||||
|
type: string_textfield |
||||||
|
weight: 1 |
||||||
|
settings: |
||||||
|
size: 60 |
||||||
|
placeholder: '' |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
hidden: |
||||||
|
created: true |
||||||
|
moderation_state: true |
||||||
|
path: true |
||||||
|
status: true |
||||||
|
uid: true |
@ -0,0 +1,44 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.field.paragraph.license_attribution.field_attribution_author |
||||||
|
- field.field.paragraph.license_attribution.field_attribution_source |
||||||
|
- field.field.paragraph.license_attribution.field_license |
||||||
|
- paragraphs.paragraphs_type.license_attribution |
||||||
|
module: |
||||||
|
- link |
||||||
|
id: paragraph.license_attribution.default |
||||||
|
targetEntityType: paragraph |
||||||
|
bundle: license_attribution |
||||||
|
mode: default |
||||||
|
content: |
||||||
|
field_attribution_author: |
||||||
|
weight: 1 |
||||||
|
settings: |
||||||
|
placeholder_url: '' |
||||||
|
placeholder_title: '' |
||||||
|
third_party_settings: { } |
||||||
|
type: link_default |
||||||
|
region: content |
||||||
|
field_attribution_source: |
||||||
|
weight: 0 |
||||||
|
settings: |
||||||
|
placeholder_url: '' |
||||||
|
placeholder_title: '' |
||||||
|
third_party_settings: { } |
||||||
|
type: link_default |
||||||
|
region: content |
||||||
|
field_license: |
||||||
|
weight: 2 |
||||||
|
settings: |
||||||
|
match_operator: CONTAINS |
||||||
|
size: 60 |
||||||
|
placeholder: '' |
||||||
|
third_party_settings: { } |
||||||
|
type: entity_reference_autocomplete |
||||||
|
region: content |
||||||
|
hidden: |
||||||
|
created: true |
||||||
|
status: true |
||||||
|
uid: true |
@ -0,0 +1,46 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.field.taxonomy_term.licenses.field_license_link |
||||||
|
- taxonomy.vocabulary.licenses |
||||||
|
module: |
||||||
|
- link |
||||||
|
- path |
||||||
|
- text |
||||||
|
id: taxonomy_term.licenses.default |
||||||
|
targetEntityType: taxonomy_term |
||||||
|
bundle: licenses |
||||||
|
mode: default |
||||||
|
content: |
||||||
|
description: |
||||||
|
type: text_textfield |
||||||
|
weight: 0 |
||||||
|
region: content |
||||||
|
settings: |
||||||
|
size: 60 |
||||||
|
placeholder: '' |
||||||
|
third_party_settings: { } |
||||||
|
field_license_link: |
||||||
|
weight: 31 |
||||||
|
settings: |
||||||
|
placeholder_url: '' |
||||||
|
placeholder_title: '' |
||||||
|
third_party_settings: { } |
||||||
|
type: link_default |
||||||
|
region: content |
||||||
|
name: |
||||||
|
type: string_textfield |
||||||
|
weight: -5 |
||||||
|
region: content |
||||||
|
settings: |
||||||
|
size: 60 |
||||||
|
placeholder: '' |
||||||
|
third_party_settings: { } |
||||||
|
path: |
||||||
|
type: path |
||||||
|
weight: 30 |
||||||
|
region: content |
||||||
|
settings: { } |
||||||
|
third_party_settings: { } |
||||||
|
hidden: { } |
@ -0,0 +1,42 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.field.media.image.field_image_attribution |
||||||
|
- field.field.media.image.field_media_in_library |
||||||
|
- field.field.media.image.image |
||||||
|
- media.type.image |
||||||
|
module: |
||||||
|
- entity_reference_revisions |
||||||
|
- image |
||||||
|
_core: |
||||||
|
default_config_hash: VLDxfMVPTkd2xvOjFMCh3kWmaOYnd03zggFXuUXQVEY |
||||||
|
id: media.image.default |
||||||
|
targetEntityType: media |
||||||
|
bundle: image |
||||||
|
mode: default |
||||||
|
content: |
||||||
|
field_image_attribution: |
||||||
|
type: entity_reference_revisions_entity_view |
||||||
|
weight: 1 |
||||||
|
label: hidden |
||||||
|
settings: |
||||||
|
view_mode: default |
||||||
|
link: '' |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
image: |
||||||
|
type: image |
||||||
|
weight: 0 |
||||||
|
label: hidden |
||||||
|
settings: |
||||||
|
image_style: '' |
||||||
|
image_link: '' |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
hidden: |
||||||
|
created: true |
||||||
|
field_media_in_library: true |
||||||
|
name: true |
||||||
|
thumbnail: true |
||||||
|
uid: true |
@ -0,0 +1,52 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- core.entity_view_mode.media.embedded |
||||||
|
- field.field.media.image.field_image_attribution |
||||||
|
- field.field.media.image.field_media_in_library |
||||||
|
- field.field.media.image.image |
||||||
|
- media.type.image |
||||||
|
module: |
||||||
|
- entity_reference_revisions |
||||||
|
- image |
||||||
|
_core: |
||||||
|
default_config_hash: FaHkkj9J9DxKQ-R7RNddSDq_d0D6UBY3hoKzoAQoGaw |
||||||
|
id: media.image.embedded |
||||||
|
targetEntityType: media |
||||||
|
bundle: image |
||||||
|
mode: embedded |
||||||
|
content: |
||||||
|
created: |
||||||
|
type: timestamp |
||||||
|
weight: 2 |
||||||
|
region: content |
||||||
|
label: above |
||||||
|
settings: |
||||||
|
date_format: medium |
||||||
|
custom_date_format: '' |
||||||
|
timezone: '' |
||||||
|
third_party_settings: { } |
||||||
|
field_image_attribution: |
||||||
|
type: entity_reference_revisions_entity_view |
||||||
|
weight: 1 |
||||||
|
region: content |
||||||
|
label: hidden |
||||||
|
settings: |
||||||
|
view_mode: default |
||||||
|
link: '' |
||||||
|
third_party_settings: { } |
||||||
|
image: |
||||||
|
type: image |
||||||
|
weight: 0 |
||||||
|
label: hidden |
||||||
|
settings: |
||||||
|
image_style: '' |
||||||
|
image_link: '' |
||||||
|
third_party_settings: { } |
||||||
|
region: content |
||||||
|
hidden: |
||||||
|
field_media_in_library: true |
||||||
|
name: true |
||||||
|
thumbnail: true |
||||||
|
uid: true |
@ -0,0 +1,48 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.field.paragraph.license_attribution.field_attribution_author |
||||||
|
- field.field.paragraph.license_attribution.field_attribution_source |
||||||
|
- field.field.paragraph.license_attribution.field_license |
||||||
|
- paragraphs.paragraphs_type.license_attribution |
||||||
|
module: |
||||||
|
- link |
||||||
|
id: paragraph.license_attribution.default |
||||||
|
targetEntityType: paragraph |
||||||
|
bundle: license_attribution |
||||||
|
mode: default |
||||||
|
content: |
||||||
|
field_attribution_author: |
||||||
|
weight: 1 |
||||||
|
label: above |
||||||
|
settings: |
||||||
|
trim_length: 80 |
||||||
|
url_only: false |
||||||
|
url_plain: false |
||||||
|
rel: '' |
||||||
|
target: '' |
||||||
|
third_party_settings: { } |
||||||
|
type: link |
||||||
|
region: content |
||||||
|
field_attribution_source: |
||||||
|
weight: 0 |
||||||
|
label: above |
||||||
|
settings: |
||||||
|
trim_length: 80 |
||||||
|
url_only: false |
||||||
|
url_plain: false |
||||||
|
rel: '' |
||||||
|
target: '' |
||||||
|
third_party_settings: { } |
||||||
|
type: link |
||||||
|
region: content |
||||||
|
field_license: |
||||||
|
weight: 2 |
||||||
|
label: above |
||||||
|
settings: |
||||||
|
link: true |
||||||
|
third_party_settings: { } |
||||||
|
type: entity_reference_label |
||||||
|
region: content |
||||||
|
hidden: { } |
@ -0,0 +1,13 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
module: |
||||||
|
- lightning_core |
||||||
|
- paragraphs |
||||||
|
third_party_settings: |
||||||
|
lightning_core: |
||||||
|
description: '' |
||||||
|
id: paragraph.license_attribution |
||||||
|
label: 'License attribution' |
||||||
|
targetEntityType: paragraph |
||||||
|
cache: true |
@ -0,0 +1,37 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.storage.media.field_image_attribution |
||||||
|
- media.type.image |
||||||
|
- paragraphs.paragraphs_type.license_attribution |
||||||
|
module: |
||||||
|
- entity_reference_revisions |
||||||
|
- require_on_publish |
||||||
|
third_party_settings: |
||||||
|
require_on_publish: |
||||||
|
require_on_publish: false |
||||||
|
id: media.image.field_image_attribution |
||||||
|
field_name: field_image_attribution |
||||||
|
entity_type: media |
||||||
|
bundle: image |
||||||
|
label: 'Image Attribution' |
||||||
|
description: '' |
||||||
|
required: false |
||||||
|
translatable: false |
||||||
|
default_value: { } |
||||||
|
default_value_callback: '' |
||||||
|
settings: |
||||||
|
handler: 'default:paragraph' |
||||||
|
handler_settings: |
||||||
|
negate: 0 |
||||||
|
target_bundles: |
||||||
|
license_attribution: license_attribution |
||||||
|
target_bundles_drag_drop: |
||||||
|
author_with_affiliation: |
||||||
|
weight: 3 |
||||||
|
enabled: false |
||||||
|
license_attribution: |
||||||
|
enabled: true |
||||||
|
weight: 4 |
||||||
|
field_type: entity_reference_revisions |
@ -0,0 +1,26 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.storage.paragraph.field_attribution_author |
||||||
|
- paragraphs.paragraphs_type.license_attribution |
||||||
|
module: |
||||||
|
- link |
||||||
|
- require_on_publish |
||||||
|
third_party_settings: |
||||||
|
require_on_publish: |
||||||
|
require_on_publish: false |
||||||
|
id: paragraph.license_attribution.field_attribution_author |
||||||
|
field_name: field_attribution_author |
||||||
|
entity_type: paragraph |
||||||
|
bundle: license_attribution |
||||||
|
label: Author |
||||||
|
description: 'Link to the author''s home page.' |
||||||
|
required: false |
||||||
|
translatable: false |
||||||
|
default_value: { } |
||||||
|
default_value_callback: '' |
||||||
|
settings: |
||||||
|
link_type: 17 |
||||||
|
title: 2 |
||||||
|
field_type: link |
@ -0,0 +1,26 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.storage.paragraph.field_attribution_source |
||||||
|
- paragraphs.paragraphs_type.license_attribution |
||||||
|
module: |
||||||
|
- link |
||||||
|
- require_on_publish |
||||||
|
third_party_settings: |
||||||
|
require_on_publish: |
||||||
|
require_on_publish: false |
||||||
|
id: paragraph.license_attribution.field_attribution_source |
||||||
|
field_name: field_attribution_source |
||||||
|
entity_type: paragraph |
||||||
|
bundle: license_attribution |
||||||
|
label: Source |
||||||
|
description: 'Link to the work''s original source. Set the link text as the title of the work.' |
||||||
|
required: false |
||||||
|
translatable: false |
||||||
|
default_value: { } |
||||||
|
default_value_callback: '' |
||||||
|
settings: |
||||||
|
link_type: 17 |
||||||
|
title: 2 |
||||||
|
field_type: link |
@ -0,0 +1,33 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.storage.paragraph.field_license |
||||||
|
- paragraphs.paragraphs_type.license_attribution |
||||||
|
- taxonomy.vocabulary.licenses |
||||||
|
module: |
||||||
|
- require_on_publish |
||||||
|
third_party_settings: |
||||||
|
require_on_publish: |
||||||
|
require_on_publish: false |
||||||
|
id: paragraph.license_attribution.field_license |
||||||
|
field_name: field_license |
||||||
|
entity_type: paragraph |
||||||
|
bundle: license_attribution |
||||||
|
label: License |
||||||
|
description: '' |
||||||
|
required: true |
||||||
|
translatable: false |
||||||
|
default_value: { } |
||||||
|
default_value_callback: '' |
||||||
|
settings: |
||||||
|
handler: 'default:taxonomy_term' |
||||||
|
handler_settings: |
||||||
|
target_bundles: |
||||||
|
licenses: licenses |
||||||
|
sort: |
||||||
|
field: name |
||||||
|
direction: asc |
||||||
|
auto_create: false |
||||||
|
auto_create_bundle: '' |
||||||
|
field_type: entity_reference |
@ -0,0 +1,26 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
config: |
||||||
|
- field.storage.taxonomy_term.field_license_link |
||||||
|
- taxonomy.vocabulary.licenses |
||||||
|
module: |
||||||
|
- link |
||||||
|
- require_on_publish |
||||||
|
third_party_settings: |
||||||
|
require_on_publish: |
||||||
|
require_on_publish: false |
||||||
|
id: taxonomy_term.licenses.field_license_link |
||||||
|
field_name: field_license_link |
||||||
|
entity_type: taxonomy_term |
||||||
|
bundle: licenses |
||||||
|
label: 'License link' |
||||||
|
description: '' |
||||||
|
required: true |
||||||
|
translatable: false |
||||||
|
default_value: { } |
||||||
|
default_value_callback: '' |
||||||
|
settings: |
||||||
|
link_type: 17 |
||||||
|
title: 2 |
||||||
|
field_type: link |
@ -0,0 +1,24 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
module: |
||||||
|
- entity_reference_revisions |
||||||
|
- field_permissions |
||||||
|
- media |
||||||
|
- paragraphs |
||||||
|
third_party_settings: |
||||||
|
field_permissions: |
||||||
|
permission_type: public |
||||||
|
id: media.field_image_attribution |
||||||
|
field_name: field_image_attribution |
||||||
|
entity_type: media |
||||||
|
type: entity_reference_revisions |
||||||
|
settings: |
||||||
|
target_type: paragraph |
||||||
|
module: entity_reference_revisions |
||||||
|
locked: false |
||||||
|
cardinality: 1 |
||||||
|
translatable: true |
||||||
|
indexes: { } |
||||||
|
persist_with_no_fields: false |
||||||
|
custom_storage: false |
@ -0,0 +1,22 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
module: |
||||||
|
- field_permissions |
||||||
|
- link |
||||||
|
- paragraphs |
||||||
|
third_party_settings: |
||||||
|
field_permissions: |
||||||
|
permission_type: public |
||||||
|
id: paragraph.field_attribution_author |
||||||
|
field_name: field_attribution_author |
||||||
|
entity_type: paragraph |
||||||
|
type: link |
||||||
|
settings: { } |
||||||
|
module: link |
||||||
|
locked: false |
||||||
|
cardinality: 1 |
||||||
|
translatable: true |
||||||
|
indexes: { } |
||||||
|
persist_with_no_fields: false |
||||||
|
custom_storage: false |
@ -0,0 +1,22 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
module: |
||||||
|
- field_permissions |
||||||
|
- link |
||||||
|
- paragraphs |
||||||
|
third_party_settings: |
||||||
|
field_permissions: |
||||||
|
permission_type: public |
||||||
|
id: paragraph.field_attribution_source |
||||||
|
field_name: field_attribution_source |
||||||
|
entity_type: paragraph |
||||||
|
type: link |
||||||
|
settings: { } |
||||||
|
module: link |
||||||
|
locked: false |
||||||
|
cardinality: 1 |
||||||
|
translatable: true |
||||||
|
indexes: { } |
||||||
|
persist_with_no_fields: false |
||||||
|
custom_storage: false |
@ -0,0 +1,23 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
module: |
||||||
|
- field_permissions |
||||||
|
- paragraphs |
||||||
|
- taxonomy |
||||||
|
third_party_settings: |
||||||
|
field_permissions: |
||||||
|
permission_type: public |
||||||
|
id: paragraph.field_license |
||||||
|
field_name: field_license |
||||||
|
entity_type: paragraph |
||||||
|
type: entity_reference |
||||||
|
settings: |
||||||
|
target_type: taxonomy_term |
||||||
|
module: core |
||||||
|
locked: false |
||||||
|
cardinality: 1 |
||||||
|
translatable: true |
||||||
|
indexes: { } |
||||||
|
persist_with_no_fields: false |
||||||
|
custom_storage: false |
@ -0,0 +1,22 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: |
||||||
|
module: |
||||||
|
- field_permissions |
||||||
|
- link |
||||||
|
- taxonomy |
||||||
|
third_party_settings: |
||||||
|
field_permissions: |
||||||
|
permission_type: public |
||||||
|
id: taxonomy_term.field_license_link |
||||||
|
field_name: field_license_link |
||||||
|
entity_type: taxonomy_term |
||||||
|
type: link |
||||||
|
settings: { } |
||||||
|
module: link |
||||||
|
locked: false |
||||||
|
cardinality: 1 |
||||||
|
translatable: true |
||||||
|
indexes: { } |
||||||
|
persist_with_no_fields: false |
||||||
|
custom_storage: false |
@ -0,0 +1,8 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: { } |
||||||
|
id: license_attribution |
||||||
|
label: 'License Attribution' |
||||||
|
icon_uuid: null |
||||||
|
description: 'Indicate the source and license conditions of a piece of content.' |
||||||
|
behavior_plugins: { } |
@ -0,0 +1,8 @@ |
|||||||
|
langcode: en |
||||||
|
status: true |
||||||
|
dependencies: { } |
||||||
|
name: Licenses |
||||||
|
vid: licenses |
||||||
|
description: 'Licenses for content and attribution.' |
||||||
|
hierarchy: 0 |
||||||
|
weight: 0 |
@ -0,0 +1,8 @@ |
|||||||
|
name: 'Entity Embed Attribution' |
||||||
|
type: module |
||||||
|
description: 'Attach an attribution and license info to embedded media' |
||||||
|
core: 8.x |
||||||
|
package: 'media' |
||||||
|
dependencies: |
||||||
|
- media |
||||||
|
- paragraphs |
@ -0,0 +1,124 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* @file |
||||||
|
* Contains entity_embed_attribution.module. |
||||||
|
*/ |
||||||
|
|
||||||
|
use Drupal\Core\Routing\RouteMatchInterface; |
||||||
|
use Drupal\Core\Url; |
||||||
|
use Drupal\Core\Render\Markup; |
||||||
|
use Drupal\Core\Entity\Entity\EntityFormDisplay; |
||||||
|
use Drupal\Core\Entity\Entity\EntityViewDisplay; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Implements hook_help(). |
||||||
|
*/ |
||||||
|
function entity_embed_attribution_help($route_name, RouteMatchInterface $route_match) { |
||||||
|
switch ($route_name) { |
||||||
|
// Main module help for the entity_embed_attribution module. |
||||||
|
case 'help.page.entity_embed_attribution': |
||||||
|
$output = ''; |
||||||
|
$output .= '<h3>' . t('About') . '</h3>'; |
||||||
|
$output .= '<p>' . t('Attach an attribution and license info to embedded media') . '</p>'; |
||||||
|
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' => "<br>“<cite>", |
||||||
|
'#suffix' => "</cite>”", |
||||||
|
'#url' => Url::fromUri($source['uri']), |
||||||
|
], |
||||||
|
]; |
||||||
|
} |
||||||
|
if (!empty($author)) { |
||||||
|
$attribution_text['author'] = [ |
||||||
|
'#type' => 'link', |
||||||
|
'#title' => $author['title'], |
||||||
|
'#prefix' => ' ' . t('by') . ' ', |
||||||
|
'#url' => Url::fromUri($author['uri']), |
||||||
|
]; |
||||||
|
} |
||||||
|
if (!empty($license_link)) { |
||||||
|
$attribution_text['license'] = [ |
||||||
|
'#type' => 'link', |
||||||
|
'#title' => $license_link['title'], |
||||||
|
'#prefix' => ' ' . t('is licensec under') . ' ', |
||||||
|
'#url' => Url::fromUri($license_link['uri']), |
||||||
|
'#suffix' => '.', |
||||||
|
|
||||||
|
]; |
||||||
|
} |
||||||
|
// $attribution_string = \Drupal::render($attribution_text); |
||||||
|
|
||||||
|
$variables['children'] = ['first' => ['#type' => 'markup', '#markup' => render($variables['children'])], |
||||||
|
$attribution_text |
||||||
|
]; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue