From b5e74746dee746c2dc08d3a9676d22119612a6ef Mon Sep 17 00:00:00 2001
From: Pierre <pierredureau@yahoo.fr>
Date: Fri, 18 Apr 2025 22:45:50 +0200
Subject: [PATCH 1/3] Issue #3519282 by pdureau: Add
 PluginSettingsInterface::settingsSummary()

---
 src/Plugin/UiPatterns/Source/EntityFieldSource.php | 8 ++++++++
 src/Plugin/UiPatterns/Source/EntityLinksSource.php | 7 +++++++
 src/Plugin/UiPatterns/Source/TokenSource.php       | 7 +++++++
 src/Plugin/UiPatterns/Source/WysiwygWidget.php     | 8 ++++++++
 src/PluginSettingsInterface.php                    | 8 ++++++++
 src/SourcePluginBase.php                           | 7 +++++++
 6 files changed, 45 insertions(+)

diff --git a/src/Plugin/UiPatterns/Source/EntityFieldSource.php b/src/Plugin/UiPatterns/Source/EntityFieldSource.php
index b4fa5f04e..519a1643d 100644
--- a/src/Plugin/UiPatterns/Source/EntityFieldSource.php
+++ b/src/Plugin/UiPatterns/Source/EntityFieldSource.php
@@ -35,6 +35,14 @@ class EntityFieldSource extends DerivableContextSourceBase {
     return $form;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsSummary(): string|\Stringable {
+    $derivable_context = explode(':', $this->getSetting("derivable_context") ?? '');
+    return $derivable_context[array_key_last($derivable_context)];
+  }
+
   /**
    * {@inheritDoc}
    */
diff --git a/src/Plugin/UiPatterns/Source/EntityLinksSource.php b/src/Plugin/UiPatterns/Source/EntityLinksSource.php
index c28dffeab..ee7359f30 100644
--- a/src/Plugin/UiPatterns/Source/EntityLinksSource.php
+++ b/src/Plugin/UiPatterns/Source/EntityLinksSource.php
@@ -130,6 +130,13 @@ class EntityLinksSource extends SourcePluginBase {
     return $form;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsSummary(): string|\Stringable {
+    return $this->getSetting('template') ?? '';
+  }
+
   /**
    * Get menus list.
    *
diff --git a/src/Plugin/UiPatterns/Source/TokenSource.php b/src/Plugin/UiPatterns/Source/TokenSource.php
index f7227c616..a3fd8c49d 100644
--- a/src/Plugin/UiPatterns/Source/TokenSource.php
+++ b/src/Plugin/UiPatterns/Source/TokenSource.php
@@ -142,6 +142,13 @@ class TokenSource extends SourcePluginBase {
     return $form;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsSummary(): string|\Stringable {
+    return $this->getSetting('value');
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/src/Plugin/UiPatterns/Source/WysiwygWidget.php b/src/Plugin/UiPatterns/Source/WysiwygWidget.php
index c8ae1a897..d5c025bbe 100644
--- a/src/Plugin/UiPatterns/Source/WysiwygWidget.php
+++ b/src/Plugin/UiPatterns/Source/WysiwygWidget.php
@@ -107,6 +107,14 @@ class WysiwygWidget extends SourcePluginBase implements TrustedCallbackInterface
     return $form;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsSummary(): string|\Stringable {
+    $value = $this->getSetting('value')['value'] ?? '';
+    return substr(strip_tags($value), 0, 20);
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/src/PluginSettingsInterface.php b/src/PluginSettingsInterface.php
index cbae576ef..019542ce5 100644
--- a/src/PluginSettingsInterface.php
+++ b/src/PluginSettingsInterface.php
@@ -54,4 +54,12 @@ interface PluginSettingsInterface {
    */
   public function settingsForm(array $form, FormStateInterface $form_state): array;
 
+  /**
+   * Returns a short summary for the current settings.
+   *
+   * @return string|\Stringable
+   *   A short summary of the settings.
+   */
+  public function settingsSummary(): string|\Stringable;
+
 }
diff --git a/src/SourcePluginBase.php b/src/SourcePluginBase.php
index 9876b8577..0524f22bd 100644
--- a/src/SourcePluginBase.php
+++ b/src/SourcePluginBase.php
@@ -179,6 +179,13 @@ abstract class SourcePluginBase extends PluginBase implements
     return $this;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsSummary(): string|\Stringable {
+    return '';
+  }
+
   /**
    * {@inheritdoc}
    */
-- 
GitLab


From a29c875a668d1c12f6e4937a6cb99a46f5a2d00c Mon Sep 17 00:00:00 2001
From: Pierre <pierredureau@yahoo.fr>
Date: Thu, 8 May 2025 17:24:19 +0200
Subject: [PATCH 2/3] Return value: from string to array

---
 src/Plugin/UiPatterns/Source/EntityFieldSource.php | 6 ++++--
 src/Plugin/UiPatterns/Source/EntityLinksSource.php | 6 ++++--
 src/Plugin/UiPatterns/Source/TokenSource.php       | 6 ++++--
 src/Plugin/UiPatterns/Source/WysiwygWidget.php     | 6 ++++--
 src/PluginSettingsInterface.php                    | 4 ++--
 src/SourcePluginBase.php                           | 4 ++--
 6 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/src/Plugin/UiPatterns/Source/EntityFieldSource.php b/src/Plugin/UiPatterns/Source/EntityFieldSource.php
index 519a1643d..f7f6d1ec9 100644
--- a/src/Plugin/UiPatterns/Source/EntityFieldSource.php
+++ b/src/Plugin/UiPatterns/Source/EntityFieldSource.php
@@ -38,9 +38,11 @@ class EntityFieldSource extends DerivableContextSourceBase {
   /**
    * {@inheritdoc}
    */
-  public function settingsSummary(): string|\Stringable {
+  public function settingsSummary(): array {
     $derivable_context = explode(':', $this->getSetting("derivable_context") ?? '');
-    return $derivable_context[array_key_last($derivable_context)];
+    return [
+      $derivable_context[array_key_last($derivable_context)],
+    ];
   }
 
   /**
diff --git a/src/Plugin/UiPatterns/Source/EntityLinksSource.php b/src/Plugin/UiPatterns/Source/EntityLinksSource.php
index ee7359f30..3cceaf250 100644
--- a/src/Plugin/UiPatterns/Source/EntityLinksSource.php
+++ b/src/Plugin/UiPatterns/Source/EntityLinksSource.php
@@ -133,8 +133,10 @@ class EntityLinksSource extends SourcePluginBase {
   /**
    * {@inheritdoc}
    */
-  public function settingsSummary(): string|\Stringable {
-    return $this->getSetting('template') ?? '';
+  public function settingsSummary(): array {
+    return [
+      $this->getSetting('template') ?? '',
+    ];
   }
 
   /**
diff --git a/src/Plugin/UiPatterns/Source/TokenSource.php b/src/Plugin/UiPatterns/Source/TokenSource.php
index a3fd8c49d..0275bc96c 100644
--- a/src/Plugin/UiPatterns/Source/TokenSource.php
+++ b/src/Plugin/UiPatterns/Source/TokenSource.php
@@ -145,8 +145,10 @@ class TokenSource extends SourcePluginBase {
   /**
    * {@inheritdoc}
    */
-  public function settingsSummary(): string|\Stringable {
-    return $this->getSetting('value');
+  public function settingsSummary(): array {
+    return [
+      $this->getSetting('value'),
+    ];
   }
 
   /**
diff --git a/src/Plugin/UiPatterns/Source/WysiwygWidget.php b/src/Plugin/UiPatterns/Source/WysiwygWidget.php
index d5c025bbe..e6f24d526 100644
--- a/src/Plugin/UiPatterns/Source/WysiwygWidget.php
+++ b/src/Plugin/UiPatterns/Source/WysiwygWidget.php
@@ -110,9 +110,11 @@ class WysiwygWidget extends SourcePluginBase implements TrustedCallbackInterface
   /**
    * {@inheritdoc}
    */
-  public function settingsSummary(): string|\Stringable {
+  public function settingsSummary(): array {
     $value = $this->getSetting('value')['value'] ?? '';
-    return substr(strip_tags($value), 0, 20);
+    return [
+      substr(strip_tags($value), 0, 20),
+    ];
   }
 
   /**
diff --git a/src/PluginSettingsInterface.php b/src/PluginSettingsInterface.php
index 019542ce5..beb427346 100644
--- a/src/PluginSettingsInterface.php
+++ b/src/PluginSettingsInterface.php
@@ -57,9 +57,9 @@ interface PluginSettingsInterface {
   /**
    * Returns a short summary for the current settings.
    *
-   * @return string|\Stringable
+   * @return array<string|\Stringable>
    *   A short summary of the settings.
    */
-  public function settingsSummary(): string|\Stringable;
+  public function settingsSummary(): array;
 
 }
diff --git a/src/SourcePluginBase.php b/src/SourcePluginBase.php
index 0524f22bd..b9cb8af17 100644
--- a/src/SourcePluginBase.php
+++ b/src/SourcePluginBase.php
@@ -182,8 +182,8 @@ abstract class SourcePluginBase extends PluginBase implements
   /**
    * {@inheritdoc}
    */
-  public function settingsSummary(): string|\Stringable {
-    return '';
+  public function settingsSummary(): array {
+    return [''];
   }
 
   /**
-- 
GitLab


From 43dee27910bf3b569877b1a70333b16d718d7d9f Mon Sep 17 00:00:00 2001
From: Pierre <pierredureau@yahoo.fr>
Date: Thu, 15 May 2025 11:54:05 +0200
Subject: [PATCH 3/3] Empty array in SourcePluginBase

---
 src/SourcePluginBase.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/SourcePluginBase.php b/src/SourcePluginBase.php
index b9cb8af17..1cdde8d31 100644
--- a/src/SourcePluginBase.php
+++ b/src/SourcePluginBase.php
@@ -183,7 +183,7 @@ abstract class SourcePluginBase extends PluginBase implements
    * {@inheritdoc}
    */
   public function settingsSummary(): array {
-    return [''];
+    return [];
   }
 
   /**
-- 
GitLab