From 67cf13da9de67c1d15cf8ef6854c8fc600f1b6f6 Mon Sep 17 00:00:00 2001 From: bach Date: Tue, 21 Oct 2025 20:32:53 +0200 Subject: [PATCH] Page Projet --- composer.json | 1 + composer.lock | 76 +++- ..._view_display.node.projet.projets_lies.yml | 69 ++++ ..._view_display.node.site.site_du_projet.yml | 85 +++++ ...ore.entity_view_mode.node.projets_lies.yml | 11 + ...e.entity_view_mode.node.site_du_projet.yml | 11 + config/sync/core.extension.yml | 1 + ...age_variant.node_view-panels_variant-0.yml | 29 +- ...age_variant.node_view-panels_variant-1.yml | 244 ++++++++++++ config/sync/views.view.projets.yml | 346 ++++++++++++++++++ 10 files changed, 868 insertions(+), 5 deletions(-) create mode 100644 config/sync/core.entity_view_display.node.projet.projets_lies.yml create mode 100644 config/sync/core.entity_view_display.node.site.site_du_projet.yml create mode 100644 config/sync/core.entity_view_mode.node.projets_lies.yml create mode 100644 config/sync/core.entity_view_mode.node.site_du_projet.yml create mode 100644 config/sync/page_manager.page_variant.node_view-panels_variant-1.yml create mode 100644 config/sync/views.view.projets.yml diff --git a/composer.json b/composer.json index 7c6c032..4aed053 100644 --- a/composer.json +++ b/composer.json @@ -41,6 +41,7 @@ "drupal/social_media_links": "^2.9", "drupal/structure_sync": "^2.0", "drupal/verf": "^2.1", + "drupal/views_argument_token": "^2.0", "drupal/views_autocomplete_filters": "^2.0", "drupal/views_block_area": "^1.0@beta", "drupal/views_bulk_operations": "^4.4", diff --git a/composer.lock b/composer.lock index 1006eea..5b0b2dd 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b30f53b1f8d4db7819e89530f16ad5e3", + "content-hash": "cf235184fedb5ff9016eeb5ccb363251", "packages": [ { "name": "asm89/stack-cors", @@ -7872,6 +7872,80 @@ "source": "https://git.drupalcode.org/project/video_embed_field" } }, + { + "name": "drupal/views_argument_token", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/views_argument_token.git", + "reference": "2.0.3" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/views_argument_token-2.0.3.zip", + "reference": "2.0.3", + "shasum": "91a4cc65e4864971133525c3e79a4c84ef46d688" + }, + "require": { + "drupal/core": "^8 || ^9 || ^10 || ^11", + "drupal/token": "^1.9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "2.0.3", + "datestamp": "1742556708", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "eme", + "homepage": "https://www.drupal.org/u/eme" + }, + { + "name": "Mohamed Anis Taktak", + "homepage": "https://www.drupal.org/u/matio89" + }, + { + "name": "Dakwamine", + "homepage": "https://www.drupal.org/u/dakwamine" + }, + { + "name": "Stephen Mulvihill", + "homepage": "https://www.drupal.org/u/smulvih2" + }, + { + "name": "mh.marouan", + "homepage": "https://www.drupal.org/user/3203501" + }, + { + "name": "MichaelB", + "homepage": "https://www.drupal.org/user/2309046" + }, + { + "name": "smulvih2", + "homepage": "https://www.drupal.org/user/795442" + }, + { + "name": "snake_plissken", + "homepage": "https://www.drupal.org/user/3624793" + } + ], + "description": "Views Token Argument allows you to use token as contextual filter for Views.", + "homepage": "http://drupal.org/project/views_argument_token", + "support": { + "source": "https://git.drupalcode.org/project/views_argument_token", + "issues": "https://www.drupal.org/project/issues/views_argument_token" + } + }, { "name": "drupal/views_autocomplete_filters", "version": "2.0.3", diff --git a/config/sync/core.entity_view_display.node.projet.projets_lies.yml b/config/sync/core.entity_view_display.node.projet.projets_lies.yml new file mode 100644 index 0000000..5b54b4c --- /dev/null +++ b/config/sync/core.entity_view_display.node.projet.projets_lies.yml @@ -0,0 +1,69 @@ +uuid: 00c3ff8f-1e7f-4a7f-ade9-55cc24f0bc69 +langcode: fr +status: true +dependencies: + config: + - core.entity_view_mode.node.projets_lies + - field.field.node.projet.field_documents + - field.field.node.projet.field_infos + - field.field.node.projet.field_intro + - field.field.node.projet.field_laureats + - field.field.node.projet.field_liens + - field.field.node.projet.field_nom_de_l_equipe + - field.field.node.projet.field_parties_projet + - field.field.node.projet.field_site_projet + - node.type.projet + module: + - smart_trim +id: node.projet.projets_lies +targetEntityType: node +bundle: projet +mode: projets_lies +content: + field_laureats: + type: boolean + label: visually_hidden + settings: + format: custom + format_custom_false: '' + format_custom_true: Lauréat + third_party_settings: { } + weight: 0 + region: content + field_nom_de_l_equipe: + type: smart_trim + label: visually_hidden + settings: + trim_length: 600 + trim_type: chars + trim_suffix: '' + wrap_output: false + wrap_class: trimmed + more: + display_link: true + target_blank: false + link_trim_only: false + class: more-link + text: "voir l'équipe" + aria_label: 'Read more about [node:title]' + summary_handler: full + trim_options: + text: false + trim_zero: false + replace_tokens: false + third_party_settings: { } + weight: 1 + region: content +hidden: + created: true + field_documents: true + field_infos: true + field_intro: true + field_liens: true + field_parties_projet: true + field_site_projet: true + langcode: true + links: true + search_api_excerpt: true + title: true + uid: true diff --git a/config/sync/core.entity_view_display.node.site.site_du_projet.yml b/config/sync/core.entity_view_display.node.site.site_du_projet.yml new file mode 100644 index 0000000..7ae7427 --- /dev/null +++ b/config/sync/core.entity_view_display.node.site.site_du_projet.yml @@ -0,0 +1,85 @@ +uuid: 647d64e8-38a7-46ba-b037-42fe8f6c7b57 +langcode: fr +status: true +dependencies: + config: + - core.entity_view_mode.node.site_du_projet + - field.field.node.site.field_departement_s + - field.field.node.site.field_documents + - field.field.node.site.field_geofield + - field.field.node.site.field_images + - field.field.node.site.field_liens_site + - field.field.node.site.field_nom_de_la_commune_nb_d_hab + - field.field.node.site.field_nom_du_qpv_nb_d_hab + - field.field.node.site.field_parties + - field.field.node.site.field_poid + - field.field.node.site.field_porteur_s_de_site + - field.field.node.site.field_programme_de_l_etat + - field.field.node.site.field_projets_lie + - field.field.node.site.field_region + - field.field.node.site.field_sous_titre + - node.type.site + module: + - manage_display + - smart_trim +id: node.site.site_du_projet +targetEntityType: node +bundle: site +mode: site_du_projet +content: + field_sous_titre: + type: smart_trim + label: visually_hidden + settings: + trim_length: 600 + trim_type: chars + trim_suffix: '' + wrap_output: false + wrap_class: trimmed + more: + display_link: true + target_blank: false + link_trim_only: false + class: more-link + text: 'Voir le site' + aria_label: 'Read more about [node:title]' + summary_handler: full + trim_options: + text: false + trim_zero: false + replace_tokens: false + third_party_settings: { } + weight: 1 + region: content + links: + settings: { } + third_party_settings: { } + weight: 2 + region: content + title: + type: title + label: hidden + settings: + link_to_entity: true + tag: h2 + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + field_departement_s: true + field_documents: true + field_geofield: true + field_images: true + field_liens_site: true + field_nom_de_la_commune_nb_d_hab: true + field_nom_du_qpv_nb_d_hab: true + field_parties: true + field_poid: true + field_porteur_s_de_site: true + field_programme_de_l_etat: true + field_projets_lie: true + field_region: true + langcode: true + search_api_excerpt: true + uid: true diff --git a/config/sync/core.entity_view_mode.node.projets_lies.yml b/config/sync/core.entity_view_mode.node.projets_lies.yml new file mode 100644 index 0000000..64d4c97 --- /dev/null +++ b/config/sync/core.entity_view_mode.node.projets_lies.yml @@ -0,0 +1,11 @@ +uuid: a23ed13e-8f15-4bc6-b38f-4162aea8c54e +langcode: fr +status: true +dependencies: + module: + - node +id: node.projets_lies +label: 'Projets liés' +description: '' +targetEntityType: node +cache: true diff --git a/config/sync/core.entity_view_mode.node.site_du_projet.yml b/config/sync/core.entity_view_mode.node.site_du_projet.yml new file mode 100644 index 0000000..1268d91 --- /dev/null +++ b/config/sync/core.entity_view_mode.node.site_du_projet.yml @@ -0,0 +1,11 @@ +uuid: ca728d87-603b-454e-b6ee-f176576b2630 +langcode: fr +status: true +dependencies: + module: + - node +id: node.site_du_projet +label: 'Site du projet' +description: '' +targetEntityType: node +cache: true diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index fbf677b..d87dda4 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -121,6 +121,7 @@ module: user: 0 verf: 0 video_embed_field: 0 + views_argument_token: 0 views_autocomplete_filters: 0 views_block_area: 0 views_bulk_edit: 0 diff --git a/config/sync/page_manager.page_variant.node_view-panels_variant-0.yml b/config/sync/page_manager.page_variant.node_view-panels_variant-0.yml index d0d8871..573b56d 100644 --- a/config/sync/page_manager.page_variant.node_view-panels_variant-0.yml +++ b/config/sync/page_manager.page_variant.node_view-panels_variant-0.yml @@ -84,8 +84,8 @@ variant_settings: listStyle: span listSeparator: ', ' third_party_settings: { } - region: third - weight: -5 + region: second + weight: 3 uuid: 0f521934-a0b6-49c7-9dd0-b984c8d80ef3 css_classes: - '' @@ -109,8 +109,8 @@ variant_settings: rel: nofollow target: _blank third_party_settings: { } - region: third - weight: -4 + region: second + weight: 4 uuid: caf72351-9011-41f0-9bf1-d12eb70903c7 css_classes: - '' @@ -288,6 +288,27 @@ variant_settings: - '' html_id: '' css_styles: '' + 0e71ab04-a5cc-4eca-a7c2-a18fc9d0b7e1: + id: 'entity_field:node:field_projets_lie' + label: 'Les équipes selectionnées' + label_display: visible + provider: ctools_block + context_mapping: + entity: node + formatter: + type: entity_reference_entity_view + weight: 0 + label: visually_hidden + settings: + view_mode: projets_lies + third_party_settings: { } + region: third + weight: -5 + uuid: 0e71ab04-a5cc-4eca-a7c2-a18fc9d0b7e1 + css_classes: + - '' + html_id: '' + css_styles: '' page_title: '' layout: layout_threecol_25_50_25 layout_settings: diff --git a/config/sync/page_manager.page_variant.node_view-panels_variant-1.yml b/config/sync/page_manager.page_variant.node_view-panels_variant-1.yml new file mode 100644 index 0000000..66e47bb --- /dev/null +++ b/config/sync/page_manager.page_variant.node_view-panels_variant-1.yml @@ -0,0 +1,244 @@ +uuid: bc3f6ee1-42bf-4035-9506-e9199f9793c6 +langcode: fr +status: true +dependencies: + config: + - page_manager.page.node_view + - views.view.projets + module: + - ctools_block + - node + - panels + - views +id: node_view-panels_variant-1 +label: Projets +weight: 0 +variant: panels_variant +variant_settings: + id: panels_variant + label: null + weight: 0 + uuid: ff1301d6-7ca7-44b9-86ac-6142f1c6d76c + blocks: + 3a70031f-a0e8-452f-8683-75be73c1ed8c: + id: 'entity_field:node:title' + label: Titre + label_display: '0' + provider: ctools_block + context_mapping: + entity: node + formatter: + type: title + weight: 0 + label: visually_hidden + settings: + link_to_entity: false + tag: h2 + third_party_settings: { } + region: second + weight: -3 + uuid: 3a70031f-a0e8-452f-8683-75be73c1ed8c + css_classes: + - '' + html_id: '' + css_styles: '' + 68a34c64-8824-43aa-8621-e373ff8816bb: + id: 'entity_field:node:field_nom_de_l_equipe' + label: "Nom de l'équipe" + label_display: '0' + provider: ctools_block + context_mapping: + entity: node + formatter: + type: title + weight: 0 + label: visually_hidden + settings: + link_to_entity: false + tag: h3 + third_party_settings: { } + region: second + weight: -2 + uuid: 68a34c64-8824-43aa-8621-e373ff8816bb + css_classes: + - '' + html_id: '' + css_styles: '' + 679e5933-ef21-4484-a2f2-57cc28f295a9: + id: 'entity_field:node:field_infos' + label: Infos + label_display: '0' + provider: ctools_block + context_mapping: + entity: node + formatter: + type: entity_reference_revisions_entity_view + weight: 0 + label: visually_hidden + settings: + view_mode: default + third_party_settings: { } + region: second + weight: -1 + uuid: 679e5933-ef21-4484-a2f2-57cc28f295a9 + css_classes: + - '' + html_id: '' + css_styles: '' + 97e005cf-3312-45c2-bc0c-bc458288dce2: + id: 'entity_field:node:field_parties_projet' + label: Parties + label_display: '0' + provider: ctools_block + context_mapping: + entity: node + formatter: + type: entity_reference_revisions_entity_view + weight: 0 + label: visually_hidden + settings: + view_mode: default + third_party_settings: { } + region: second + weight: 0 + uuid: 97e005cf-3312-45c2-bc0c-bc458288dce2 + css_classes: + - '' + html_id: '' + css_styles: '' + 6bc17db2-ea4c-41c7-88ba-b18fd008f4dd: + id: 'entity_field:node:field_site_projet' + label: 'Site lié' + label_display: '0' + provider: ctools_block + context_mapping: + entity: node + formatter: + type: entity_reference_entity_view + weight: 0 + label: visually_hidden + settings: + view_mode: site_du_projet + third_party_settings: { } + region: first + weight: -3 + uuid: 6bc17db2-ea4c-41c7-88ba-b18fd008f4dd + css_classes: + - '' + html_id: '' + css_styles: '' + cc0aaf68-3351-44d0-8209-f46194675e5c: + id: 'entity_field:node:field_documents' + label: Documents + label_display: '0' + provider: ctools_block + context_mapping: + entity: node + formatter: + type: file_default + weight: 0 + label: visually_hidden + settings: + use_description_as_link_text: true + third_party_settings: { } + region: second + weight: 1 + uuid: cc0aaf68-3351-44d0-8209-f46194675e5c + css_classes: + - '' + html_id: '' + css_styles: '' + e6b95080-f986-461f-bf85-b1296574dd70: + id: 'entity_field:node:field_liens' + label: Liens + label_display: '0' + provider: ctools_block + context_mapping: + entity: node + formatter: + type: link + weight: 0 + label: visually_hidden + settings: + trim_length: 80 + url_only: false + url_plain: false + rel: nofollow + target: _blank + third_party_settings: { } + region: second + weight: 2 + uuid: e6b95080-f986-461f-bf85-b1296574dd70 + css_classes: + - '' + html_id: '' + css_styles: '' + 9fbc6f5e-4173-4ea7-a977-e776decb15ed: + id: 'views_block:projets-block_1' + label: '' + label_display: visible + provider: views + context_mapping: { } + views_label: '' + items_per_page: none + fields: + field_nom_de_l_equipe: + hide: false + view_node: + hide: false + exposed: + filter-field_site_projet_target_id: + plugin_id: numeric + value: '[node:field_site_projet:target_id]' + exposed: false + expose: + use_operator: false + region: third + weight: 0 + uuid: 9fbc6f5e-4173-4ea7-a977-e776decb15ed + css_classes: + - '' + html_id: '' + css_styles: '' + e6faff4e-cd95-4e24-8185-645daea4b545: + id: 'entity_field:node:field_map_block' + label: 'map block' + label_display: visible + provider: ctools_block + context_mapping: + entity: node + formatter: + type: block_field + weight: 0 + label: above + settings: { } + third_party_settings: { } + region: first + weight: -4 + uuid: e6faff4e-cd95-4e24-8185-645daea4b545 + css_classes: + - '' + html_id: '' + css_styles: '' + page_title: '' + layout: layout_threecol_25_50_25 + layout_settings: + label: Projets + builder: standard + storage_type: page_manager + storage_id: node_view-panels_variant-1 + css_classes: + - '' + html_id: '' + css_styles: '' +page: node_view +selection_criteria: + - + id: 'entity_bundle:node' + negate: false + context_mapping: + node: node + bundles: + projet: projet +selection_logic: and +static_context: { } diff --git a/config/sync/views.view.projets.yml b/config/sync/views.view.projets.yml new file mode 100644 index 0000000..e49bd8e --- /dev/null +++ b/config/sync/views.view.projets.yml @@ -0,0 +1,346 @@ +uuid: d4371ee6-c291-425c-b801-9372731956ab +langcode: fr +status: true +dependencies: + config: + - field.storage.node.field_nom_de_l_equipe + - node.type.projet + module: + - manage_display + - node + - user +id: projets +label: Projets +module: views +description: '' +tag: '' +base_table: node_field_data +base_field: nid +display: + default: + id: default + display_title: Default + display_plugin: default + position: 0 + display_options: + title: 'Les autres équipes sélectionnées' + fields: + field_nom_de_l_equipe: + id: field_nom_de_l_equipe + table: node__field_nom_de_l_equipe + field: field_nom_de_l_equipe + 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: title + settings: + link_to_entity: true + tag: h3 + 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 + view_node: + id: view_node + table: node + field: view_node + relationship: none + group_type: group + admin_label: '' + entity_type: node + plugin_id: entity_link + 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 + text: "voir l'équipe" + output_url_as_text: false + absolute: false + pager: + type: some + options: + offset: 0 + items_per_page: 5 + exposed_form: + type: basic + options: + submit_button: Appliquer + reset_button: false + reset_button_label: Réinitialiser + exposed_sorts_label: 'Trier par' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + access: + type: perm + options: + perm: 'access content' + cache: + type: tag + options: { } + empty: { } + sorts: + created: + id: created + table: node_field_data + field: created + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: created + plugin_id: date + order: DESC + expose: + label: '' + field_identifier: '' + exposed: false + granularity: second + arguments: + nid: + id: nid + table: node_field_data + field: nid + relationship: none + group_type: group + admin_label: '' + entity_type: node + entity_field: nid + plugin_id: node_nid + default_action: default + exception: + value: all + title_enable: false + title: All + title_enable: false + title: '' + default_argument_type: node + default_argument_options: { } + 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 + not: true + field_site_projet_target_id: + id: field_site_projet_target_id + table: node__field_site_projet + field: field_site_projet_target_id + relationship: none + group_type: group + admin_label: '' + plugin_id: entity_target_id + default_action: default + exception: + value: all + title_enable: false + title: All + title_enable: false + title: '' + default_argument_type: token + default_argument_options: + argument: '[node:field_site_projet:target_id]' + process: 0 + and_or: + + all_option: 1 + debug: 0 + 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 + not: 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 + entity_type: node + entity_field: type + plugin_id: bundle + value: + projet: projet + style: + type: default + row: + type: fields + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: { } + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - 'user.node_grants:view' + - user.permissions + tags: + - 'config:field.storage.node.field_nom_de_l_equipe' + block_1: + id: block_1 + display_title: 'Block autres projets du site' + display_plugin: block + position: 1 + display_options: + display_description: '' + exposed_block: true + display_extenders: + matomo: + enabled: false + keyword_gets: '' + keyword_behavior: first + keyword_concat_separator: ' ' + category_behavior: none + category_gets: '' + category_concat_separator: ' ' + category_fallback: '' + category_facets: { } + category_facets_concat_separator: ', ' + simple_sitemap_display_extender: { } + block_description: 'Autres projets du site' + allow: + items_per_page: false + offset: '0' + pager: '0' + hide_fields: '0' + sort_fields: '0' + configure_filters: configure_filters + disable_filters: '0' + configure_sorts: '0' + 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_nom_de_l_equipe'