From 1da76aeed4a15dfc2d4281d200c9bc9c8c2e0a89 Mon Sep 17 00:00:00 2001 From: bach Date: Tue, 1 Sep 2026 11:31:12 +0200 Subject: [PATCH] fixed presonne field reference in projet & evenement with special form mode (Nom Prenom) --- ...ty_form_display.node.evenement.default.yml | 34 ++++++--- ...ity_form_display.node.personne.default.yml | 6 +- ...splay.node.personne.in_place_reference.yml | 72 +++++++++++++++++++ ...ntity_form_display.node.projet.default.yml | 34 ++++++--- ...tity_form_mode.node.in_place_reference.yml | 11 +++ ...field.field.node.personne.field_prenom.yml | 2 +- web/themes/custom/leshed/leshed.theme | 6 +- 7 files changed, 142 insertions(+), 23 deletions(-) create mode 100644 config/sync/core.entity_form_display.node.personne.in_place_reference.yml create mode 100644 config/sync/core.entity_form_mode.node.in_place_reference.yml diff --git a/config/sync/core.entity_form_display.node.evenement.default.yml b/config/sync/core.entity_form_display.node.evenement.default.yml index 3d53042..662c41e 100644 --- a/config/sync/core.entity_form_display.node.evenement.default.yml +++ b/config/sync/core.entity_form_display.node.evenement.default.yml @@ -3,6 +3,7 @@ langcode: fr status: true dependencies: config: + - core.entity_form_mode.node.in_place_reference - field.field.node.evenement.body - field.field.node.evenement.field_artiste_s_invite_s - field.field.node.evenement.field_dates @@ -16,6 +17,7 @@ dependencies: module: - datetime_range - field_group + - inline_entity_form - path - text third_party_settings: @@ -112,14 +114,22 @@ content: show_summary: false third_party_settings: { } field_artiste_s_invite_s: - type: entity_reference_autocomplete + type: inline_entity_form_complex weight: 3 region: content settings: + form_mode: in_place_reference + override_labels: false + label_singular: '' + label_plural: '' + allow_new: true + allow_existing: true match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' + allow_duplicate: false + collapsible: false + collapsed: false + revision: false + removed_reference: keep third_party_settings: { } field_dates: type: daterange_default @@ -128,14 +138,22 @@ content: settings: { } third_party_settings: { } field_invite_accompagne_curate_p: - type: entity_reference_autocomplete + type: inline_entity_form_complex weight: 4 region: content settings: + form_mode: in_place_reference + override_labels: false + label_singular: '' + label_plural: '' + allow_new: true + allow_existing: true match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' + allow_duplicate: false + collapsible: false + collapsed: false + revision: false + removed_reference: keep third_party_settings: { } field_lieu: type: entity_reference_autocomplete diff --git a/config/sync/core.entity_form_display.node.personne.default.yml b/config/sync/core.entity_form_display.node.personne.default.yml index 4771146..df73493 100644 --- a/config/sync/core.entity_form_display.node.personne.default.yml +++ b/config/sync/core.entity_form_display.node.personne.default.yml @@ -53,7 +53,7 @@ content: third_party_settings: { } field_nom: type: string_textfield - weight: 2 + weight: 1 region: content settings: size: 60 @@ -61,7 +61,7 @@ content: third_party_settings: { } field_prenom: type: string_textfield - weight: 1 + weight: 2 region: content settings: size: 60 @@ -79,7 +79,7 @@ content: third_party_settings: { } field_projets_curates: type: entity_reference_autocomplete - weight: 26 + weight: 6 region: content settings: match_operator: CONTAINS diff --git a/config/sync/core.entity_form_display.node.personne.in_place_reference.yml b/config/sync/core.entity_form_display.node.personne.in_place_reference.yml new file mode 100644 index 0000000..4b9dd08 --- /dev/null +++ b/config/sync/core.entity_form_display.node.personne.in_place_reference.yml @@ -0,0 +1,72 @@ +uuid: 97413aa8-490d-46d7-b8c5-4aa5b47e2772 +langcode: fr +status: true +dependencies: + config: + - core.entity_form_mode.node.in_place_reference + - field.field.node.personne.body + - field.field.node.personne.field_nom + - field.field.node.personne.field_prenom + - field.field.node.personne.field_projet_s_lie_s + - field.field.node.personne.field_projets_curates + - field.field.node.personne.field_type_de_personne + - node.type.personne + module: + - field_group +third_party_settings: + field_group: + group_details: + children: + - langcode + - status + - path + - field_type_de_personne + label: Details + region: hidden + parent_name: '' + weight: 11 + format_type: details_sidebar + format_settings: + classes: '' + show_empty_fields: false + id: '' + label_as_html: false + open: true + description: '' + required_fields: true + weight: -100 +id: node.personne.in_place_reference +targetEntityType: node +bundle: personne +mode: in_place_reference +content: + field_nom: + type: string_textfield + weight: 0 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_prenom: + type: string_textfield + weight: 1 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } +hidden: + body: true + created: true + field_projet_s_lie_s: true + field_projets_curates: true + field_type_de_personne: true + langcode: true + path: true + promote: true + status: true + sticky: true + title: true + uid: true + url_redirects: true diff --git a/config/sync/core.entity_form_display.node.projet.default.yml b/config/sync/core.entity_form_display.node.projet.default.yml index e3971d3..6d7f55c 100644 --- a/config/sync/core.entity_form_display.node.projet.default.yml +++ b/config/sync/core.entity_form_display.node.projet.default.yml @@ -3,6 +3,7 @@ langcode: fr status: true dependencies: config: + - core.entity_form_mode.node.in_place_reference - field.field.node.projet.body - field.field.node.projet.field_artiste_s_invite_s - field.field.node.projet.field_dates @@ -21,6 +22,7 @@ dependencies: - field_group - file - image + - inline_entity_form - path - text third_party_settings: @@ -149,14 +151,22 @@ content: show_summary: false third_party_settings: { } field_artiste_s_invite_s: - type: entity_reference_autocomplete + type: inline_entity_form_complex weight: 4 region: content settings: + form_mode: in_place_reference + override_labels: false + label_singular: '' + label_plural: '' + allow_new: true + allow_existing: true match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' + allow_duplicate: false + collapsible: false + collapsed: false + revision: false + removed_reference: keep third_party_settings: { } field_dates: type: daterange_default @@ -180,14 +190,22 @@ content: preview_image_style: thumbnail third_party_settings: { } field_invite_accompagne_curate_p: - type: entity_reference_autocomplete + type: inline_entity_form_complex weight: 5 region: content settings: + form_mode: in_place_reference + override_labels: false + label_singular: '' + label_plural: '' + allow_new: true + allow_existing: true match_operator: CONTAINS - match_limit: 10 - size: 60 - placeholder: '' + allow_duplicate: false + collapsible: false + collapsed: false + revision: false + removed_reference: keep third_party_settings: { } field_partenaire_s: type: entity_reference_autocomplete diff --git a/config/sync/core.entity_form_mode.node.in_place_reference.yml b/config/sync/core.entity_form_mode.node.in_place_reference.yml new file mode 100644 index 0000000..9811c7a --- /dev/null +++ b/config/sync/core.entity_form_mode.node.in_place_reference.yml @@ -0,0 +1,11 @@ +uuid: c3c38404-50b1-4eb4-b583-8f11420767de +langcode: en +status: true +dependencies: + module: + - node +id: node.in_place_reference +label: 'in place reference' +description: '' +targetEntityType: node +cache: true diff --git a/config/sync/field.field.node.personne.field_prenom.yml b/config/sync/field.field.node.personne.field_prenom.yml index a778d46..2a9ed69 100644 --- a/config/sync/field.field.node.personne.field_prenom.yml +++ b/config/sync/field.field.node.personne.field_prenom.yml @@ -11,7 +11,7 @@ entity_type: node bundle: personne label: Prenom description: '' -required: true +required: false translatable: false default_value: { } default_value_callback: '' diff --git a/web/themes/custom/leshed/leshed.theme b/web/themes/custom/leshed/leshed.theme index f0a493c..e04fcff 100644 --- a/web/themes/custom/leshed/leshed.theme +++ b/web/themes/custom/leshed/leshed.theme @@ -84,13 +84,13 @@ function leshed_preprocess_node(&$variables) { $variables["attributes"]['class'][] = "view-mode-{$variables['view_mode']}"; - // if ($variables['view_mode'] === "teaser") { + if ($node->hasField('field_images')) { /** @var \Drupal\file\Plugin\\Field\FieldType\FileFieldItemList $field_images */ $field_images = $node->get('field_images'); - if (!$field_images->isEmpty()) { + if ($field_images && !$field_images->isEmpty()) { $variables["attributes"]['class'][] = "has-image"; } - // } + } }