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:
- group_description
- group_liens
- group_media
label: Tabs
region: content
parent_name: ''
@@ -110,8 +111,8 @@ third_party_settings:
- field_images
label: Media
region: content
parent_name: ''
weight: 4
parent_name: group_tabs
weight: 13
format_type: tab
format_settings:
classes: ''
@@ -7,6 +7,7 @@ dependencies:
- 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
@@ -125,6 +126,7 @@ third_party_settings:
group_liens:
children:
- field_projet_s_lie_s
- field_evenement_s_lie_s
label: liens
region: content
parent_name: group_tabs
@@ -177,6 +179,16 @@ content:
region: content
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:
type: file_generic
weight: 8
@@ -38,7 +38,7 @@ content:
settings:
link: false
third_party_settings: { }
weight: 3
weight: 1
region: content
field_dates:
type: daterange_default
@@ -78,7 +78,7 @@ content:
settings:
link: false
third_party_settings: { }
weight: 2
weight: 3
region: content
field_type_d_evenement:
type: entity_reference_label
@@ -86,7 +86,7 @@ content:
settings:
link: true
third_party_settings: { }
weight: 1
weight: 2
region: content
hidden:
body: true
@@ -39,7 +39,7 @@ content:
settings:
link: false
third_party_settings: { }
weight: 3
weight: 1
region: content
field_dates:
type: daterange_default
@@ -84,7 +84,7 @@ content:
settings:
link: false
third_party_settings: { }
weight: 1
weight: 2
region: content
field_partenaire_s:
type: entity_reference_label
@@ -115,7 +115,7 @@ content:
settings:
link: false
third_party_settings: { }
weight: 2
weight: 3
region: content
links:
settings: { }
@@ -105,7 +105,7 @@ content:
type: entity_reference_entity_view
label: above
settings:
view_mode: tableau_liste
view_mode: lie
link: false
third_party_settings: { }
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.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
@@ -51,7 +52,15 @@ content:
from_to: both
separator: '-'
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
field_fichiers:
type: file_default
@@ -116,7 +125,7 @@ content:
settings:
link: false
third_party_settings: { }
weight: 3
weight: 2
region: content
links:
settings: { }
@@ -7,6 +7,7 @@ dependencies:
- 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
@@ -58,7 +59,16 @@ content:
from_to: both
separator: '-'
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
field_fichiers:
type: file_default
@@ -66,7 +76,7 @@ content:
settings:
use_description_as_link_text: true
third_party_settings: { }
weight: 9
weight: 6
region: content
field_images:
type: image_caption
@@ -77,7 +87,7 @@ content:
image_loading:
attribute: lazy
third_party_settings: { }
weight: 10
weight: 11
region: content
field_infos_pratiques:
type: text_default
@@ -100,22 +110,23 @@ content:
settings:
link: false
third_party_settings: { }
weight: 6
weight: 7
region: content
field_portage:
type: list_default
label: above
settings: { }
third_party_settings: { }
weight: 7
weight: 8
region: content
field_projet_s_lie_s:
type: entity_reference_label
type: entity_reference_entity_view
label: above
settings:
link: true
view_mode: lie
link: false
third_party_settings: { }
weight: 8
weight: 9
region: content
field_type_de_projet:
type: entity_reference_label
@@ -123,7 +134,7 @@ content:
settings:
link: true
third_party_settings: { }
weight: 3
weight: 2
region: content
hidden:
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.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
@@ -82,6 +83,7 @@ content:
weight: 3
region: content
hidden:
field_evenement_s_lie_s: true
field_fichiers: true
field_infos_pratiques: true
field_invite_accompagne_curate_p: true
@@ -7,6 +7,7 @@ dependencies:
- 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
@@ -73,6 +74,7 @@ content:
region: content
hidden:
field_dates: true
field_evenement_s_lie_s: true
field_fichiers: true
field_invite_accompagne_curate_p: 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
tags:
- '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:
id: page_1
display_title: 'Page Projets'
@@ -410,21 +808,21 @@ display:
tags: { }
page_2:
id: page_2
display_title: 'Page Évenements'
display_title: 'Page Évenements (futures)'
display_plugin: page
position: 2
display_options:
title: 'Les Évenments'
title: 'Les Évenements à venir'
fields:
field_dates:
id: field_dates
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: ''
label: month
exclude: false
alter:
alter_text: false
@@ -457,6 +855,138 @@ display:
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: ''
@@ -464,24 +994,22 @@ display:
empty: ''
hide_empty: false
empty_zero: false
hide_alter_empty: true
click_sort_column: value
type: daterange_default
settings:
timezone_override: ''
format_type: m_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
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: ASC
expose:
label: ''
field_identifier: ''
exposed: false
granularity: second
arguments:
tid:
id: tid
@@ -573,6 +1101,51 @@ display:
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:
@@ -582,7 +1155,7 @@ display:
options:
grouping:
-
field: field_dates
field: nothing
rendered: true
rendered_strip: false
row_class: ''
@@ -599,11 +1172,40 @@ display:
style: false
row: false
fields: false
sorts: false
arguments: false
filters: false
filter_groups: false
header: false
footer: 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 à 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: { }
path: evenements
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-evenement>header>h2,\
article.node-type-evenement.view-mode-full h2.node-title,\
article.node-type-evenement.view-mode-calendrier h2.node-title,\
div.views-archives-evenements > h3 > time\
article.node-type-evenement.view-mode-calendrier h2.node-title\
';
// div.views-archives-evenements > h3 > time\
// Police Epilogue = axe variable `wght` (100–900) uniquement ; l'italique est
// 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) {
@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 "fluid" as *;
@use "../abstracts/nodes-on-liste" as *;
@use "../abstracts/event-calendrier" as *;
@mixin nodefull{
@@ -25,7 +27,7 @@
>h2.node-title{
position: relative;
// font-size: 12em;
font-size: fluid-clamp(12rem, $min: 8rem);
// font-size: fluid-clamp(12rem, $min: 8rem);
margin: 0;
&.leshed-svg-export-target{
pointer-events: painted;
@@ -33,13 +35,26 @@
}
}
.field{
margin-bottom: 1rem;
.field-item{
font-weight: 400;
}
}
.field_artiste_s_invite_s{
font-size: 1.8em;
font-weight: 300;
// font-size: 1.8em;
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_partenaire_s{
margin-top: 1em;
// margin-top: 1em;
font-weight: 400;
.field-label{
font-weight: $default_fwght;
@@ -48,13 +63,67 @@
// 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{
margin-top: 1em;
time{
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{
display: block;
height: 5em;
@@ -127,7 +196,16 @@
width: 205%;//calc(50% - $colsgap / 2);
z-index: 100;
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{
@@ -212,9 +290,41 @@
div.col.right .field_images .field-item:not(:first-child){
order: 5;
}
div.col.left > .spacer{
display: none;
div.col.left > div.field_fichiers{
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/fluid" as *;
header[role="banner"]{
@@ -77,7 +78,7 @@ header[role="banner"]{
// .layout-container : sinon le débord pleine largeur (et donc le
// backdrop-filter) est rogné aux bords du conteneur centré.
position:fixed;
top:$header_height;
top:$header-height-fluid;
left: 0;
width:100vw;
padding: 0 calc((100vw - $layout_width) / 2) 0 calc((100vw - $layout_width) / 2);
@@ -89,7 +90,7 @@ header[role="banner"]{
overflow: hidden;
transition-duration: 0.5s;
&[opened]{
height: calc(100vh - $header_height);
height: calc(100vh - $header-height-fluid);
}
nav#block-leshed-navigationprincipale{
// width: $layout_width;
@@ -8,6 +8,7 @@
// |___/
@use "../abstracts/variables" as *;
@use "../abstracts/fluid" as *;
div.layout-container{
@@ -22,13 +23,13 @@ div.layout-container{
display: block;
position: relative;
padding: 0.5em 0;
flex: 1 1 $header_height;
flex: 1 1 $header-height-fluid;
z-index: 100;
// position: fixed;
// top:0;
// width: 100%;
height: $header_height;
min-height: $header_height;
height: $header-height-fluid;
min-height: $header-height-fluid;
}
main[role="main"]{
flex: 1 1 auto;
@@ -18,16 +18,6 @@ article.node-type-evenement.view-mode-full{
@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 / __/ | | | __/ | | | | | __/ | | | |_\__ \
// \_/ |_|\___| \_/\_/ |___/ /_/ \_\_| \___|_| |_|_| \_/ \___||___/ |_____| \_/ \___|_| |_|\___|_| |_| |_|\___|_| |_|\__|___/
@use "../abstracts/variables" as *;
@use "../abstracts/event-date-time" as *;
@use "../abstracts/event-calendrier" as *;
div.views-archives-evenements {
& > 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{
// @include evenementListe();
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;
}
}
}
}
@include event_calendar();
}
}
@@ -46,18 +46,18 @@
{% if label_hidden %}
{% if multiple %}
<div{{ attributes.addClass("field-items").addClass("multiple") }}>
<div{{ attributes.addClass("field").addClass("field-items").addClass("multiple") }}>
{% for item in items %}
<div{{ item.attributes.addClass("field-item") }}>{{ item.content }}</div>
{% endfor %}
</div>
{% else %}
{% for item in items %}
<div{{ attributes.addClass("field-item") }}>{{ item.content }}</div>
<div{{ attributes.addClass("field").addClass("field-item") }}>{{ item.content }}</div>
{% endfor %}
{% endif %}
{% else %}
<div{{ attributes }}>
<div{{ attributes.addClass("field") }}>
<div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
{% if 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>