big improvement over projets, evenement, links, calendar, and mobile display

This commit is contained in:
2026-09-29 15:57:34 +02:00
parent 7581ab9333
commit 25cf411ced
28 changed files with 1264 additions and 128 deletions
@@ -0,0 +1,14 @@
uuid: 4263a6ab-307a-4e78-b28d-74d8788b4ded
langcode: fr
status: true
dependencies: { }
id: projet_evenement
label: projet_evenement
enabled: true
first_field: field_projet_s_lie_s
second_field: field_evenement_s_lie_s
add_direction: append
bundles:
node:
- evenement
- projet
@@ -31,6 +31,7 @@ third_party_settings:
children: children:
- group_description - group_description
- group_liens - group_liens
- group_media
label: Tabs label: Tabs
region: content region: content
parent_name: '' parent_name: ''
@@ -110,8 +111,8 @@ third_party_settings:
- field_images - field_images
label: Media label: Media
region: content region: content
parent_name: '' parent_name: group_tabs
weight: 4 weight: 13
format_type: tab format_type: tab
format_settings: format_settings:
classes: '' classes: ''
@@ -7,6 +7,7 @@ dependencies:
- field.field.node.projet.body - field.field.node.projet.body
- field.field.node.projet.field_artiste_s_invite_s - field.field.node.projet.field_artiste_s_invite_s
- field.field.node.projet.field_dates - field.field.node.projet.field_dates
- field.field.node.projet.field_evenement_s_lie_s
- field.field.node.projet.field_fichiers - field.field.node.projet.field_fichiers
- field.field.node.projet.field_images - field.field.node.projet.field_images
- field.field.node.projet.field_infos_pratiques - field.field.node.projet.field_infos_pratiques
@@ -125,6 +126,7 @@ third_party_settings:
group_liens: group_liens:
children: children:
- field_projet_s_lie_s - field_projet_s_lie_s
- field_evenement_s_lie_s
label: liens label: liens
region: content region: content
parent_name: group_tabs parent_name: group_tabs
@@ -177,6 +179,16 @@ content:
region: content region: content
settings: { } settings: { }
third_party_settings: { } third_party_settings: { }
field_evenement_s_lie_s:
type: entity_reference_autocomplete
weight: 7
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
field_fichiers: field_fichiers:
type: file_generic type: file_generic
weight: 8 weight: 8
@@ -38,7 +38,7 @@ content:
settings: settings:
link: false link: false
third_party_settings: { } third_party_settings: { }
weight: 3 weight: 1
region: content region: content
field_dates: field_dates:
type: daterange_default type: daterange_default
@@ -78,7 +78,7 @@ content:
settings: settings:
link: false link: false
third_party_settings: { } third_party_settings: { }
weight: 2 weight: 3
region: content region: content
field_type_d_evenement: field_type_d_evenement:
type: entity_reference_label type: entity_reference_label
@@ -86,7 +86,7 @@ content:
settings: settings:
link: true link: true
third_party_settings: { } third_party_settings: { }
weight: 1 weight: 2
region: content region: content
hidden: hidden:
body: true body: true
@@ -39,7 +39,7 @@ content:
settings: settings:
link: false link: false
third_party_settings: { } third_party_settings: { }
weight: 3 weight: 1
region: content region: content
field_dates: field_dates:
type: daterange_default type: daterange_default
@@ -84,7 +84,7 @@ content:
settings: settings:
link: false link: false
third_party_settings: { } third_party_settings: { }
weight: 1 weight: 2
region: content region: content
field_partenaire_s: field_partenaire_s:
type: entity_reference_label type: entity_reference_label
@@ -115,7 +115,7 @@ content:
settings: settings:
link: false link: false
third_party_settings: { } third_party_settings: { }
weight: 2 weight: 3
region: content region: content
links: links:
settings: { } settings: { }
@@ -105,7 +105,7 @@ content:
type: entity_reference_entity_view type: entity_reference_entity_view
label: above label: above
settings: settings:
view_mode: tableau_liste view_mode: lie
link: false link: false
third_party_settings: { } third_party_settings: { }
weight: 8 weight: 8
@@ -0,0 +1,99 @@
uuid: da229af2-3a56-4d57-914e-9c14a90feef3
langcode: fr
status: true
dependencies:
config:
- core.entity_view_mode.node.lie
- field.field.node.evenement.body
- field.field.node.evenement.field_artiste_s_invite_s
- field.field.node.evenement.field_dates
- field.field.node.evenement.field_images
- field.field.node.evenement.field_infos_pratiques
- field.field.node.evenement.field_invite_accompagne_curate_p
- field.field.node.evenement.field_lieu
- field.field.node.evenement.field_partenaire_s
- field.field.node.evenement.field_portage
- field.field.node.evenement.field_projet_s_lie_s
- field.field.node.evenement.field_type_d_evenement
- image.style.large
- node.type.evenement
module:
- datetime_range
- image_delta_formatter
- layout_builder
- text
- user
third_party_settings:
layout_builder:
enabled: false
allow_custom: false
id: node.evenement.lie
targetEntityType: node
bundle: evenement
mode: lie
content:
field_artiste_s_invite_s:
type: entity_reference_label
label: hidden
settings:
link: false
third_party_settings: { }
weight: 3
region: content
field_dates:
type: daterange_default
label: hidden
settings:
timezone_override: ''
format_type: medium
from_to: both
separator: '-'
third_party_settings: { }
weight: 0
region: content
field_images:
type: image_delta_formatter
label: visually_hidden
settings:
deltas:
- 0
deltas_reversed: false
image_link: content
image_style: large
image_loading:
attribute: lazy
third_party_settings: { }
weight: 4
region: content
field_infos_pratiques:
type: text_default
label: above
settings: { }
third_party_settings: { }
weight: 5
region: content
field_lieu:
type: entity_reference_label
label: visually_hidden
settings:
link: false
third_party_settings: { }
weight: 1
region: content
field_type_d_evenement:
type: entity_reference_label
label: hidden
settings:
link: false
third_party_settings: { }
weight: 2
region: content
hidden:
body: true
field_invite_accompagne_curate_p: true
field_partenaire_s: true
field_portage: true
field_projet_s_lie_s: true
langcode: true
links: true
search_api_excerpt: true
@@ -6,6 +6,7 @@ dependencies:
- field.field.node.projet.body - field.field.node.projet.body
- field.field.node.projet.field_artiste_s_invite_s - field.field.node.projet.field_artiste_s_invite_s
- field.field.node.projet.field_dates - field.field.node.projet.field_dates
- field.field.node.projet.field_evenement_s_lie_s
- field.field.node.projet.field_fichiers - field.field.node.projet.field_fichiers
- field.field.node.projet.field_images - field.field.node.projet.field_images
- field.field.node.projet.field_infos_pratiques - field.field.node.projet.field_infos_pratiques
@@ -51,7 +52,15 @@ content:
from_to: both from_to: both
separator: '-' separator: '-'
third_party_settings: { } third_party_settings: { }
weight: 2 weight: 3
region: content
field_evenement_s_lie_s:
type: entity_reference_label
label: above
settings:
link: true
third_party_settings: { }
weight: 12
region: content region: content
field_fichiers: field_fichiers:
type: file_default type: file_default
@@ -116,7 +125,7 @@ content:
settings: settings:
link: false link: false
third_party_settings: { } third_party_settings: { }
weight: 3 weight: 2
region: content region: content
links: links:
settings: { } settings: { }
@@ -7,6 +7,7 @@ dependencies:
- field.field.node.projet.body - field.field.node.projet.body
- field.field.node.projet.field_artiste_s_invite_s - field.field.node.projet.field_artiste_s_invite_s
- field.field.node.projet.field_dates - field.field.node.projet.field_dates
- field.field.node.projet.field_evenement_s_lie_s
- field.field.node.projet.field_fichiers - field.field.node.projet.field_fichiers
- field.field.node.projet.field_images - field.field.node.projet.field_images
- field.field.node.projet.field_infos_pratiques - field.field.node.projet.field_infos_pratiques
@@ -58,7 +59,16 @@ content:
from_to: both from_to: both
separator: '-' separator: '-'
third_party_settings: { } third_party_settings: { }
weight: 2 weight: 3
region: content
field_evenement_s_lie_s:
type: entity_reference_entity_view
label: above
settings:
view_mode: calendrier
link: false
third_party_settings: { }
weight: 10
region: content region: content
field_fichiers: field_fichiers:
type: file_default type: file_default
@@ -66,7 +76,7 @@ content:
settings: settings:
use_description_as_link_text: true use_description_as_link_text: true
third_party_settings: { } third_party_settings: { }
weight: 9 weight: 6
region: content region: content
field_images: field_images:
type: image_caption type: image_caption
@@ -77,7 +87,7 @@ content:
image_loading: image_loading:
attribute: lazy attribute: lazy
third_party_settings: { } third_party_settings: { }
weight: 10 weight: 11
region: content region: content
field_infos_pratiques: field_infos_pratiques:
type: text_default type: text_default
@@ -100,22 +110,23 @@ content:
settings: settings:
link: false link: false
third_party_settings: { } third_party_settings: { }
weight: 6 weight: 7
region: content region: content
field_portage: field_portage:
type: list_default type: list_default
label: above label: above
settings: { } settings: { }
third_party_settings: { } third_party_settings: { }
weight: 7 weight: 8
region: content region: content
field_projet_s_lie_s: field_projet_s_lie_s:
type: entity_reference_label type: entity_reference_entity_view
label: above label: above
settings: settings:
link: true view_mode: lie
link: false
third_party_settings: { } third_party_settings: { }
weight: 8 weight: 9
region: content region: content
field_type_de_projet: field_type_de_projet:
type: entity_reference_label type: entity_reference_label
@@ -123,7 +134,7 @@ content:
settings: settings:
link: true link: true
third_party_settings: { } third_party_settings: { }
weight: 3 weight: 2
region: content region: content
hidden: hidden:
langcode: true langcode: true
@@ -0,0 +1,93 @@
uuid: c2f9023f-0a4d-4ad1-9515-616f1fae1f72
langcode: fr
status: true
dependencies:
config:
- core.entity_view_mode.node.lie
- field.field.node.projet.body
- field.field.node.projet.field_artiste_s_invite_s
- field.field.node.projet.field_dates
- field.field.node.projet.field_evenement_s_lie_s
- field.field.node.projet.field_fichiers
- field.field.node.projet.field_images
- field.field.node.projet.field_infos_pratiques
- field.field.node.projet.field_invite_accompagne_curate_p
- field.field.node.projet.field_partenaire_s
- field.field.node.projet.field_portage
- field.field.node.projet.field_projet_s_lie_s
- field.field.node.projet.field_type_de_projet
- image.style.large
- node.type.projet
module:
- advanced_text_formatter
- image_delta_formatter
- layout_builder
- user
third_party_settings:
layout_builder:
enabled: false
allow_custom: false
id: node.projet.lie
targetEntityType: node
bundle: projet
mode: lie
content:
body:
type: advanced_text
label: hidden
settings:
trim_length: '100'
ellipsis: '1'
word_boundary: '1'
link_to_entity: '1'
filter: input
format: plain_text
allowed_html:
- a
- b
- br
- dd
- dl
- dt
- em
- i
- li
- ol
- p
- strong
- u
- ul
use_summary: 0
token_replace: 0
autop: 0
third_party_settings: { }
weight: 1
region: content
field_images:
type: image_delta_formatter
label: hidden
settings:
deltas:
- 0
deltas_reversed: false
image_link: content
image_style: large
image_loading:
attribute: lazy
third_party_settings: { }
weight: 0
region: content
hidden:
field_artiste_s_invite_s: true
field_dates: true
field_evenement_s_lie_s: true
field_fichiers: true
field_infos_pratiques: true
field_invite_accompagne_curate_p: true
field_partenaire_s: true
field_portage: true
field_projet_s_lie_s: true
field_type_de_projet: true
langcode: true
links: true
search_api_excerpt: true
@@ -7,6 +7,7 @@ dependencies:
- field.field.node.projet.body - field.field.node.projet.body
- field.field.node.projet.field_artiste_s_invite_s - field.field.node.projet.field_artiste_s_invite_s
- field.field.node.projet.field_dates - field.field.node.projet.field_dates
- field.field.node.projet.field_evenement_s_lie_s
- field.field.node.projet.field_fichiers - field.field.node.projet.field_fichiers
- field.field.node.projet.field_images - field.field.node.projet.field_images
- field.field.node.projet.field_infos_pratiques - field.field.node.projet.field_infos_pratiques
@@ -82,6 +83,7 @@ content:
weight: 3 weight: 3
region: content region: content
hidden: hidden:
field_evenement_s_lie_s: true
field_fichiers: true field_fichiers: true
field_infos_pratiques: true field_infos_pratiques: true
field_invite_accompagne_curate_p: true field_invite_accompagne_curate_p: true
@@ -7,6 +7,7 @@ dependencies:
- field.field.node.projet.body - field.field.node.projet.body
- field.field.node.projet.field_artiste_s_invite_s - field.field.node.projet.field_artiste_s_invite_s
- field.field.node.projet.field_dates - field.field.node.projet.field_dates
- field.field.node.projet.field_evenement_s_lie_s
- field.field.node.projet.field_fichiers - field.field.node.projet.field_fichiers
- field.field.node.projet.field_images - field.field.node.projet.field_images
- field.field.node.projet.field_infos_pratiques - field.field.node.projet.field_infos_pratiques
@@ -73,6 +74,7 @@ content:
region: content region: content
hidden: hidden:
field_dates: true field_dates: true
field_evenement_s_lie_s: true
field_fichiers: true field_fichiers: true
field_invite_accompagne_curate_p: true field_invite_accompagne_curate_p: true
field_partenaire_s: true field_partenaire_s: true
@@ -0,0 +1,11 @@
uuid: b8b1728c-a891-4823-9302-05a50e10454a
langcode: fr
status: true
dependencies:
module:
- node
id: node.lie
label: Lié
description: ''
targetEntityType: node
cache: true
@@ -0,0 +1,29 @@
uuid: 5a23a8c7-5d7b-4f95-ac25-0e0d54bf81ae
langcode: fr
status: true
dependencies:
config:
- field.storage.node.field_evenement_s_lie_s
- node.type.evenement
- node.type.projet
id: node.projet.field_evenement_s_lie_s
field_name: field_evenement_s_lie_s
entity_type: node
bundle: projet
label: 'Évenement(s) lié(s)'
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:node'
handler_settings:
target_bundles:
evenement: evenement
sort:
field: _none
direction: ASC
auto_create: false
auto_create_bundle: ''
field_type: entity_reference
@@ -0,0 +1,19 @@
uuid: 11b1c707-3204-46a0-ab41-e7a7fe25a7cd
langcode: fr
status: true
dependencies:
module:
- node
id: node.field_evenement_s_lie_s
field_name: field_evenement_s_lie_s
entity_type: node
type: entity_reference
settings:
target_type: node
module: core
locked: false
cardinality: -1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false
+626 -24
View File
@@ -192,6 +192,404 @@ display:
- user.permissions - user.permissions
tags: tags:
- 'config:field.storage.node.field_dates' - 'config:field.storage.node.field_dates'
embed_1:
id: embed_1
display_title: 'Évenement (passés) [Intégré]'
display_plugin: embed
position: 2
display_options:
title: 'Les Évenments passés'
fields:
field_dates_1:
id: field_dates_1
table: node__field_dates
field: field_dates
relationship: none
group_type: group
admin_label: ''
plugin_id: field
label: month
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: daterange_custom
settings:
timezone_override: ''
date_format: m
from_to: start_date
separator: '-'
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
field_dates_2:
id: field_dates_2
table: node__field_dates
field: field_dates
relationship: none
group_type: group
admin_label: ''
plugin_id: field
label: year
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: daterange_custom
settings:
timezone_override: ''
date_format: 'y'
from_to: start_date
separator: '-'
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
nothing:
id: nothing
table: views
field: nothing
relationship: none
group_type: group
admin_label: ''
plugin_id: custom
label: ''
exclude: false
alter:
alter_text: true
text: '<span class="month">{{ field_dates_1 }}</span>.<span class="year">{{ field_dates_2 }}</span>'
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: false
sorts:
field_dates_value:
id: field_dates_value
table: node__field_dates
field: field_dates_value
relationship: none
group_type: group
admin_label: ''
plugin_id: datetime
order: DESC
expose:
label: ''
field_identifier: ''
exposed: false
granularity: second
arguments:
tid:
id: tid
table: taxonomy_index
field: tid
relationship: none
group_type: group
admin_label: ''
plugin_id: taxonomy_index_tid
default_action: ignore
exception:
value: all
title_enable: false
title: All
title_enable: true
title: 'Les événements | {{ arguments.tid }}'
default_argument_type: fixed
default_argument_options:
argument: ''
summary_options:
base_path: ''
count: true
override: false
items_per_page: 25
summary:
sort_order: asc
number_of_records: 0
format: default_summary
specify_validation: false
validate:
type: none
fail: 'not found'
validate_options: { }
break_phrase: false
add_table: false
require_value: false
reduce_duplicates: false
filters:
status:
id: status
table: node_field_data
field: status
entity_type: node
entity_field: status
plugin_id: boolean
value: '1'
group: 1
expose:
operator: ''
type:
id: type
table: node_field_data
field: type
relationship: none
group_type: group
admin_label: ''
entity_type: node
entity_field: type
plugin_id: bundle
operator: in
value:
evenement: evenement
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
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: { }
field_dates_end_value:
id: field_dates_end_value
table: node__field_dates
field: field_dates_end_value
relationship: none
group_type: group
admin_label: ''
plugin_id: datetime
operator: '<'
value:
min: ''
max: ''
value: today
type: offset
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
min_placeholder: ''
max_placeholder: ''
placeholder: ''
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
filter_groups:
operator: AND
groups:
1: AND
style:
type: default
options:
grouping:
-
field: nothing
rendered: true
rendered_strip: false
row_class: ''
default_row_class: true
uses_fields: true
row:
type: 'entity:node'
options:
relationship: none
view_mode: calendrier
defaults:
title: false
css_class: false
style: false
row: false
fields: false
sorts: false
arguments: false
filters: false
filter_groups: false
header: false
css_class: 'views-archives views-archives-evenements'
display_description: ''
header:
area:
id: area
table: views
field: area
relationship: none
group_type: group
admin_label: ''
plugin_id: text
empty: false
content:
value: 'Événements passés'
format: wysiwyg
tokenize: false
display_extenders: { }
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- 'user.node_grants:view'
- user.permissions
tags:
- 'config:field.storage.node.field_dates'
page_1: page_1:
id: page_1 id: page_1
display_title: 'Page Projets' display_title: 'Page Projets'
@@ -410,21 +808,21 @@ display:
tags: { } tags: { }
page_2: page_2:
id: page_2 id: page_2
display_title: 'Page Évenements' display_title: 'Page Évenements (futures)'
display_plugin: page display_plugin: page
position: 2 position: 2
display_options: display_options:
title: 'Les Évenments' title: 'Les Évenements à venir'
fields: fields:
field_dates: field_dates_1:
id: field_dates id: field_dates_1
table: node__field_dates table: node__field_dates
field: field_dates field: field_dates
relationship: none relationship: none
group_type: group group_type: group
admin_label: '' admin_label: ''
plugin_id: field plugin_id: field
label: '' label: month
exclude: false exclude: false
alter: alter:
alter_text: false alter_text: false
@@ -457,6 +855,138 @@ display:
element_class: '' element_class: ''
element_label_type: '' element_label_type: ''
element_label_class: '' 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: daterange_custom
settings:
timezone_override: ''
date_format: m
from_to: start_date
separator: '-'
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
field_dates_2:
id: field_dates_2
table: node__field_dates
field: field_dates
relationship: none
group_type: group
admin_label: ''
plugin_id: field
label: year
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: daterange_custom
settings:
timezone_override: ''
date_format: 'y'
from_to: start_date
separator: '-'
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
nothing:
id: nothing
table: views
field: nothing
relationship: none
group_type: group
admin_label: ''
plugin_id: custom
label: ''
exclude: false
alter:
alter_text: true
text: '<span class="month">{{ field_dates_1 }}</span>.<span class="year">{{ field_dates_2 }}</span>'
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_label_colon: false
element_wrapper_type: '' element_wrapper_type: ''
element_wrapper_class: '' element_wrapper_class: ''
@@ -464,24 +994,22 @@ display:
empty: '' empty: ''
hide_empty: false hide_empty: false
empty_zero: false empty_zero: false
hide_alter_empty: true hide_alter_empty: false
click_sort_column: value sorts:
type: daterange_default field_dates_value:
settings: id: field_dates_value
timezone_override: '' table: node__field_dates
format_type: m_y field: field_dates_value
from_to: start_date relationship: none
separator: '-' group_type: group
group_column: value admin_label: ''
group_columns: { } plugin_id: datetime
group_rows: true order: ASC
delta_limit: 0 expose:
delta_offset: 0 label: ''
delta_reversed: false field_identifier: ''
delta_first_last: false exposed: false
multi_type: separator granularity: second
separator: ', '
field_api_classes: false
arguments: arguments:
tid: tid:
id: tid id: tid
@@ -573,6 +1101,51 @@ display:
default_group: All default_group: All
default_group_multiple: { } default_group_multiple: { }
group_items: { } group_items: { }
field_dates_end_value:
id: field_dates_end_value
table: node__field_dates
field: field_dates_end_value
relationship: none
group_type: group
admin_label: ''
plugin_id: datetime
operator: '>='
value:
min: ''
max: ''
value: today
type: offset
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
min_placeholder: ''
max_placeholder: ''
placeholder: ''
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
filter_groups: filter_groups:
operator: AND operator: AND
groups: groups:
@@ -582,7 +1155,7 @@ display:
options: options:
grouping: grouping:
- -
field: field_dates field: nothing
rendered: true rendered: true
rendered_strip: false rendered_strip: false
row_class: '' row_class: ''
@@ -599,11 +1172,40 @@ display:
style: false style: false
row: false row: false
fields: false fields: false
sorts: false
arguments: false arguments: false
filters: false filters: false
filter_groups: false filter_groups: false
header: false
footer: false
css_class: 'views-archives views-archives-evenements' css_class: 'views-archives views-archives-evenements'
display_description: '' display_description: ''
header:
area:
id: area
table: views
field: area
relationship: none
group_type: group
admin_label: ''
plugin_id: text
empty: false
content:
value: 'Événements à venir'
format: wysiwyg
tokenize: false
footer:
view:
id: view
table: views
field: view
relationship: none
group_type: group
admin_label: ''
plugin_id: view
empty: true
view_to_insert: 'archives:embed_1'
inherit_arguments: true
display_extenders: { } display_extenders: { }
path: evenements path: evenements
menu: menu:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -13,9 +13,9 @@ const TITLE_SELECTORS = '\
article.node-type-projet.view-mode-full h2.node-title,\ article.node-type-projet.view-mode-full h2.node-title,\
article.node-type-evenement>header>h2,\ article.node-type-evenement>header>h2,\
article.node-type-evenement.view-mode-full h2.node-title,\ article.node-type-evenement.view-mode-full h2.node-title,\
article.node-type-evenement.view-mode-calendrier h2.node-title,\ article.node-type-evenement.view-mode-calendrier h2.node-title\
div.views-archives-evenements > h3 > time\
'; ';
// div.views-archives-evenements > h3 > time\
// Police Epilogue = axe variable `wght` (100–900) uniquement ; l'italique est // Police Epilogue = axe variable `wght` (100–900) uniquement ; l'italique est
// un fichier séparé (font-style). // un fichier séparé (font-style).
@@ -0,0 +1,79 @@
@use "../abstracts/variables" as *;
@use "fluid" as *;
@use "../abstracts/event-date-time" as *;
@mixin event_calendar(){
// @include evenementListe();
border-top: 1px solid #ccc;
padding: 2em 0 1em 0;
display: flex;
flex-direction: row;
gap: 1em;
header{
flex:0 1 auto;
// width: 5em;
padding:0 1em 0 0;
.field_dates{
@include event-date-time(5em);
flex-direction: column;
align-items: center;
gap: 0.6em;
span.date-sep{
display: block;
width: 1em;
height: 0;
overflow: visible;
transform-origin: center;
transform: rotate(90deg) translateX(0.1em);
line-height: 0;
padding: 0;
}
}
}
section.content{
flex:1 1 auto;
h2.node-title{
font-size: 3em;
}
div.field_artiste_s_invite_s{
font-size: fluid-clamp(1.8rem, $min: 1.134rem);
.field-item{
display: inline-block;
&:not(:last-child)::after{
content: ", ";
}
}
}
div.field_type_d_evenement{
.field-item{
font-weight: 400;
}
}
}
section.last-cel{
flex:0 1 auto;
.field_images{
a{
display: block;
width: 12em;
height: 12em;
overflow: hidden;
img{
width: 100%;
height: 100%;
object-fit:contain;
object-position: top right;
}
}
}
}
}
@@ -46,3 +46,8 @@ $layout-anchor: 1112px;
@function fluid-clamp($size, $at: $layout-anchor, $min: 0px) { @function fluid-clamp($size, $at: $layout-anchor, $min: 0px) {
@return clamp(#{px($min)}, #{vw-at($size, $at)}, #{px($size)}); @return clamp(#{px($min)}, #{vw-at($size, $at)}, #{px($size)});
} }
// Tokens dérivés : tailles de référence passées en fluide. Le plancher est
// un choix de design — 70px à l'ancrage et au-dessus (desktop inchangé),
// 56px au plus bas (téléphone).
$header-height-fluid: fluid-clamp($header_height, $min: 40px);
@@ -6,6 +6,8 @@
@use "variables" as *; @use "variables" as *;
@use "fluid" as *; @use "fluid" as *;
@use "../abstracts/nodes-on-liste" as *;
@use "../abstracts/event-calendrier" as *;
@mixin nodefull{ @mixin nodefull{
@@ -25,7 +27,7 @@
>h2.node-title{ >h2.node-title{
position: relative; position: relative;
// font-size: 12em; // font-size: 12em;
font-size: fluid-clamp(12rem, $min: 8rem); // font-size: fluid-clamp(12rem, $min: 8rem);
margin: 0; margin: 0;
&.leshed-svg-export-target{ &.leshed-svg-export-target{
pointer-events: painted; pointer-events: painted;
@@ -33,13 +35,26 @@
} }
} }
.field{
margin-bottom: 1rem;
.field-item{
font-weight: 400;
}
}
.field_artiste_s_invite_s{ .field_artiste_s_invite_s{
font-size: 1.8em; // font-size: 1.8em;
font-weight: 300; font-size: fluid-clamp(1.8rem, $min: 1.134rem);
.field-item{
font-weight: 300;
display: inline-block;
&:not(:last-child):after{
content:", ";
}
}
} }
.field_invite_accompagne_curate_p, .field_invite_accompagne_curate_p,
.field_partenaire_s{ .field_partenaire_s{
margin-top: 1em; // margin-top: 1em;
font-weight: 400; font-weight: 400;
.field-label{ .field-label{
font-weight: $default_fwght; font-weight: $default_fwght;
@@ -48,13 +63,67 @@
// display: inline-block; // display: inline-block;
// } // }
} }
// Pas de marge basse sur le type de projet s'il est immédiatement
// suivi des dates : l'écart de 16px mesuré venait d'ici.
// NB : :has(+ …) — la marge appartient au PRÉCÉDENT, le combinateur
// seul (field_type + field_dates) ne pourrait cibler que le suivant.
div.field_type_de_projet:has(+ div.field_dates){
margin-bottom: 0;
}
.field_dates{ .field_dates{
margin-top: 1em;
time{ time{
font-weight: 400; font-weight: 400;
} }
} }
div.field_projet_s_lie_s{
// margin-top: 2em;
// .field-label{
// margin-bottom: 1em;
// }
>.field-items.multiple{
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: $colsgap;
>.field-item{
flex: 1 0 calc(50% - $colsgap / 2);
max-width: calc(50% - $colsgap / 2);
>article{
@include projetOnListe();
>header{
>h2{
font-size: 3em;
}
}
.field_artiste_s_invite_s{
font-size: 1.134em;
}
}
}
}
}
div.field_evenement_s_lie_s{
article.node-type-evenement.view-mode-calendrier{
@include event_calendar();
>section.content{
>h2.node-title{
font-size: 2.68em;
}
div.field{
margin:0;
p{ margin:0;}
}
}
>section.last-cel{
display: none;
}
}
}
>div.spacer{ >div.spacer{
display: block; display: block;
height: 5em; height: 5em;
@@ -127,7 +196,16 @@
width: 205%;//calc(50% - $colsgap / 2); width: 205%;//calc(50% - $colsgap / 2);
z-index: 100; z-index: 100;
pointer-events: none; pointer-events: none;
>h2.node-title{
font-size: fluid-clamp(12rem, $min: 8rem);
}
} }
// .field_artiste_s_invite_s{
// // font-size: 1.8em;
// font-size: fluid-clamp(1.8rem, $min: 1rem);
// font-weight: 300;
// }
} }
&.right{ &.right{
@@ -212,9 +290,41 @@
div.col.right .field_images .field-item:not(:first-child){ div.col.right .field_images .field-item:not(:first-child){
order: 5; order: 5;
} }
div.col.left > .spacer{ div.col.left > div.field_fichiers{
display: none; order: 6;
}
div.col.left > div.field_partenaire_s{
order:7;
}
div.col.left > div.field_projet_s_lie_s{
order: 8;
}
// NB : div.spacer (et pas .spacer) — la règle de base `>div.spacer{display:block}`
// a une spécificité de (0,4,5) : `.spacer` seul (0,4,4) perdait le cascade
// malgré l'ordre. Égaler la spécificité, laisser la cascade trancher.
div.col.left > div.spacer{
order:20;
}
div.col{
&.left{
>header{
>h2.node-title{
font-size: 5em;
// font-size: fluid-clamp(12rem, $min: 8rem);
}
}
// .field_artiste_s_invite_s{
// .field-item{
// display: inline-block;
// &:not(:last-child):after{
// content:", ";
// }
// }
// }
}
} }
} }
} }
} }
@@ -6,6 +6,7 @@
// \_| |_/\___|\__,_|\__,_|\___|_| // \_| |_/\___|\__,_|\__,_|\___|_|
@use "../abstracts/variables" as *; @use "../abstracts/variables" as *;
@use "../abstracts/fluid" as *;
header[role="banner"]{ header[role="banner"]{
@@ -77,7 +78,7 @@ header[role="banner"]{
// .layout-container : sinon le débord pleine largeur (et donc le // .layout-container : sinon le débord pleine largeur (et donc le
// backdrop-filter) est rogné aux bords du conteneur centré. // backdrop-filter) est rogné aux bords du conteneur centré.
position:fixed; position:fixed;
top:$header_height; top:$header-height-fluid;
left: 0; left: 0;
width:100vw; width:100vw;
padding: 0 calc((100vw - $layout_width) / 2) 0 calc((100vw - $layout_width) / 2); padding: 0 calc((100vw - $layout_width) / 2) 0 calc((100vw - $layout_width) / 2);
@@ -89,7 +90,7 @@ header[role="banner"]{
overflow: hidden; overflow: hidden;
transition-duration: 0.5s; transition-duration: 0.5s;
&[opened]{ &[opened]{
height: calc(100vh - $header_height); height: calc(100vh - $header-height-fluid);
} }
nav#block-leshed-navigationprincipale{ nav#block-leshed-navigationprincipale{
// width: $layout_width; // width: $layout_width;
@@ -8,6 +8,7 @@
// |___/ // |___/
@use "../abstracts/variables" as *; @use "../abstracts/variables" as *;
@use "../abstracts/fluid" as *;
div.layout-container{ div.layout-container{
@@ -22,13 +23,13 @@ div.layout-container{
display: block; display: block;
position: relative; position: relative;
padding: 0.5em 0; padding: 0.5em 0;
flex: 1 1 $header_height; flex: 1 1 $header-height-fluid;
z-index: 100; z-index: 100;
// position: fixed; // position: fixed;
// top:0; // top:0;
// width: 100%; // width: 100%;
height: $header_height; height: $header-height-fluid;
min-height: $header_height; min-height: $header-height-fluid;
} }
main[role="main"]{ main[role="main"]{
flex: 1 1 auto; flex: 1 1 auto;
@@ -18,16 +18,6 @@ article.node-type-evenement.view-mode-full{
@include event-date-time(); @include event-date-time();
} }
div.field_projet_s_lie_s{
margin-top: 2em;
.field-label{
margin-bottom: 1em;
}
article.node-type-projet.view-mode-tableau_liste{
@include projetOnListe();
}
}
} }
@@ -4,68 +4,25 @@
// \ V / | | __/\ V V /\__ \ / ___ \| | | (__| | | | |\ V / __/\__ \ | |___ \ V / __/ | | | __/ | | | | | __/ | | | |_\__ \ // \ V / | | __/\ V V /\__ \ / ___ \| | | (__| | | | |\ V / __/\__ \ | |___ \ V / __/ | | | __/ | | | | | __/ | | | |_\__ \
// \_/ |_|\___| \_/\_/ |___/ /_/ \_\_| \___|_| |_|_| \_/ \___||___/ |_____| \_/ \___|_| |_|\___|_| |_| |_|\___|_| |_|\__|___/ // \_/ |_|\___| \_/\_/ |___/ /_/ \_\_| \___|_| |_|_| \_/ \___||___/ |_____| \_/ \___|_| |_|\___|_| |_| |_|\___|_| |_|\__|___/
@use "../abstracts/variables" as *; @use "../abstracts/event-calendrier" as *;
@use "../abstracts/event-date-time" as *;
div.views-archives-evenements { div.views-archives-evenements {
& > h3{ & > h3{
border-bottom: 1px solid #999; // border-bottom: 1px solid #999;
margin-bottom: 0;
font-size: 2em;
font-weight: 200;
span.month{
font-weight: 100;
}
span.year{
font-weight: 400;
}
} }
article.node-type-evenement.view-mode-calendrier{ article.node-type-evenement.view-mode-calendrier{
// @include evenementListe(); @include event_calendar();
display: flex;
flex-direction: row;
gap: 1em;
header{
flex:0 1 auto;
// width: 5em;
padding:0 1em 0 0;
.field_dates{
@include event-date-time(5em);
flex-direction: column;
align-items: center;
gap: 0.6em;
span.date-sep{
display: block;
width: 1em;
height: 0;
overflow: visible;
transform-origin: center;
transform: rotate(90deg) translateX(0.1em);
line-height: 0;
padding: 0;
}
}
}
section.content{
flex:0 1 auto;
h2.node-title{
font-size: 3em;
}
}
section.last-cel{
flex:0 1 auto;
.field_images{
a{
display: block;
width: 12em;
height: 12em;
overflow: hidden;
img{
width: 100%;
height: 100%;
object-fit:contain;
object-position: top left;
}
}
}
}
} }
} }
@@ -46,18 +46,18 @@
{% if label_hidden %} {% if label_hidden %}
{% if multiple %} {% if multiple %}
<div{{ attributes.addClass("field-items").addClass("multiple") }}> <div{{ attributes.addClass("field").addClass("field-items").addClass("multiple") }}>
{% for item in items %} {% for item in items %}
<div{{ item.attributes.addClass("field-item") }}>{{ item.content }}</div> <div{{ item.attributes.addClass("field-item") }}>{{ item.content }}</div>
{% endfor %} {% endfor %}
</div> </div>
{% else %} {% else %}
{% for item in items %} {% for item in items %}
<div{{ attributes.addClass("field-item") }}>{{ item.content }}</div> <div{{ attributes.addClass("field").addClass("field-item") }}>{{ item.content }}</div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% else %} {% else %}
<div{{ attributes }}> <div{{ attributes.addClass("field") }}>
<div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div> <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
{% if multiple %} {% if multiple %}
<div class="field-items multiple"> <div class="field-items multiple">
@@ -0,0 +1,89 @@
{#
/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* Only method names starting with "get", "has", or "is" and a few common
* methods such as "id", "label", and "bundle" are available. For example:
* - node.getCreatedTime() will return the node creation timestamp.
* - node.hasField('field_example') returns TRUE if the node bundle includes
* field_example. (This does not indicate the presence of a value in this
* field.)
* - node.isPublished() will return whether the node is published or not.
* Calling other methods, such as node.delete(), will result in an exception.
* See \Drupal\node\Entity\Node for a full list of public properties and
* methods for the node object.
* - label: (optional) The title of the node.
* - content: All node items. Use {{ content }} to print them all,
* or print a subset such as {{ content.field_example }}. Use
* {{ content|without('field_example') }} to temporarily suppress the printing
* of a given child element.
* - author_picture: The node author user entity, rendered using the "compact"
* view mode.
* - metadata: Metadata for this node.
* - date: (optional) Themed creation date field.
* - author_name: (optional) Themed author name field.
* - url: Direct URL of the current node.
* - display_submitted: Whether submission information should be displayed.
* - attributes: HTML attributes for the containing element.
* The attributes.class element may contain one or more of the following
* classes:
* - node: The current template type (also known as a "theming hook").
* - node--type-[type]: The current node type. For example, if the node is an
* "Article" it would result in "node--type-article". Note that the machine
* name will often be in a short form of the human readable label.
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a
* teaser would result in: "node--view-mode-teaser", and
* full: "node--view-mode-full".
* The following are controlled through the node publishing options.
* - node--promoted: Appears on nodes promoted to the front page.
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in
* teaser listings.
* - node--unpublished: Appears on unpublished nodes visible only to site
* admins.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - content_attributes: Same as attributes, except applied to the main
* content tag that appears in the template.
* - author_attributes: Same as attributes, except applied to the author of
* the node tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
* - view_mode: View mode; for example, "teaser" or "full".
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
* - page: Flag for the full page state. Will be true if view_mode is 'full'.
*
* @see template_preprocess_node()
*
* @ingroup themeable
*/
#}
{#
{% if content.field_images.getvalue|length %}
{% set attributes = attributes.addClass('has-image') %}
{% endif %} #}
<article{{ attributes }}>
{# {{ title_prefix }} #}
{# {% if label and not page %} #}
<header>
<h2{{ title_attributes }}>
<a href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{{ content.field_images }}
</header>
{# {% endif %} #}
{# {{ title_suffix }} #}
<div{{ content_attributes }}>
{{ content|without('field_images') }}
</div>
</article>