diff --git a/config/sync/core.date_format.d_d_m.yml b/config/sync/core.date_format.d_d_m.yml new file mode 100644 index 0000000..04edab4 --- /dev/null +++ b/config/sync/core.date_format.d_d_m.yml @@ -0,0 +1,8 @@ +uuid: 5d5bf4fc-bbeb-4f86-b997-78394100320d +langcode: fr +status: true +dependencies: { } +id: d_d_m +label: 'D d M' +locked: false +pattern: 'D d M' diff --git a/config/sync/core.date_format.m_y.yml b/config/sync/core.date_format.m_y.yml new file mode 100644 index 0000000..865b89d --- /dev/null +++ b/config/sync/core.date_format.m_y.yml @@ -0,0 +1,8 @@ +uuid: 5a07a0e8-42b3-4756-b58f-b51b71d4c1c8 +langcode: fr +status: true +dependencies: { } +id: m_y +label: m.y +locked: false +pattern: m.y diff --git a/config/sync/core.entity_view_display.node.evenement.calendrier.yml b/config/sync/core.entity_view_display.node.evenement.calendrier.yml new file mode 100644 index 0000000..175bdf0 --- /dev/null +++ b/config/sync/core.entity_view_display.node.evenement.calendrier.yml @@ -0,0 +1,84 @@ +uuid: bab7eac7-0930-4c50-b139-bd22d78220b7 +langcode: fr +status: true +dependencies: + config: + - core.entity_view_mode.node.calendrier + - 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 + - node.type.evenement + module: + - datetime_range + - layout_builder + - text + - user +third_party_settings: + layout_builder: + enabled: false + allow_custom: false +id: node.evenement.calendrier +targetEntityType: node +bundle: evenement +mode: calendrier +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: d_d_m + from_to: both + separator: '' + third_party_settings: { } + weight: 0 + region: content + field_infos_pratiques: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 4 + region: content + field_lieu: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 2 + region: content + field_type_d_evenement: + type: entity_reference_label + label: hidden + settings: + link: false + third_party_settings: { } + weight: 1 + region: content +hidden: + body: true + field_images: 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 diff --git a/config/sync/core.entity_view_display.node.evenement.full.yml b/config/sync/core.entity_view_display.node.evenement.full.yml index 1da9362..3d4f9dc 100644 --- a/config/sync/core.entity_view_display.node.evenement.full.yml +++ b/config/sync/core.entity_view_display.node.evenement.full.yml @@ -102,10 +102,11 @@ content: weight: 7 region: content field_projet_s_lie_s: - type: entity_reference_label + type: entity_reference_entity_view label: above settings: - link: true + view_mode: tableau_liste + link: false third_party_settings: { } weight: 8 region: content diff --git a/config/sync/core.entity_view_mode.node.calendrier.yml b/config/sync/core.entity_view_mode.node.calendrier.yml new file mode 100644 index 0000000..a051d52 --- /dev/null +++ b/config/sync/core.entity_view_mode.node.calendrier.yml @@ -0,0 +1,11 @@ +uuid: 07a424be-c826-4554-9c1c-23d5d96e48fa +langcode: fr +status: true +dependencies: + module: + - node +id: node.calendrier +label: calendrier +description: '' +targetEntityType: node +cache: true diff --git a/config/sync/views.view.archives.yml b/config/sync/views.view.archives.yml index 5961b33..3bc4981 100644 --- a/config/sync/views.view.archives.yml +++ b/config/sync/views.view.archives.yml @@ -3,12 +3,14 @@ langcode: fr status: true dependencies: config: - - core.entity_view_mode.node.tableau_liste + - core.entity_view_mode.node.calendrier + - field.storage.node.field_dates - node.type.evenement - node.type.projet - system.menu.main module: - datetime + - datetime_range - node - user id: archives @@ -27,53 +29,11 @@ display: display_options: title: Archives fields: - title: - id: title - table: node_field_data - field: title - relationship: none - group_type: group - admin_label: '' - entity_type: node - entity_field: title + field_dates: + id: field_dates + table: node__field_dates + field: field_dates plugin_id: field - label: '' - 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 pager: type: none options: @@ -168,11 +128,20 @@ display: group_items: { } style: type: default + options: + grouping: + - + field: field_dates + rendered: true + rendered_strip: false + row_class: '' + default_row_class: true + uses_fields: true row: type: 'entity:node' options: relationship: none - view_mode: tableau_liste + view_mode: calendrier query: type: views_query options: @@ -193,7 +162,8 @@ display: - 'languages:language_interface' - 'user.node_grants:view' - user.permissions - tags: { } + tags: + - 'config:field.storage.node.field_dates' page_1: id: page_1 display_title: 'Page Projets' @@ -201,6 +171,72 @@ display: position: 1 display_options: title: 'Archives Projets' + fields: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: title + plugin_id: field + 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 + 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 filters: status: id: status @@ -262,6 +298,7 @@ display: defaults: title: false css_class: false + fields: false filters: false filter_groups: false css_class: 'views-archives views-archives-projets' @@ -292,6 +329,73 @@ display: position: 2 display_options: title: 'Archives Évenments' + fields: + field_dates: + id: field_dates + table: node__field_dates + field: field_dates + relationship: none + group_type: group + admin_label: '' + plugin_id: field + 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 + 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 filters: status: id: status @@ -353,6 +457,7 @@ display: defaults: title: false css_class: false + fields: false filters: false filter_groups: false css_class: 'views-archives views-archives-evenements' @@ -375,4 +480,5 @@ display: - 'languages:language_interface' - 'user.node_grants:view' - user.permissions - tags: { } + tags: + - 'config:field.storage.node.field_dates' diff --git a/web/themes/custom/leshed/assets/js/titles.js b/web/themes/custom/leshed/assets/js/titles.js index 78a3738..aa757fd 100644 --- a/web/themes/custom/leshed/assets/js/titles.js +++ b/web/themes/custom/leshed/assets/js/titles.js @@ -12,7 +12,9 @@ const TITLE_SELECTORS = '\ article.node-type-evenement>header>h2,\ article.node-type-evenement>header>.field_dates>time,\ article.node-type-evenement.view-mode-full h2.node-title,\ - article.node-type-evenement.view-mode-full .field_dates.digit-dates span.date-part\ + article.node-type-evenement.view-mode-full .field_dates.digit-dates span.date-part,\ + 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 diff --git a/web/themes/custom/leshed/assets/scss/main.scss b/web/themes/custom/leshed/assets/scss/main.scss index 9bec818..a967411 100644 --- a/web/themes/custom/leshed/assets/scss/main.scss +++ b/web/themes/custom/leshed/assets/scss/main.scss @@ -620,13 +620,14 @@ article.node-type-evenement.view-mode-full{ -// __ ___ _ _ _ -// \ \ / (_) _____ __ / \ _ __ ___| |__ (_)_ _____ ___ -// \ \ / /| |/ _ \ \ /\ / / / _ \ | '__/ __| '_ \| \ \ / / _ \/ __| -// \ V / | | __/\ V V / / ___ \| | | (__| | | | |\ V / __/\__ \ -// \_/ |_|\___| \_/\_/ /_/ \_\_| \___|_| |_|_| \_/ \___||___/ -@mixin views-archives{ +// __ ___ _ _ _ ____ _ _ +// \ \ / (_) _____ _____ / \ _ __ ___| |__ (_)_ _____ ___ | _ \ _ __ ___ (_) ___| |_ +// \ \ / /| |/ _ \ \ /\ / / __| / _ \ | '__/ __| '_ \| \ \ / / _ \/ __| | |_) | '__/ _ \| |/ _ \ __| +// \ V / | | __/\ V V /\__ \ / ___ \| | | (__| | | | |\ V / __/\__ \ | __/| | | (_) | | __/ |_ +// \_/ |_|\___| \_/\_/ |___/ /_/ \_\_| \___|_| |_|_| \_/ \___||___/ |_| |_| \___// |\___|\__| +// |__/ +div.views-archives-projets{ display: flex; flex-direction: row; flex-wrap: wrap; @@ -636,16 +637,6 @@ article.node-type-evenement.view-mode-full{ flex: 1 0 calc(25% - $colsgap); width: calc(25% - $colsgap); } -} - -// __ ___ _ _ _ ____ _ _ -// \ \ / (_) _____ _____ / \ _ __ ___| |__ (_)_ _____ ___ | _ \ _ __ ___ (_) ___| |_ -// \ \ / /| |/ _ \ \ /\ / / __| / _ \ | '__/ __| '_ \| \ \ / / _ \/ __| | |_) | '__/ _ \| |/ _ \ __| -// \ V / | | __/\ V V /\__ \ / ___ \| | | (__| | | | |\ V / __/\__ \ | __/| | | (_) | | __/ |_ -// \_/ |_|\___| \_/\_/ |___/ /_/ \_\_| \___|_| |_|_| \_/ \___||___/ |_| |_| \___// |\___|\__| -// |__/ -div.views-archives-projets{ - @include views-archives(); article.node-type-projet.view-mode-tableau_liste{ @@ -664,17 +655,35 @@ div.views-archives-projets{ // \ \ / /| |/ _ \ \ /\ / / __| / _ \ | '__/ __| '_ \| \ \ / / _ \/ __| | _| \ \ / / _ \ '_ \ / _ \ '_ ` _ \ / _ \ '_ \| __/ __| // \ V / | | __/\ V V /\__ \ / ___ \| | | (__| | | | |\ V / __/\__ \ | |___ \ V / __/ | | | __/ | | | | | __/ | | | |_\__ \ // \_/ |_|\___| \_/\_/ |___/ /_/ \_\_| \___|_| |_|_| \_/ \___||___/ |_____| \_/ \___|_| |_|\___|_| |_| |_|\___|_| |_|\__|___/ -div.views-archives-evenementskorganizer { - @include views-archives(); +div.views-archives-evenements { - article.node-type-evenement.view-mode-tableau_liste{ + & > h3{ + border-bottom: 1px solid #999; + } - @include evenementListe(); - >header{ - >h2{ + article.node-type-evenement.view-mode-calendrier{ + display: flex; + flex-direction: row; + // @include evenementListe(); + header{ + flex:0 1 auto; + // width: 5em; + padding:1em; + + .field_dates{ + time{ + font-size: 5em; + } + } + } + + div.content{ + flex:0 1 auto; + h2.node-title{ font-size: 3em; } } + } } diff --git a/web/themes/custom/leshed/templates/node--evenement--calendrier.html.twig b/web/themes/custom/leshed/templates/node--evenement--calendrier.html.twig new file mode 100644 index 0000000..a3795b6 --- /dev/null +++ b/web/themes/custom/leshed/templates/node--evenement--calendrier.html.twig @@ -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 %} #} + + + + {# {{ title_prefix }} #} + {# {% if label and not page %} #} +
+ {{ content.field_dates }} +
+ {# {% endif %} #} + {# {{ title_suffix }} #} + + + + + {{ label }} + + {{ content|without('field_dates') }} + + +