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