This commit is contained in:
2026-06-23 16:04:57 +02:00
parent 223c5be097
commit 2bc69be75f
25 changed files with 1351 additions and 41 deletions

View File

@@ -22,6 +22,7 @@
"drupal/core-project-message": "^10.4",
"drupal/core-recommended": "^10.4",
"drupal/entity_block": "^2.0",
"drupal/footnotes": "^4.0@RC",
"drupal/page_manager": "^4.0@RC",
"drupal/paragraphs": "^1.20",
"drupal/redirect": "^1.12",

81
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "262ce40a93ec66896b34a5e1196ff80b",
"content-hash": "6bf176d658d431efd6ddb4df31aa6bc4",
"packages": [
{
"name": "asm89/stack-cors",
@@ -4343,6 +4343,84 @@
"issues": "https://www.drupal.org/project/issues/filter_perms?categories=All"
}
},
{
"name": "drupal/footnotes",
"version": "4.0.0-rc2",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/footnotes.git",
"reference": "4.0.0-rc2"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/footnotes-4.0.0-rc2.zip",
"reference": "4.0.0-rc2",
"shasum": "7cffeea7f3bc05f3a65ced67231cbb157660b6e0"
},
"require": {
"drupal/core": ">=10.0"
},
"require-dev": {
"drupal/metatag": "^2.0",
"drupal/search_api": "*"
},
"type": "drupal-module",
"extra": {
"drupal": {
"version": "4.0.0-rc2",
"datestamp": "1779606276",
"security-coverage": {
"status": "not-covered",
"message": "RC releases are not covered by Drupal security advisories."
}
}
},
"notification-url": "https://packages.drupal.org/8/downloads",
"license": [
"GPL-2.0+"
],
"authors": [
{
"name": "Andrii Aleksandrov (id.aleks)",
"homepage": "https://www.drupal.org/u/idaleks",
"role": "Maintainer"
},
{
"name": "Oleksandr Dekhteruk (pifagor)",
"homepage": "https://www.drupal.org/u/pifagor",
"role": "Maintainer"
},
{
"name": "Fernando Conceição (yukare)",
"homepage": "https://www.drupal.org/u/yukare",
"role": "Maintainer"
},
{
"name": "Henrik Ingo (hingo)",
"homepage": "https://www.drupal.org/u/hingo",
"role": "Maintainer"
},
{
"name": "Scott Euser (scott_euser)",
"homepage": "https://www.drupal.org/u/scott_euser",
"role": "Maintainer"
},
{
"name": "smulvih2",
"homepage": "https://www.drupal.org/user/795442"
},
{
"name": "yukare",
"homepage": "https://www.drupal.org/user/889254"
}
],
"description": "Add automatically numbered footnotes to your posts.",
"homepage": "https://drupal.org/project/footnotes",
"support": {
"source": "https://cgit.drupalcode.org/footnotes",
"issues": "https://drupal.org/project/issues/footnotes"
}
},
{
"name": "drupal/formatter_suite",
"version": "2.1.0",
@@ -12335,6 +12413,7 @@
"drupal/entity_clone": 20,
"drupal/field_group": 20,
"drupal/filter_perms": 20,
"drupal/footnotes": 5,
"drupal/inline_entity_form": 5,
"drupal/login_destination": 20,
"drupal/maillog": 20,

View File

@@ -0,0 +1,13 @@
uuid: 975423d5-16c6-4c27-b801-bf1950bf5c71
langcode: en
status: false
dependencies:
module:
- media
_core:
default_config_hash: dTfAUHooYV0uOVPO3saGpgv-c5PppJXDwxvwRTJOycM
id: media.full
label: 'Full content'
description: ''
targetEntityType: media
cache: true

View File

@@ -51,6 +51,7 @@ module:
file: 0
filter: 0
filter_perms: 0
footnotes: 0
formatter_suite: 0
help: 0
honeypot: 0
@@ -66,6 +67,7 @@ module:
maillog: 0
mathallomod: 0
maxlength: 0
media: 0
menu_block: 0
menu_link_content: 0
menu_ui: 0

View File

@@ -0,0 +1,28 @@
uuid: 71a5dbbb-c29e-41b5-9ec0-97cdc449b1e8
langcode: en
status: true
dependencies:
config:
- filter.format.footnote
module:
- ckeditor5
_core:
default_config_hash: SyHxfjreOgdyYXaIXOlKvLazJjPl6X-6ywdJeSruOzg
format: footnote
editor: ckeditor5
settings:
toolbar:
items:
- bold
- italic
- underline
- link
- bulletedList
plugins:
ckeditor5_list:
properties:
reversed: false
startIndex: false
multiBlock: false
image_upload:
status: false

View File

@@ -13,6 +13,8 @@ editor: ckeditor5
settings:
toolbar:
items:
- undo
- redo
- heading
- bold
- italic
@@ -22,7 +24,9 @@ settings:
- blockQuote
- indent
- outdent
- footnotes
- showBlocks
- sourceEditing
plugins:
ckeditor5_heading:
enabled_headings:
@@ -36,5 +40,7 @@ settings:
reversed: true
startIndex: true
multiBlock: true
ckeditor5_sourceEditing:
allowed_tags: { }
image_upload:
status: false

View File

@@ -0,0 +1,32 @@
uuid: 35cc332e-bda2-4b22-9b11-f4a047e349ed
langcode: en
status: true
dependencies:
module:
- pathologic
_core:
default_config_hash: SYAah-i4HbJnc3ZnKC9NmY4M0UAFYpfobYzxg0eMunM
name: Footnote
format: footnote
weight: 0
filters:
filter_html:
id: filter_html
provider: filter
status: true
weight: -10
settings:
allowed_html: '<br> <p> <strong> <em> <u> <a href> <ul> <ol reversed start> <li>'
filter_html_help: true
filter_html_nofollow: false
filter_pathologic:
id: filter_pathologic
provider: pathologic
status: false
weight: 50
settings:
settings_source: global
local_settings:
protocol_style: full
local_paths: ''
keep_language_prefix: true

View File

@@ -4,7 +4,7 @@ status: true
dependencies:
module:
- editor
- linkit
- footnotes
- pathologic
_core:
default_config_hash: a0dSxrd1nnzeSvKpvFmtoLpxDd3Nj6E7dQN-MZUi20g
@@ -36,13 +36,26 @@ filters:
status: false
weight: -40
settings: { }
filter_footnotes:
id: filter_footnotes
provider: footnotes
status: true
weight: 0
settings:
footnotes_collapse: false
footnotes_css: false
footnotes_dialog: false
footnotes_dialog_prevent_bubbling: true
footnotes_footer_disable: true
footnotes_preview_show_text: true
footnotes_preview_character: ''
filter_html:
id: filter_html
provider: filter
status: false
weight: -43
settings:
allowed_html: '<em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h5 id> <h6 id> <u> <a href hreflang !href accesskey id rel target title data-entity-type data-entity-uuid data-entity-substitution> <img src alt data-entity-type data-entity-uuid data-entity-substitution> <p> <h1> <pre> <h4 id class="inter-titre">'
allowed_html: ''
filter_html_help: true
filter_html_nofollow: false
filter_html_escape:
@@ -81,10 +94,3 @@ filters:
weight: -45
settings:
filter_url_length: 72
linkit:
id: linkit
provider: linkit
status: false
weight: 0
settings:
title: true

View File

@@ -0,0 +1,6 @@
_core:
default_config_hash: WCFqLQAxMw1weToDJEhfnW1Z-iOF7cqMdL8X7YTFxBA
icon_base_uri: 'public://media-icons/generic'
iframe_domain: null
oembed_providers_url: 'https://oembed.com/providers.json'
standalone_url: false

View File

@@ -0,0 +1,13 @@
uuid: fccdbdf2-2c41-4cd6-8b6e-b74fcae8ef12
langcode: en
status: true
dependencies:
module:
- media
_core:
default_config_hash: FrZy1tmuXJcOxhXlBoI1Hsnen5TT-9OCC1iolWH84go
id: media_delete_action
label: 'Delete media'
type: media
plugin: 'entity:delete_action:media'
configuration: { }

View File

@@ -0,0 +1,14 @@
uuid: 137669ed-9478-4e7b-b710-5a94900c1ad4
langcode: en
status: true
dependencies:
module:
- media
- views_bulk_edit
_core:
default_config_hash: xN0kWpQZeiYp9xWNycp37rmLmAcnEyS9LDjPPTPce2w
id: media_edit_action
label: 'Edit media'
type: media
plugin: 'entity:edit_action:media'
configuration: { }

View File

@@ -0,0 +1,13 @@
uuid: 4cb7ca5e-ee62-4165-b5dc-c6334acb25ed
langcode: en
status: true
dependencies:
module:
- media
_core:
default_config_hash: nh83qNNrmWE-CDdHz2MdFOAk60T9mzv3R-MaKfZR2jw
id: media_publish_action
label: 'Publish media'
type: media
plugin: 'entity:publish_action:media'
configuration: { }

View File

@@ -0,0 +1,13 @@
uuid: 4ee08a45-c42d-4332-a122-ed65596cc802
langcode: en
status: true
dependencies:
module:
- media
_core:
default_config_hash: VVyUA6PIaVeGtcIbgEWqJ6SYDiJdReBeojFswURFpKs
id: media_save_action
label: 'Save media'
type: media
plugin: 'entity:save_action:media'
configuration: { }

View File

@@ -0,0 +1,13 @@
uuid: 82e0950e-8a42-4bd7-b4ad-30bfbae269fe
langcode: en
status: true
dependencies:
module:
- media
_core:
default_config_hash: CsK6TseQ2DatEbZgbd30swOlZ28_HHwAESU2LvEnWq0
id: media_unpublish_action
label: 'Unpublish media'
type: media
plugin: 'entity:unpublish_action:media'
configuration: { }

View File

@@ -3,6 +3,7 @@ langcode: fr
status: true
dependencies:
config:
- filter.format.footnote
- node.type.chapitre
- node.type.partie
- node.type.static
@@ -10,6 +11,7 @@ dependencies:
- actions_permissions
- content_translation
- file
- filter
- node
- system
- toolbar
@@ -53,6 +55,7 @@ permissions:
- 'revert partie revisions'
- 'revert static revisions'
- 'update content translations'
- 'use text format footnote'
- 'view chapitre revisions'
- 'view own unpublished content'
- 'view partie revisions'

View File

@@ -4,6 +4,7 @@ status: true
dependencies:
module:
- devel
- media
- search
- system
_core:
@@ -16,3 +17,4 @@ permissions:
- 'access content'
- 'access devel information'
- 'search content'
- 'view media'

View File

@@ -4,6 +4,7 @@ status: true
dependencies:
module:
- devel
- media
- search
- system
_core:
@@ -16,3 +17,4 @@ permissions:
- 'access content'
- 'access devel information'
- 'search content'
- 'view media'

View File

@@ -3,6 +3,7 @@ langcode: fr
status: true
dependencies:
config:
- filter.format.footnote
- filter.format.wysiwyg
- node.type.chapitre
- node.type.partie
@@ -49,6 +50,7 @@ permissions:
- 'translate editable entities'
- 'translate interface'
- 'update content translations'
- 'use text format footnote'
- 'use text format wysiwyg'
- 'view chapitre revisions'
- 'view own unpublished content'

View File

@@ -0,0 +1,920 @@
uuid: 34a2d9c2-63e0-4f93-b857-2e4ffdb9dff8
langcode: en
status: true
dependencies:
config:
- image.style.thumbnail
module:
- image
- media
- user
_core:
default_config_hash: kOTUk5XWeupgBOJuRRarCiDcFKVZcvaW-FT5MTzrML8
id: media
label: Media
module: views
description: 'Find and manage media.'
tag: ''
base_table: media_field_data
base_field: mid
display:
default:
id: default
display_title: Default
display_plugin: default
position: 0
display_options:
title: Media
fields:
media_bulk_form:
id: media_bulk_form
table: media
field: media_bulk_form
relationship: none
group_type: group
admin_label: ''
entity_type: media
plugin_id: bulk_form
label: ''
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: false
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
action_title: Action
include_exclude: exclude
selected_actions: { }
thumbnail__target_id:
id: thumbnail__target_id
table: media_field_data
field: thumbnail__target_id
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: thumbnail
plugin_id: field
label: Thumbnail
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: target_id
type: image
settings:
image_link: ''
image_style: thumbnail
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
name:
id: name
table: media_field_data
field: name
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: media
plugin_id: field
label: 'Media name'
exclude: false
alter:
alter_text: false
make_link: false
absolute: false
word_boundary: false
ellipsis: false
strip_tags: false
trim: false
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: string
settings:
link_to_entity: true
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
bundle:
id: bundle
table: media_field_data
field: bundle
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: bundle
plugin_id: field
label: Type
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: target_id
type: entity_reference_label
settings:
link: false
group_column: target_id
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
uid:
id: uid
table: media_field_data
field: uid
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: uid
plugin_id: field
label: Author
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: target_id
type: entity_reference_label
settings:
link: true
group_column: target_id
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
status:
id: status
table: media_field_data
field: status
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: status
plugin_id: field
label: Status
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: boolean
settings:
format: custom
format_custom_false: Unpublished
format_custom_true: Published
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
changed:
id: changed
table: media_field_data
field: changed
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: changed
plugin_id: field
label: Updated
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: timestamp
settings:
date_format: short
custom_date_format: ''
timezone: ''
tooltip:
date_format: long
custom_date_format: ''
time_diff:
enabled: false
future_format: '@interval hence'
past_format: '@interval ago'
granularity: 2
refresh: 60
group_column: value
group_columns: { }
group_rows: true
delta_limit: 0
delta_offset: 0
delta_reversed: false
delta_first_last: false
multi_type: separator
separator: ', '
field_api_classes: false
operations:
id: operations
table: media
field: operations
relationship: none
group_type: group
admin_label: ''
entity_type: media
plugin_id: entity_operations
label: Operations
exclude: false
alter:
alter_text: false
text: ''
make_link: false
path: ''
absolute: false
external: false
replace_spaces: false
path_case: none
trim_whitespace: false
alt: ''
rel: ''
link_class: ''
prefix: ''
suffix: ''
target: ''
nl2br: false
max_length: 0
word_boundary: true
ellipsis: true
more_link: false
more_link_text: ''
more_link_path: ''
strip_tags: false
trim: false
preserve_tags: ''
html: false
element_type: ''
element_class: ''
element_label_type: ''
element_label_class: ''
element_label_colon: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
destination: true
pager:
type: full
options:
offset: 0
pagination_heading_level: h4
items_per_page: 50
total_pages: null
id: 0
tags:
next: 'Next '
previous: ' Previous'
first: '« First'
last: 'Last »'
expose:
items_per_page: false
items_per_page_label: 'Items per page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all_label: '- All -'
offset: false
offset_label: Offset
quantity: 9
exposed_form:
type: basic
options:
submit_button: Filter
reset_button: false
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
sort_asc_label: Asc
sort_desc_label: Desc
access:
type: perm
options:
perm: 'access media overview'
cache:
type: tag
options: { }
empty:
area_text_custom:
id: area_text_custom
table: views
field: area_text_custom
relationship: none
group_type: group
admin_label: ''
plugin_id: text_custom
empty: true
content: 'No media available.'
tokenize: false
sorts:
created:
id: created
table: media_field_data
field: created
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: created
plugin_id: date
order: DESC
expose:
label: ''
field_identifier: created
exposed: false
granularity: second
arguments: { }
filters:
name:
id: name
table: media_field_data
field: name
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: name
plugin_id: string
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: name_op
label: 'Media name'
description: ''
use_operator: false
operator: name_op
operator_limit_selection: false
operator_list: { }
identifier: name
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
bundle:
id: bundle
table: media_field_data
field: bundle
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: bundle
plugin_id: bundle
operator: in
value: { }
group: 1
exposed: true
expose:
operator_id: bundle_op
label: Type
description: ''
use_operator: false
operator: bundle_op
operator_limit_selection: false
operator_list: { }
identifier: type
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
reduce: false
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
status:
id: status
table: media_field_data
field: status
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: status
plugin_id: boolean
operator: '='
value: '1'
group: 1
exposed: true
expose:
operator_id: ''
label: 'True'
description: null
use_operator: false
operator: status_op
operator_limit_selection: false
operator_list: { }
identifier: status
required: true
remember: false
multiple: false
remember_roles:
authenticated: authenticated
is_grouped: true
group_info:
label: 'Published status'
description: ''
identifier: status
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items:
1:
title: Published
operator: '='
value: '1'
2:
title: Unpublished
operator: '='
value: '0'
status_extra:
id: status_extra
table: media_field_data
field: status_extra
relationship: none
group_type: group
admin_label: ''
entity_type: media
plugin_id: media_status
operator: '='
value: ''
group: 1
exposed: false
expose:
operator_id: ''
label: ''
description: ''
use_operator: false
operator: ''
operator_limit_selection: false
operator_list: { }
identifier: ''
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
langcode:
id: langcode
table: media_field_data
field: langcode
relationship: none
group_type: group
admin_label: ''
entity_type: media
entity_field: langcode
plugin_id: language
operator: in
value: { }
group: 1
exposed: true
expose:
operator_id: langcode_op
label: Language
description: ''
use_operator: false
operator: langcode_op
operator_limit_selection: false
operator_list: { }
identifier: langcode
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
administrator: '0'
reduce: false
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
style:
type: table
options:
grouping: { }
row_class: ''
default_row_class: true
columns:
name: name
bundle: bundle
changed: changed
uid: uid
status: status
thumbnail__target_id: thumbnail__target_id
default: changed
info:
name:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
bundle:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
changed:
sortable: true
default_sort_order: desc
align: ''
separator: ''
empty_column: false
responsive: ''
uid:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
status:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
thumbnail__target_id:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
override: true
sticky: false
summary: ''
empty_table: true
caption: ''
description: ''
row:
type: fields
query:
type: views_query
options:
query_comment: ''
disable_sql_rewrite: false
distinct: false
replica: false
query_tags: { }
relationships: { }
header: { }
footer: { }
display_extenders: { }
cache_metadata:
max-age: 0
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user
- user.permissions
tags: { }
media_page_list:
id: media_page_list
display_title: Media
display_plugin: page
position: 1
display_options:
display_description: ''
display_extenders: { }
path: admin/content/media
menu:
type: tab
title: Media
description: ''
weight: 0
expanded: false
menu_name: main
parent: ''
context: '0'
cache_metadata:
max-age: 0
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user
- user.permissions
tags: { }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -33,7 +33,7 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
const MathalloTheme = function () {
const _is_front = drupalSettings.path.isFront
console.log('drupalSettings', drupalSettings)
// liste forme file names
const _formesclasses = [
'pyramide',
@@ -52,6 +52,12 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
let _cardsForms = [];
let smoother = null;
let fn_modale;
let mouse_pos = {x:0,y:0};
// ___ _ _
// |_ _|_ _ (_) |_
// | || ' \| | _|
@@ -62,6 +68,7 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
initPartieFrontBackCardSwitch();
initBgFormes();
initBgAnime();
initFootnotes();
// initVues()
}
@@ -91,7 +98,7 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
})
}
}
}
function onWindowResize() {
@@ -147,7 +154,7 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
// register cards and formes
_cardsForms.push(cardFormObject);
// console.log('_cardsForms', _cardsForms);
// create GSAP animations
createGsapAnims(card, forme, oddeven);
@@ -250,7 +257,7 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
let forme = document.createElement('div');
forme.classList.add('bg-forme');
// forme.classList.add(_formesclasses[n]);
// inject svg from file
@@ -261,13 +268,13 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
// get the svg ode
const svgNode = forme.querySelector('svg');
// random size
let wh = 200 + Math.random()*300;
// OR
// pic a size
// let wh = _sizes.splice(Math.floor(Math.random() * _sizes.length), 1)[0];
// record the original scale for stroke width rescalling
// record the original scale for stroke width rescalling
const init_wh = svgNode.getAttribute('width');
// set the new size
forme.style.width = forme.style.height = `${wh}px`;
@@ -284,13 +291,13 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
// path.setAttribute('stroke-width', `${new_SW}px`);
// path.style.strokeWidth = `${new_SW}px`;
// });
// random position
// top
let top = card.offsetTop + card.clientHeight/2 - wh/2;
if (card.clientHeight < 300) {
top = Math.random() > 0.5
top = Math.random() > 0.5
? card.offsetTop - wh/2 // on top
: card.offsetTop + card.clientHeight - wh/2; // on bottom
}
@@ -306,26 +313,29 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
forme.style.left = `${card.offsetLeft + card.clientWidth - randoffset}px`;
} else {
// random
forme.style.left = Math.random() > 0.5
? `${card.offsetLeft - wh + randoffset}px`
forme.style.left = Math.random() > 0.5
? `${card.offsetLeft - wh + randoffset}px`
: `${card.offsetLeft + card.clientWidth - randoffset}px`;
}
return forme;
}
function initBgAnime(){
gsap.to('body', {
scrollTrigger: 'main[role="main"]', // start animation when ".box" enters the viewport
backgroundPositionY: 10
});
// gsap.to('body', {
// scrollTrigger: 'main[role="main"]', // start animation when ".box" enters the viewport
// backgroundPositionY: 10
// });
ScrollSmoother.create({
smoother = ScrollSmoother.create({
smooth: 3, // how long (in seconds) it takes to "catch up" to the native scroll position
effects: true, // looks for data-speed and data-lag attributes on elements
smoothTouch: 0.1, // much shorter smoothing time on touch devices (default is NO smoothing on touch devices)
wrapper: 'main[role="main"]',
content: 'main[role="main"]>.layout-content'
content: 'main[role="main"]>.layout-content',
onUpdate: onUpdateSmoother
});
console.log('smoother', smoother);
gsap.to('#parallax-bg', {
y: (i, target) => -(ScrollTrigger.maxScroll(window) * 1.2),
@@ -339,13 +349,88 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
}
});
}
function onUpdateSmoother(sm){
// console.log('onUpdateSmoother', sm);
// let content = sm.content();
updateFnModalePos();
}
function initFootnotes(){
// let container = document.querySelector('main[role="main"]>div.layout-content>.wrapper');
let container = document.body;
fn_modale = document.createElement('div');
fn_modale.classList.add('fn-modale');
container.append(fn_modale);
let fns = document.querySelectorAll('.footnote__citation');
// console.log('fns', fns);
for (const fn of fns) {
console.log('fn', fn);
fn.addEventListener('mouseenter', onMouseEnterFN);
fn.addEventListener('mouseleave', onMouseLeaveFN);
// fn.addEventListener('mousemove', onMouseMove);
}
window.addEventListener('mousemove', onMouseMove);
}
function onMouseEnterFN(event){
console.log('onMouseEnterFN, event:', event);
fn_modale.innerHTML = event.target.dataset.content;
fn_modale.classList.add('visible');
// fn_modale.style.left = `${event.clientX}px`;
// fn_modale.style.top = `${event.clientY}px`;
}
function onMouseLeaveFN(event){
console.log('onMouseLeaveFN, event:', event);
// fn_modale.innerHTML = event.target.dataset.content;
fn_modale.classList.remove('visible');
// fn_modale.style.left = `${event.clientX}px`;
// fn_modale.style.top = `${event.clientY}px`;
}
function onMouseMove(event){
// console.log('onMouseMove, event:', event);
mouse_pos = {
x:event.clientX,
y:event.clientY
}
updateFnModalePos();
}
function updateFnModalePos(){
if (smoother) {
let cont = smoother.content();
let rect = cont.getBoundingClientRect();
fn_modale.style.left = `${mouse_pos.x - rect.left}px`;
let componsed_mouse_posy = mouse_pos.y - rect.top;
// if (componsed_mouse_posy > window.innerHeight) {
fn_modale.style.top = `${componsed_mouse_posy - fn_modale.clientHeight + 60}px`;
// } else{
// fn_modale.style.top = `${componsed_mouse_posy - fn_modale.clientHeight * 0.7}px`;
// }
console.log('window', window);
} else{
console.warn('no smoother');
}
}
// function initVues(){
// console.log('initVues');
// // initVueContent();
@@ -360,7 +445,7 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
// function onClickEtapeLink(e){
// e.preventDefault();
// let a = e.currentTarget;
// let nid = a.dataset.nodeNid;
// console.log(nid);
@@ -384,17 +469,17 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
// console.log(nid);
// }
// })
// if (nid) {
// let a = field.querySelector('a');
// a.setAttribute('data-node-nid', nid);
// a.addEventListener('click', onClickEtapeLink);
// }
// })
// }
// function getNodeData(nid){
// const params = {
// }
@@ -412,4 +497,4 @@ gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
} // end MathalloTheme()
MathalloTheme()
})(Drupal, drupalSettings)
})(Drupal, drupalSettings)

View File

@@ -651,3 +651,40 @@ footer[role="contentinfo"]{
}
}
// _____ _ _
// | ___|__ ___ | |_ _ __ ___ | |_ ___ ___
// | |_ / _ \ / _ \| __| '_ \ / _ \| __/ _ \/ __|
// | _| (_) | (_) | |_| | | | (_) | || __/\__ \
// |_| \___/ \___/ \__|_| |_|\___/ \__\___||___/
.footnote__citation{
text-decoration: underline;
text-decoration-style: dashed;
cursor: pointer;
}
aside.footnote-content{
display:none;
}
.fn-modale{
@include card;
// display: none;
opacity: 0;
transition: opacity 0.25s ease-in-out;
// transition-delay: ;
position: absolute;
// top:50%; left:50%;
z-index: 200;
max-width: 100em;
padding:1em 1.5em 1em 1em;
border: 1px dashed $bleu_site;
&.visible{
// display: block;
opacity: 1;
transition: opacity 0.25s ease-in-out;
}
}

View File

@@ -0,0 +1,7 @@
{% apply footnotes_spaceless %}
{# footnotes/footnote-link.html.twig #}
<span class="footnote__citation js-footnote-citation" id="{{ fn.ref_id }}" data-content="{{ fn.text }}">
{{ fn.value|render|trim }}
{# <aside class="footnote-content">{{ fn.text }}</aside> #}
</span>
{% endapply %}

View File

@@ -0,0 +1,13 @@
{% apply footnotes_spaceless %}
{# footnotes/footnote-links.html.twig #}
{%- if footnote_links -%}
<span class="footnote__citations-wrapper">
{%- for footnote_link in footnote_links -%}
{% if not loop.first %}
<span class="footnote__citation-separator">, </span>
{% endif %}
{{ footnote_link }}
{%- endfor -%}
</span>
{%- endif -%}
{% endapply %}