Преглед на файлове

fixed empty paragraphes display #1334

bach преди 2 години
родител
ревизия
8b01ed0f6b

+ 3 - 0
composer.json

@@ -128,6 +128,9 @@
           "drupal/core": {
             "Call to a member function getSetting() on null migrate_drupal https://www.drupal.org/project/drupal/issues/2984460": "https://www.drupal.org/files/issues/2020-04-06/2984460-3.patch",
             "Add Views EntityReference filter to be available for all entity reference fields https://www.drupal.org/project/drupal/issues/2429699" : "https://www.drupal.org/files/issues/2021-03-06/2429699-389.patch"
+          },
+          "drupal/paragraphs": {
+              "Skip saving empty paragraphs for certain types https://www.drupal.org/project/paragraphs/issues/2877695" : "https://www.drupal.org/files/issues/2021-03-31/2877695-35.patch"
           }
         }
     }

+ 1 - 1
config/sync/field.field.node.evenement.field_lien.yml

@@ -11,7 +11,7 @@ id: node.evenement.field_lien
 field_name: field_lien
 entity_type: node
 bundle: evenement
-label: Lien
+label: Liens
 description: ''
 required: false
 translatable: true

+ 2 - 2
config/sync/page_manager.page_variant.node-panels_variant-2.yml

@@ -108,7 +108,7 @@ variant_settings:
       provider: ctools_block
       label_display: visible
       formatter:
-        label: above
+        label: hidden
         type: entity_reference_label
         settings:
           link: true
@@ -295,7 +295,7 @@ variant_settings:
       provider: ctools_block
       label_display: visible
       formatter:
-        label: visually_hidden
+        label: hidden
         type: entity_reference_revisions_entity_view
         settings:
           view_mode: default

+ 1 - 0
config/sync/paragraphs.paragraphs_type.equipes.yml

@@ -7,4 +7,5 @@ label: Équipes
 icon_uuid: null
 icon_default: null
 description: ''
+save_empty: false
 behavior_plugins: {  }

+ 2 - 1
config/sync/paragraphs.paragraphs_type.partenaires.yml

@@ -6,5 +6,6 @@ id: partenaires
 label: Partenaires
 icon_uuid: null
 icon_default: null
-description: ''
+description: sferfger
+save_empty: false
 behavior_plugins: {  }

+ 1 - 0
config/sync/paragraphs.paragraphs_type.personne.yml

@@ -7,4 +7,5 @@ label: Personne
 icon_uuid: null
 icon_default: null
 description: ''
+save_empty: false
 behavior_plugins: {  }

+ 1 - 0
config/sync/paragraphs.paragraphs_type.sous_partie_programme.yml

@@ -7,4 +7,5 @@ label: 'Sous Partie Programme'
 icon_uuid: null
 icon_default: null
 description: ''
+save_empty: false
 behavior_plugins: {  }

+ 1 - 0
config/sync/paragraphs.paragraphs_type.sous_partie_programme_contents.yml

@@ -7,4 +7,5 @@ label: 'Sous Partie Programme Contents'
 icon_uuid: null
 icon_default: null
 description: ''
+save_empty: false
 behavior_plugins: {  }

+ 1 - 0
config/sync/paragraphs.paragraphs_type.textes.yml

@@ -7,4 +7,5 @@ label: Textes
 icon_uuid: null
 icon_default: null
 description: ''
+save_empty: false
 behavior_plugins: {  }

+ 2 - 0
config/sync/views.view.actus_blocks.yml

@@ -194,6 +194,7 @@ display:
       defaults:
         title: false
         footer: false
+        empty: false
       footer:
         display_link:
           id: display_link
@@ -206,6 +207,7 @@ display:
           display_id: page_1
           label: 'Archives Actualités'
           plugin_id: display_link
+      empty: {  }
     cache_metadata:
       max-age: -1
       contexts:

+ 31 - 0
web/themes/custom/popsu/popsu.theme

@@ -140,3 +140,34 @@ function popsu_preprocess_views_view_field(&$variables){
     $variables['output'] = $link->toRenderable();
   } 
 }
+
+function popsu_preprocess_block__entity_field(&$variables){
+  $field = &$variables['content']['field'];
+  $items = &$field['#items'];
+  if ($field['#field_type'] === "entity_reference_revisions") {
+    $entity = $items->first()->get('entity');
+    $entityAdapter = $entity->getTarget();
+    $referencedEntity = $entityAdapter->getValue();
+
+
+    $field_definitions = $referencedEntity->getFieldDefinitions();
+    $all_empty = TRUE;
+    foreach ($field_definitions as $field_name => $definition) {
+      if (!method_exists($definition, 'isBaseField')) {
+        $field_instance = $referencedEntity->get($field_name);
+        if (!$field_instance->isEmpty()) {
+          $all_empty = FALSE;
+        }
+      }
+    }
+    if ($all_empty) {
+      $variables['isEmpty'] = true;
+      $t="t";
+    }
+
+
+
+  }
+  // if($items->isEmpty()){
+  // }
+}

+ 41 - 0
web/themes/custom/popsu/templates/layout/block--entity-field.html.twig

@@ -0,0 +1,41 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a block.
+ *
+ * Available variables:
+ * - plugin_id: The ID of the block implementation.
+ * - label: The configured label of the block if visible.
+ * - configuration: A list of the block's configuration values.
+ *   - label: The configured label for the block.
+ *   - label_display: The display settings for the label.
+ *   - provider: The module or other provider that provided this block plugin.
+ *   - Block plugin specific settings will also be stored here.
+ * - content: The content of this block.
+ * - attributes: array of HTML attributes populated by modules, intended to
+ *   be added to the main container tag of this template.
+ *   - id: A valid HTML ID and guaranteed unique.
+ * - title_attributes: Same as attributes, except applied to the main title
+ *   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.
+ *
+ * @see template_preprocess_block()
+ *
+ * @ingroup themeable
+ */
+#}
+{% if not isEmpty %}
+  <div id="{{ derivative_plugin_id }}" {{ attributes }}>
+    {{ title_prefix }}
+    {% if label %}
+      <h2{{ title_attributes }}>{{ label }}</h2>
+    {% endif %}
+    {{ title_suffix }}
+    {% block content %}
+      {{ content }}
+    {% endblock %}
+  </div>
+{% endif %}