From 3178ab0c5864f0b406a5548375668a7cdb7a9467 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 08:52:43 +0000 Subject: [PATCH 01/15] ISSUE-3508202: Add Gitlab CI. --- .gitlab-ci.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..ed0be75 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,38 @@ +################ +# Includes +# +# Additional configuration can be provided through includes. +# One advantage of include files is that if they are updated upstream, the changes affect all pipelines using that include. +# +# Includes can be overridden by re-declaring anything provided in an include, here in gitlab-ci.yml +# https://docs.gitlab.com/ee/ci/yaml/includes.html#override-included-configuration-values +################ + +include: + ################ + # DrupalCI includes: + # As long as you include this, any future includes added by the Drupal Association will be accessible to your pipelines automatically. + # View these include files at https://git.drupalcode.org/project/gitlab_templates/ + ################ + - project: $_GITLAB_TEMPLATES_REPO + ref: $_GITLAB_TEMPLATES_REF + file: + - '/includes/include.drupalci.main.yml' + - '/includes/include.drupalci.variables.yml' + - '/includes/include.drupalci.workflows.yml' + +################ +# Pipeline configuration variables +# +# These are the variables provided to the Run Pipeline form that a user may want to override. +# +# Docs at https://git.drupalcode.org/project/gitlab_templates/-/blob/main/includes/include.drupalci.variables.yml +################ +variables: + # Broaden test coverage. + _SHOW_ENVIRONMENT_VARIABLES: 1 + _PHPUNIT_CONCURRENT: 1 + OPT_IN_TEST_CURRENT: 1 + OPT_IN_TEST_PREVIOUS_MAJOR: 1 + OPT_IN_TEST_MIN_PHP: 1 + OPT_IN_TEST_MAX_PHP: 1 -- GitLab From 30058bb648a1433991750751133511ac601457e5 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 09:53:34 +0000 Subject: [PATCH 02/15] ISSUE-3508202: Add composer.json. --- composer.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 composer.json diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..50ce120 --- /dev/null +++ b/composer.json @@ -0,0 +1,8 @@ +{ + "name": "drupal/ui_patterns_settings", + "description": "Configure patterns with settings.", + "type": "drupal-module", + "require": { + "drupal/ui_patterns": "^1" + } +} -- GitLab From bfaf5222f2a5a979e7cdd103212b7d79fa30a116 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 10:12:29 +0000 Subject: [PATCH 03/15] ISSUE-3508202: Add modules required for the tests. --- composer.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/composer.json b/composer.json index 50ce120..25f5140 100644 --- a/composer.json +++ b/composer.json @@ -4,5 +4,9 @@ "type": "drupal-module", "require": { "drupal/ui_patterns": "^1" + }, + "require-dev": { + "drupal/ds": "^3", + "drupal/token": "^1" } } -- GitLab From d63f98b03e009b1fa6d24d4fb224823a01ad100a Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 10:33:41 +0000 Subject: [PATCH 04/15] ISSUE-3508202: Fix implicitly marking parameter as nullable is deprecated. --- src/UiPatternsSettings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UiPatternsSettings.php b/src/UiPatternsSettings.php index dad1efe..17f386e 100644 --- a/src/UiPatternsSettings.php +++ b/src/UiPatternsSettings.php @@ -90,7 +90,7 @@ class UiPatternsSettings { * @return array * The processed settings. */ - public static function preprocess($pattern_id, array $settings, $variant, $preview, EntityInterface $entity = NULL, &$element = NULL) { + public static function preprocess($pattern_id, array $settings, $variant, $preview, ?EntityInterface $entity = NULL, &$element = NULL) { $processed_settings = []; $definition = UiPatterns::getPatternDefinition($pattern_id); $context = []; -- GitLab From 53e9b29d89b921eb1931d11ffa98f75cece872ea Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 10:40:26 +0000 Subject: [PATCH 05/15] ISSUE-3508202: Ignore \Drupal calls should be avoided in classes. --- src/Plugin/TokenSettingTypeBase.php | 1 + src/UiPatternsSettingsManager.php | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Plugin/TokenSettingTypeBase.php b/src/Plugin/TokenSettingTypeBase.php index 4913ee3..85c56bc 100644 --- a/src/Plugin/TokenSettingTypeBase.php +++ b/src/Plugin/TokenSettingTypeBase.php @@ -106,6 +106,7 @@ abstract class TokenSettingTypeBase extends PatternSettingTypeBase implements Co */ public function getTokenService() { if (!$this->tokenService) { + // @phpstan-ignore-next-line $this->tokenService = \Drupal::token(); } diff --git a/src/UiPatternsSettingsManager.php b/src/UiPatternsSettingsManager.php index eb53b91..db6b3ea 100644 --- a/src/UiPatternsSettingsManager.php +++ b/src/UiPatternsSettingsManager.php @@ -54,6 +54,7 @@ class UiPatternsSettingsManager extends DefaultPluginManager implements PluginMa $plugin_class = DefaultFactory::getPluginClass($plugin_id, $plugin_definition); // If the plugin provides a factory method, pass the container to it. if (is_subclass_of($plugin_class, 'Drupal\Core\Plugin\ContainerFactoryPluginInterface')) { + // @phpstan-ignore-next-line $plugin = $plugin_class::create(\Drupal::getContainer(), $configuration, $plugin_id, $plugin_definition); } else { -- GitLab From 8dfd223c27faa253159c7159ad7875a8aea73ab9 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 10:43:53 +0000 Subject: [PATCH 06/15] ISSUE-3508202: Fix implicitly nullable via default value null. --- src/Plugin/PatternSettingTypeBase.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Plugin/PatternSettingTypeBase.php b/src/Plugin/PatternSettingTypeBase.php index 85e96f8..6d3251c 100644 --- a/src/Plugin/PatternSettingTypeBase.php +++ b/src/Plugin/PatternSettingTypeBase.php @@ -406,7 +406,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements */ public static function formGroupProcess( array &$element, - FormStateInterface $form_state = NULL, + ?FormStateInterface $form_state = NULL, &$form = [] ) { if (isset($element['#pattern_setting_definition'])) { -- GitLab From 7b5885c8d10e4151741c56032f021a8bef91b986 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 11:24:46 +0000 Subject: [PATCH 07/15] ISSUE-3508202: Fix js standards. --- js/ui_pattern_settings.toggle_token.js | 40 ++++++++++++++++---------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/js/ui_pattern_settings.toggle_token.js b/js/ui_pattern_settings.toggle_token.js index 2bd98be..d14f08c 100644 --- a/js/ui_pattern_settings.toggle_token.js +++ b/js/ui_pattern_settings.toggle_token.js @@ -4,9 +4,6 @@ */ (function ($, Drupal, drupalSettings, DrupalCoffee) { - - 'use strict'; - /** * Attaches ui patterns settings module behaviors. * @@ -20,18 +17,29 @@ */ Drupal.behaviors.ups_toggle_token = { attach: function () { - once('ui-patterns-settings-show-token-link', '.js-ui-patterns-settings-show-token-link').forEach(function (elm) { - $(elm).after($('<a href="#" class="ui-patterns-settings-show-token-a">' + Drupal.t('Browse available token') + '</a>').click(function (event) { - event.preventDefault(); - $('#ui-patterns-settings-token-link:first a').click(); - })); + once('ui-patterns-settings-show-token-link', + '.js-ui-patterns-settings-show-token-link' + ).forEach(function (elm) { + $(elm).after($( + '<a href="#" class="ui-patterns-settings-show-token-a">' + + Drupal.t('Browse available token') + + '</a>').click(function (event) { + event.preventDefault(); + $('#ui-patterns-settings-token-link:first a').click(); + }), + ); }); - once('ui-patterns-settings-wrapper', '.js-ui-patterns-settings__wrapper').forEach(function (el) { - var wrapper = $(el); - var toggler = $('<div class="js-ui-patterns-settings__toggler" title="Use token"></div>'); + once( + 'ui-patterns-settings-wrapper', + '.js-ui-patterns-settings__wrapper' + ).forEach(function (el) { + let wrapper = $(el); + let toggler = $( + '<div class="js-ui-patterns-settings__toggler" title="Use token"></div>' + ); $(toggler).click(function () { - var tokenInput = $('.js-ui-patterns-settings__token', wrapper); + let tokenInput = $('.js-ui-patterns-settings__token', wrapper); if ($(wrapper).hasClass('js-ui-patterns-settings--token-has-value')) { tokenInput.attr('data-init-val', tokenInput.val()); tokenInput.val(''); @@ -41,9 +49,11 @@ wrapper.addClass('js-ui-patterns-settings--token-has-value'); } }); - $('.js-ui-patterns-settings__input-wrapper', wrapper).append(toggler) - $('.js-ui-patterns-settings__token-wrapper', wrapper).append(toggler.clone(true)) + $('.js-ui-patterns-settings__input-wrapper', wrapper).append(toggler); + $('.js-ui-patterns-settings__token-wrapper', wrapper).append( + toggler.clone(true), + ) }); - } + }, }; })(jQuery, Drupal, drupalSettings); -- GitLab From db0d5c2cb9abbdd695691af3869255e52bf186a2 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 13:19:04 +0000 Subject: [PATCH 08/15] ISSUE-3508202: Fix more js standards. --- js/ui_pattern_settings.toggle_token.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/js/ui_pattern_settings.toggle_token.js b/js/ui_pattern_settings.toggle_token.js index d14f08c..fe84ad6 100644 --- a/js/ui_pattern_settings.toggle_token.js +++ b/js/ui_pattern_settings.toggle_token.js @@ -17,13 +17,15 @@ */ Drupal.behaviors.ups_toggle_token = { attach: function () { - once('ui-patterns-settings-show-token-link', - '.js-ui-patterns-settings-show-token-link' + once( + 'ui-patterns-settings-show-token-link', + '.js-ui-patterns-settings-show-token-link', ).forEach(function (elm) { - $(elm).after($( - '<a href="#" class="ui-patterns-settings-show-token-a">' + - Drupal.t('Browse available token') + - '</a>').click(function (event) { + $(elm).after( + $('<a href="#" class="ui-patterns-settings-show-token-a">' + + Drupal.t('Browse available token') + + '</a>', + ).click(function (event) { event.preventDefault(); $('#ui-patterns-settings-token-link:first a').click(); }), @@ -32,14 +34,14 @@ once( 'ui-patterns-settings-wrapper', - '.js-ui-patterns-settings__wrapper' + '.js-ui-patterns-settings__wrapper', ).forEach(function (el) { - let wrapper = $(el); - let toggler = $( - '<div class="js-ui-patterns-settings__toggler" title="Use token"></div>' + const wrapper = $(el); + const toggler = $( + '<div class="js-ui-patterns-settings__toggler" title="Use token"></div>', ); $(toggler).click(function () { - let tokenInput = $('.js-ui-patterns-settings__token', wrapper); + const tokenInput = $('.js-ui-patterns-settings__token', wrapper); if ($(wrapper).hasClass('js-ui-patterns-settings--token-has-value')) { tokenInput.attr('data-init-val', tokenInput.val()); tokenInput.val(''); @@ -52,7 +54,7 @@ $('.js-ui-patterns-settings__input-wrapper', wrapper).append(toggler); $('.js-ui-patterns-settings__token-wrapper', wrapper).append( toggler.clone(true), - ) + ); }); }, }; -- GitLab From bc15e29f4bf2678b1757a699c3958f390664268a Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 14:13:03 +0000 Subject: [PATCH 09/15] ISSUE-3508202: Fix more js standards. --- js/ui_pattern_settings.toggle_token.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/js/ui_pattern_settings.toggle_token.js b/js/ui_pattern_settings.toggle_token.js index fe84ad6..a607454 100644 --- a/js/ui_pattern_settings.toggle_token.js +++ b/js/ui_pattern_settings.toggle_token.js @@ -12,19 +12,20 @@ * @type {Drupal~behavior} * * @prop {Drupal~behaviorAttach} attach - * Attach ui patterns settings toggle functionality to the page. + * Attach ui patterns settings toggle functionality to the page. * */ Drupal.behaviors.ups_toggle_token = { - attach: function () { + attach() { once( 'ui-patterns-settings-show-token-link', '.js-ui-patterns-settings-show-token-link', ).forEach(function (elm) { $(elm).after( - $('<a href="#" class="ui-patterns-settings-show-token-a">' + - Drupal.t('Browse available token') + - '</a>', + $( + `<a href="#" class="ui-patterns-settings-show-token-a"> + ${Drupal.t('Browse available token')} + </a>`, ).click(function (event) { event.preventDefault(); $('#ui-patterns-settings-token-link:first a').click(); -- GitLab From b5fe57b5c32ef68c6a1156405fd711089e29f955 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 14:13:23 +0000 Subject: [PATCH 10/15] ISSUE-3508202: Fix typos. --- README.md | 2 +- src/Form/SettingsFormBuilder.php | 14 +++++++------- src/Plugin/ComplexSettingTypeBase.php | 2 +- src/Plugin/PatternSettingTypeInterface.php | 4 ++-- .../UiPatterns/SettingType/LinksSettingType.php | 2 +- .../UiPatterns/Source/SettingFieldSource.php | 2 +- src/UiPatternsSettings.php | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 6f9dac4..e3f2e35 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ You can easily create your own setting types. - attributes - token - url (Generates urls from uri or user input. - Tokens are accepted. Useful for linkfield uris?) + Tokens are accepted. Useful for link field uris?) REQUIREMENTS ------------ diff --git a/src/Form/SettingsFormBuilder.php b/src/Form/SettingsFormBuilder.php index 942bb3c..1b8df84 100644 --- a/src/Form/SettingsFormBuilder.php +++ b/src/Form/SettingsFormBuilder.php @@ -45,9 +45,9 @@ class SettingsFormBuilder { if (!empty($entity_type_id)) { $content_entity_types[] = $entity_type_id; } else { - $entity_type_definations = \Drupal::entityTypeManager()->getDefinitions(); + $entity_type_definitions = \Drupal::entityTypeManager()->getDefinitions(); /** @var EntityTypeInterface $definition */ - foreach ($entity_type_definations as $definition) { + foreach ($entity_type_definitions as $definition) { if ($definition instanceof ContentEntityType) { $content_entity_types[] = $definition->id(); } @@ -225,19 +225,19 @@ class SettingsFormBuilder { foreach ($settings as $setting_name => $setting) { $states = $setting->getStates(); if (!is_null($states) && count($states) !== 0) { - foreach ($states as $visibilty => $conditions) { + foreach ($states as $visibility => $conditions) { foreach ($conditions as $state) { if (isset($state['variant'])) { - $fieldset[$setting_name]['#states'][$visibilty][][$variant_selector]['value'] = $state['variant']; + $fieldset[$setting_name]['#states'][$visibility][][$variant_selector]['value'] = $state['variant']; if (isset($fieldset[$setting_name . '_token'])) { - $fieldset[$setting_name . '_token']['#states'][$visibilty][][$variant_selector]['value'] = $state['variant']; + $fieldset[$setting_name . '_token']['#states'][$visibility][][$variant_selector]['value'] = $state['variant']; } } if (isset($state['setting'])) { $setting_select = '.js-ui-patterns-settings-' . $state['setting']; - $fieldset[$setting_name]['#states'][$visibilty][][$setting_select]['value'] = $state['value']; + $fieldset[$setting_name]['#states'][$visibility][][$setting_select]['value'] = $state['value']; if (isset($fieldset[$setting_name . '_token'])) { - $fieldset[$setting_name . '_token']['#states'][$visibilty][][$setting_select]['value'] = $state['value']; + $fieldset[$setting_name . '_token']['#states'][$visibility][][$setting_select]['value'] = $state['value']; } } } diff --git a/src/Plugin/ComplexSettingTypeBase.php b/src/Plugin/ComplexSettingTypeBase.php index ead5ac2..66ca5f0 100644 --- a/src/Plugin/ComplexSettingTypeBase.php +++ b/src/Plugin/ComplexSettingTypeBase.php @@ -56,7 +56,7 @@ abstract class ComplexSettingTypeBase extends PatternSettingTypeBase implements $provider_select_id = $def->getName(). '_provider'; $form[$def->getName()]['provider'] = [ '#type' => 'select', - '#title' => $this->t('Dataprovider'), + '#title' => $this->t('Data provider'), '#default_value' => $this->getValue($value['provider'] ?? NULL), '#options' => $provider_options, '#attributes'=> ['id' => $provider_select_id] diff --git a/src/Plugin/PatternSettingTypeInterface.php b/src/Plugin/PatternSettingTypeInterface.php index 49bf7c3..93ec161 100644 --- a/src/Plugin/PatternSettingTypeInterface.php +++ b/src/Plugin/PatternSettingTypeInterface.php @@ -35,7 +35,7 @@ interface PatternSettingTypeInterface extends ConfigurableInterface { * @param string $value * The stored value. * @param array $context - * Context informations. + * Context information. * Keys: * - entity. * @param \Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting $def @@ -52,7 +52,7 @@ interface PatternSettingTypeInterface extends ConfigurableInterface { * @param string $value * The stored value. * @param array $context - * Context informations. + * Context information. * * @return mixed * The processed value. diff --git a/src/Plugin/UiPatterns/SettingType/LinksSettingType.php b/src/Plugin/UiPatterns/SettingType/LinksSettingType.php index 75569fd..c1bdd53 100644 --- a/src/Plugin/UiPatterns/SettingType/LinksSettingType.php +++ b/src/Plugin/UiPatterns/SettingType/LinksSettingType.php @@ -68,7 +68,7 @@ class LinksSettingType extends ComplexSettingTypeBase { } /** - * Normaize URL in an item. + * Normalize URL in an item. * * Useful for: menu.html.twig, links.html.twig. */ diff --git a/src/Plugin/UiPatterns/Source/SettingFieldSource.php b/src/Plugin/UiPatterns/Source/SettingFieldSource.php index 239b69c..6cc709c 100644 --- a/src/Plugin/UiPatterns/Source/SettingFieldSource.php +++ b/src/Plugin/UiPatterns/Source/SettingFieldSource.php @@ -11,7 +11,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface; * * @UiPatternsSource( * id = "settings_field", - * label = @Translation("Seting Fields (UI Pattern settings)"), + * label = @Translation("Setting Fields (UI Pattern settings)"), * provider = "ui_patterns_settings", * tags = { * "field_properties" diff --git a/src/UiPatternsSettings.php b/src/UiPatternsSettings.php index 17f386e..5cdcfc8 100644 --- a/src/UiPatternsSettings.php +++ b/src/UiPatternsSettings.php @@ -267,7 +267,7 @@ class UiPatternsSettings { * The definition. * * @return \Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting[] - * Setting pattern definitons. + * Setting pattern definitions. */ public static function getPatternDefinitionSettings(PatternDefinition $definition) { if (isset(self::$settings[$definition->id()])) { -- GitLab From 909bf3b054243aa444f0f7b8ddd72034ad0c7019 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 14:18:38 +0000 Subject: [PATCH 11/15] ISSUE-3508202: Fix more typos. --- src/UiPatternsSettings.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/UiPatternsSettings.php b/src/UiPatternsSettings.php index 5cdcfc8..2a9f872 100644 --- a/src/UiPatternsSettings.php +++ b/src/UiPatternsSettings.php @@ -290,18 +290,18 @@ class UiPatternsSettings { * * @param \Drupal\ui_patterns\Definition\PatternDefinition $pattern_definition * The pattern definition. - * @param \Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting $setting_defintion + * @param \Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting $setting_definition * The setting definition. * * @return \Drupal\ui_patterns_settings\Plugin\PatternSettingTypeInterface * UI Patterns setting manager instance. */ - public static function createSettingType(PatternDefinition $pattern_definition, PatternDefinitionSetting $setting_defintion) { + public static function createSettingType(PatternDefinition $pattern_definition, PatternDefinitionSetting $setting_definition) { $configuration = []; - $configuration['pattern_setting_definition'] = $setting_defintion; + $configuration['pattern_setting_definition'] = $setting_definition; $configuration['pattern_definition'] = $pattern_definition; return \Drupal::service('plugin.manager.ui_patterns_settings') - ->createInstance($setting_defintion->getType(), $configuration); + ->createInstance($setting_definition->getType(), $configuration); } } -- GitLab From b442e6982093bab9667996d8e40be94b7db6a5d8 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 14:19:15 +0000 Subject: [PATCH 12/15] ISSUE-3508202: Ignore some cspell words. --- .cspell-project-words.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .cspell-project-words.txt diff --git a/.cspell-project-words.txt b/.cspell-project-words.txt new file mode 100644 index 0000000..15a3639 --- /dev/null +++ b/.cspell-project-words.txt @@ -0,0 +1,3 @@ +colorwidget +coloriswidget +exposable -- GitLab From e03db81f3d93f8a69222c3baf0d244aceca5da2d Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 14:37:04 +0000 Subject: [PATCH 13/15] ISSUE-3508202: Ignore some cspell words. --- .cspell-project-words.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.cspell-project-words.txt b/.cspell-project-words.txt index 15a3639..0c01d8e 100644 --- a/.cspell-project-words.txt +++ b/.cspell-project-words.txt @@ -1,3 +1,4 @@ +coloris colorwidget coloriswidget exposable -- GitLab From 3bc65d49694cf82c9538558e125994a66b037a54 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 14:40:21 +0000 Subject: [PATCH 14/15] ISSUE-3508202: Fix phpcs. --- js/ui_pattern_settings.toggle_token.js | 6 ++-- .../UiPatternsSettingDataProvider.php | 1 + src/Definition/PatternDefinitionSetting.php | 8 +++-- src/Element/PatternSettings.php | 8 +++-- src/Form/SettingsFormBuilder.php | 16 +++++----- src/Plugin/ComplexSettingTypeBase.php | 9 +++--- src/Plugin/EnumerationSettingTypeBase.php | 2 +- .../LanguageCheckboxesSettingTypeBase.php | 4 +-- src/Plugin/PatternSettingDataProviderBase.php | 6 ++-- .../PatternSettingDataProviderInterface.php | 2 ++ src/Plugin/PatternSettingTypeBase.php | 22 +++++++------- src/Plugin/RoleCheckboxesSettingTypeBase.php | 5 ++-- .../BreadcrumbDataProvider.php | 6 ++-- .../SettingDataProvider/MenuDataProvider.php | 6 ++-- .../SettingType/ColorisWidgetSettingType.php | 6 ++-- .../LanguageCheckboxesSettingType.php | 4 --- .../SettingType/LinksSettingType.php | 1 + .../SettingType/MediaLibrarySettingType.php | 6 ++-- .../SettingType/ValueSettingType.php | 9 ++++-- src/UiPatternsSettings.php | 13 +++++--- src/UiPatternsSettingsDataProviderManager.php | 9 ++++++ .../SettingType/SampleComplexSettingType.php | 2 -- tests/src/Kernel/ComplexSettingTypeTest.php | 24 ++++++++++----- ui_patterns_settings.api.php | 6 ++-- ui_patterns_settings.module | 30 ++++++++++++------- 25 files changed, 123 insertions(+), 88 deletions(-) diff --git a/js/ui_pattern_settings.toggle_token.js b/js/ui_pattern_settings.toggle_token.js index a607454..2efcc53 100644 --- a/js/ui_pattern_settings.toggle_token.js +++ b/js/ui_pattern_settings.toggle_token.js @@ -23,9 +23,9 @@ ).forEach(function (elm) { $(elm).after( $( - `<a href="#" class="ui-patterns-settings-show-token-a"> - ${Drupal.t('Browse available token')} - </a>`, + `<a href="#" class="ui-patterns-settings-show-token-a"> + ${Drupal.t('Browse available token')} + </a>`, ).click(function (event) { event.preventDefault(); $('#ui-patterns-settings-token-link:first a').click(); diff --git a/src/Annotation/UiPatternsSettingDataProvider.php b/src/Annotation/UiPatternsSettingDataProvider.php index 12f9219..0bc3162 100644 --- a/src/Annotation/UiPatternsSettingDataProvider.php +++ b/src/Annotation/UiPatternsSettingDataProvider.php @@ -42,4 +42,5 @@ class UiPatternsSettingDataProvider extends Plugin { * @var string */ public $settingType; + } diff --git a/src/Definition/PatternDefinitionSetting.php b/src/Definition/PatternDefinitionSetting.php index a458a08..8ecd754 100644 --- a/src/Definition/PatternDefinitionSetting.php +++ b/src/Definition/PatternDefinitionSetting.php @@ -71,7 +71,8 @@ class PatternDefinitionSetting implements \ArrayAccess { $processed_options[$option_key] = $option_value; } } - } else { + } + else { $processed_options = NULL; } $this->definition['options'] = $processed_options; @@ -87,7 +88,7 @@ class PatternDefinitionSetting implements \ArrayAccess { /** * Overwrite setting definition. * - * @param $definitions + * @param array $definitions * The overwritten definitions. */ public function setDefinitions($definitions) { @@ -328,6 +329,7 @@ class PatternDefinitionSetting implements \ArrayAccess { $this->definition['form_visible'] = $visible; return $this; } + /** * Get Type property. * @@ -341,7 +343,7 @@ class PatternDefinitionSetting implements \ArrayAccess { /** * Set Expose property. * - * @param string $type + * @param string $expose_as_field * Property value. * * @return $this diff --git a/src/Element/PatternSettings.php b/src/Element/PatternSettings.php index 55d67c6..47efa5a 100644 --- a/src/Element/PatternSettings.php +++ b/src/Element/PatternSettings.php @@ -121,9 +121,11 @@ class PatternSettings implements TrustedCallbackInterface { } elseif (is_array($element[$key]) && is_array($setting)) { $element[$key] = array_merge($element[$key], $setting); - } elseif (empty($element[$key]) && !empty($setting)) { - // Handle Exposed fields. Overwrite expose fields if the setting is provided - // but the variable prefilled with an empty field. (e.g. component blocks) + } + elseif (empty($element[$key]) && !empty($setting)) { + // Handle Exposed fields. Overwrite expose fields if the setting is + // provided but the variable prefilled with an empty field. + // (e.g. component blocks) $setting_definition = UiPatternsSettings::getPatternDefinitionSetting(UiPatterns::getPatternDefinition($pattern_id), $name); if ($setting_definition !== NULL && $setting_definition->getExposeAsField()) { $element[$key] = $setting; diff --git a/src/Form/SettingsFormBuilder.php b/src/Form/SettingsFormBuilder.php index 1b8df84..c0b172d 100644 --- a/src/Form/SettingsFormBuilder.php +++ b/src/Form/SettingsFormBuilder.php @@ -5,11 +5,8 @@ namespace Drupal\ui_patterns_settings\Form; use Drupal\Component\Utility\NestedArray; use Drupal\Core\Entity\ContentEntityType; use Drupal\Core\Form\FormState; -use Drupal\Core\Render\Element; -use Drupal\Core\Render\Element\Form; use Drupal\ui_patterns\Definition\PatternDefinition; use Drupal\ui_patterns\UiPatterns; -use Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting; use Drupal\ui_patterns_settings\UiPatternsSettings; use Drupal\ui_patterns_settings\UiPatternsSettingsManager; @@ -31,7 +28,7 @@ class SettingsFormBuilder { private static function buildTokenLink(array &$form) { // Detecting current entity type. - // We don't have access to + // We don't have access to. $request = \Drupal::request(); $entity_type_id = $request->attributes->get('entity_type_id'); if (empty($entity_type_id)) { @@ -44,7 +41,8 @@ class SettingsFormBuilder { if (!empty($entity_type_id)) { $content_entity_types[] = $entity_type_id; - } else { + } + else { $entity_type_definitions = \Drupal::entityTypeManager()->getDefinitions(); /** @var EntityTypeInterface $definition */ foreach ($entity_type_definitions as $definition) { @@ -84,7 +82,7 @@ class SettingsFormBuilder { $form['#attached']['library'][] = 'ui_patterns_settings/widget'; if (UiPatternsSettingsManager::allowVariantToken($definition)) { - $variant_token_value = isset($configuration['pattern']['variant_token']) ? $configuration['pattern']['variant_token'] : NULL; + $variant_token_value = $configuration['pattern']['variant_token'] ?? NULL; $form['variant_token'] = [ '#type' => 'textfield', '#title' => 'Variant token', @@ -212,7 +210,7 @@ class SettingsFormBuilder { /** * Build settings form. * - * @param string $select_selector + * @param string $variant_selector * The id of the variant select field. * @param array $fieldset * The fieldset. @@ -221,7 +219,7 @@ class SettingsFormBuilder { */ private static function buildStatesForm($variant_selector, array &$fieldset, PatternDefinition $definition) { $settings = UiPatternsSettings::getPatternDefinitionSettings($definition); - /** @var PatternDefinitionSetting $setting */ + /** @var \Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting $setting */ foreach ($settings as $setting_name => $setting) { $states = $setting->getStates(); if (!is_null($states) && count($states) !== 0) { @@ -246,7 +244,7 @@ class SettingsFormBuilder { } } - /** + /** * Hide all settings which are configured by the variant. * * @param string $select_selector diff --git a/src/Plugin/ComplexSettingTypeBase.php b/src/Plugin/ComplexSettingTypeBase.php index 66ca5f0..7094370 100644 --- a/src/Plugin/ComplexSettingTypeBase.php +++ b/src/Plugin/ComplexSettingTypeBase.php @@ -53,13 +53,13 @@ abstract class ComplexSettingTypeBase extends PatternSettingTypeBase implements '#title' => $def->getLabel(), ]; - $provider_select_id = $def->getName(). '_provider'; + $provider_select_id = $def->getName() . '_provider'; $form[$def->getName()]['provider'] = [ '#type' => 'select', '#title' => $this->t('Data provider'), '#default_value' => $this->getValue($value['provider'] ?? NULL), '#options' => $provider_options, - '#attributes'=> ['id' => $provider_select_id] + '#attributes' => ['id' => $provider_select_id], ]; $form[$def->getName()]['configuration'] = []; @@ -68,7 +68,8 @@ abstract class ComplexSettingTypeBase extends PatternSettingTypeBase implements $data_provider_id = $data_provider_definition['id']; $provider_settings_form = $provider_plugins[$data_provider_id]->settingsForm($value['configuration'][$data_provider_id]['config'] ?? []); if ($provider_settings_form) { - $form[$def->getName()]['configuration'][$data_provider_id] = ['#type' => 'container', + $form[$def->getName()]['configuration'][$data_provider_id] = [ + '#type' => 'container', '#states' => [ 'visible' => [ 'select[id="' . $provider_select_id . '"]' => ['value' => $data_provider_id], @@ -87,7 +88,7 @@ abstract class ComplexSettingTypeBase extends PatternSettingTypeBase implements public function settingsPreprocess( $value, array $context, - PatternDefinitionSetting $def + PatternDefinitionSetting $def, ) { $provider_id = $value['provider'] ?? NULL; if ($provider_id) { diff --git a/src/Plugin/EnumerationSettingTypeBase.php b/src/Plugin/EnumerationSettingTypeBase.php index b466d0e..72cfd6d 100644 --- a/src/Plugin/EnumerationSettingTypeBase.php +++ b/src/Plugin/EnumerationSettingTypeBase.php @@ -51,7 +51,7 @@ abstract class EnumerationSettingTypeBase extends PatternSettingTypeBase { * Returns the enumeration options. * * @param \Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting $def - * The pattern definition. + * The pattern definition. * * @return mixed * The options. diff --git a/src/Plugin/LanguageCheckboxesSettingTypeBase.php b/src/Plugin/LanguageCheckboxesSettingTypeBase.php index faaf951..64cdff9 100644 --- a/src/Plugin/LanguageCheckboxesSettingTypeBase.php +++ b/src/Plugin/LanguageCheckboxesSettingTypeBase.php @@ -101,8 +101,8 @@ class LanguageCheckboxesSettingTypeBase extends EnumerationSettingTypeBase { public static function create( ContainerInterface $container, array $configuration, - $plugin_id, - $plugin_definition + $plugin_id, + $plugin_definition, ) { $plugin = parent::create($container, $configuration, $plugin_id, $plugin_definition); $plugin->languageManager = $container->get('language_manager'); diff --git a/src/Plugin/PatternSettingDataProviderBase.php b/src/Plugin/PatternSettingDataProviderBase.php index e66903e..3c93456 100644 --- a/src/Plugin/PatternSettingDataProviderBase.php +++ b/src/Plugin/PatternSettingDataProviderBase.php @@ -39,7 +39,7 @@ abstract class PatternSettingDataProviderBase extends PluginBase implements Patt $plugin_id, array $plugin_definition, ModuleHandlerInterface $module_handler, - EntityTypeManagerInterface $entity_type_manager + EntityTypeManagerInterface $entity_type_manager, ) { parent::__construct($configuration, $plugin_id, $plugin_definition); $this->entityTypeManager = $entity_type_manager; @@ -47,13 +47,13 @@ abstract class PatternSettingDataProviderBase extends PluginBase implements Patt } /** - * + * {@inheritdoc} */ public static function create( ContainerInterface $container, array $configuration, $plugin_id, - $plugin_definition + $plugin_definition, ) { $plugin = new static( $configuration, diff --git a/src/Plugin/PatternSettingDataProviderInterface.php b/src/Plugin/PatternSettingDataProviderInterface.php index 10c20e5..bc9e35f 100644 --- a/src/Plugin/PatternSettingDataProviderInterface.php +++ b/src/Plugin/PatternSettingDataProviderInterface.php @@ -26,6 +26,8 @@ interface PatternSettingDataProviderInterface { public function settingsForm($value); /** + * Return the data. + * * @return array * The provided data. */ diff --git a/src/Plugin/PatternSettingTypeBase.php b/src/Plugin/PatternSettingTypeBase.php index 6d3251c..7d1dad2 100644 --- a/src/Plugin/PatternSettingTypeBase.php +++ b/src/Plugin/PatternSettingTypeBase.php @@ -17,9 +17,9 @@ use Symfony\Component\DependencyInjection\ContainerInterface; * Base class for UI Patterns Setting plugins. */ abstract class PatternSettingTypeBase extends PluginBase implements - ConfigurableInterface, - PatternSettingTypeInterface, - ContainerFactoryPluginInterface { + ConfigurableInterface, + PatternSettingTypeInterface, + ContainerFactoryPluginInterface { /** * Returns a list of plugin dependencies. @@ -74,7 +74,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements $plugin_id, array $plugin_definition, ModuleHandlerInterface $module_handler, - EntityTypeManagerInterface $entity_type_manager + EntityTypeManagerInterface $entity_type_manager, ) { $configuration += $this->defaultConfiguration(); $this->patternSettingDefinition = $configuration['pattern_setting_definition']; @@ -121,7 +121,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements ContainerInterface $container, array $configuration, $plugin_id, - $plugin_definition + $plugin_definition, ) { $plugin = new static( $configuration, @@ -223,7 +223,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements public function settingsPreprocess( $value, array $context, - PatternDefinitionSetting $def + PatternDefinitionSetting $def, ) { return $value; } @@ -244,7 +244,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements protected function tokenForm( array $form, $value, - PatternDefinitionSetting $def + PatternDefinitionSetting $def, ) { $form[$def->getName() . "_token"] = [ '#type' => 'textfield', @@ -274,7 +274,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements public static function validateLayout( array $element, FormStateInterface &$form_state, - array &$form + array &$form, ) { $parents = $element['#parents']; $value = $form_state->getValue($parents); @@ -324,7 +324,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements protected function handleInput( array &$input, PatternDefinitionSetting $def, - $form_type + $form_type, ) { $input['#attributes']['class'][] = 'js-ui-patterns-settings__input js-ui-patterns-settings-' . $def->getName(); $input['#wrapper_attributes']['class'][] = 'js-ui-patterns-settings__input-wrapper'; @@ -354,7 +354,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements array $form, $value, $token_value, - $form_type + $form_type, ) { $dependencies = $this->getSettingTypeDependencies(); $def = $this->getPatternSettingDefinition(); @@ -407,7 +407,7 @@ abstract class PatternSettingTypeBase extends PluginBase implements public static function formGroupProcess( array &$element, ?FormStateInterface $form_state = NULL, - &$form = [] + &$form = [], ) { if (isset($element['#pattern_setting_definition'])) { $setting_definition = $element['#pattern_setting_definition']; diff --git a/src/Plugin/RoleCheckboxesSettingTypeBase.php b/src/Plugin/RoleCheckboxesSettingTypeBase.php index da13e44..58dc760 100644 --- a/src/Plugin/RoleCheckboxesSettingTypeBase.php +++ b/src/Plugin/RoleCheckboxesSettingTypeBase.php @@ -42,9 +42,8 @@ class RoleCheckboxesSettingTypeBase extends EnumerationSettingTypeBase { if ($value === NULL) { return !is_array($this->getPatternSettingDefinition() ->getDefaultValue()) ? [ - $this->getPatternSettingDefinition() - ->getDefaultValue(), - ] : $this->getPatternSettingDefinition()->getDefaultValue(); + $this->getPatternSettingDefinition()->getDefaultValue(), + ] : $this->getPatternSettingDefinition()->getDefaultValue(); } else { return $value ?? ""; diff --git a/src/Plugin/UiPatterns/SettingDataProvider/BreadcrumbDataProvider.php b/src/Plugin/UiPatterns/SettingDataProvider/BreadcrumbDataProvider.php index 5210f64..21eb661 100644 --- a/src/Plugin/UiPatterns/SettingDataProvider/BreadcrumbDataProvider.php +++ b/src/Plugin/UiPatterns/SettingDataProvider/BreadcrumbDataProvider.php @@ -34,13 +34,13 @@ class BreadcrumbDataProvider extends PatternSettingDataProviderBase implements P protected $breadcrumbManager; /** - * + * {@inheritdoc} */ public static function create( ContainerInterface $container, array $configuration, - $plugin_id, - $plugin_definition + $plugin_id, + $plugin_definition, ) { $plugin = new static( $configuration, diff --git a/src/Plugin/UiPatterns/SettingDataProvider/MenuDataProvider.php b/src/Plugin/UiPatterns/SettingDataProvider/MenuDataProvider.php index 304ae35..7e38486 100644 --- a/src/Plugin/UiPatterns/SettingDataProvider/MenuDataProvider.php +++ b/src/Plugin/UiPatterns/SettingDataProvider/MenuDataProvider.php @@ -43,13 +43,13 @@ class MenuDataProvider extends PatternSettingDataProviderBase implements Pattern protected $menuId; /** - * + * {@inheritdoc} */ public static function create( ContainerInterface $container, array $configuration, - $plugin_id, - $plugin_definition + $plugin_id, + $plugin_definition, ) { $plugin = new static( $configuration, diff --git a/src/Plugin/UiPatterns/SettingType/ColorisWidgetSettingType.php b/src/Plugin/UiPatterns/SettingType/ColorisWidgetSettingType.php index c1b8a2d..ad45ac9 100644 --- a/src/Plugin/UiPatterns/SettingType/ColorisWidgetSettingType.php +++ b/src/Plugin/UiPatterns/SettingType/ColorisWidgetSettingType.php @@ -3,7 +3,6 @@ namespace Drupal\ui_patterns_settings\Plugin\UIPatterns\SettingType; use Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting; -use Drupal\ui_patterns_settings\Plugin\EnumerationSettingTypeBase; use Drupal\ui_patterns_settings\Plugin\PatternSettingTypeBase; /** @@ -29,13 +28,14 @@ class ColorisWidgetSettingType extends PatternSettingTypeBase { public function settingsPreprocess( $value, array $context, - PatternDefinitionSetting $def + PatternDefinitionSetting $def, ) { if (is_string($value) && !empty($value)) { return $value; } return $value['coloris'] ?? ''; } + /** * {@inheritdoc} */ @@ -47,7 +47,7 @@ class ColorisWidgetSettingType extends PatternSettingTypeBase { '#title' => $def->getLabel(), '#description' => $def->getDescription(), '#default_value' => $this->getValue($value), - '#swatches' => $swatches + '#swatches' => $swatches, ]; $this->handleInput($form[$def->getName()], $def, $form_type); diff --git a/src/Plugin/UiPatterns/SettingType/LanguageCheckboxesSettingType.php b/src/Plugin/UiPatterns/SettingType/LanguageCheckboxesSettingType.php index 560c2b6..b24a39b 100644 --- a/src/Plugin/UiPatterns/SettingType/LanguageCheckboxesSettingType.php +++ b/src/Plugin/UiPatterns/SettingType/LanguageCheckboxesSettingType.php @@ -2,11 +2,7 @@ namespace Drupal\ui_patterns_settings\Plugin\UIPatterns\SettingType; -use Drupal\Core\Language\LanguageManagerInterface; -use Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting; -use Drupal\ui_patterns_settings\Plugin\EnumerationSettingTypeBase; use Drupal\ui_patterns_settings\Plugin\LanguageCheckboxesSettingTypeBase; -use Symfony\Component\DependencyInjection\ContainerInterface; /** * Language Checkboxes setting type. diff --git a/src/Plugin/UiPatterns/SettingType/LinksSettingType.php b/src/Plugin/UiPatterns/SettingType/LinksSettingType.php index c1bdd53..22edcb8 100644 --- a/src/Plugin/UiPatterns/SettingType/LinksSettingType.php +++ b/src/Plugin/UiPatterns/SettingType/LinksSettingType.php @@ -28,6 +28,7 @@ class LinksSettingType extends ComplexSettingTypeBase { * The items to convert. * * @return array + * Normalized menu items. */ public static function normalize(array $items): array { foreach ($items as $index => $item) { diff --git a/src/Plugin/UiPatterns/SettingType/MediaLibrarySettingType.php b/src/Plugin/UiPatterns/SettingType/MediaLibrarySettingType.php index 680d5b3..9a79c17 100644 --- a/src/Plugin/UiPatterns/SettingType/MediaLibrarySettingType.php +++ b/src/Plugin/UiPatterns/SettingType/MediaLibrarySettingType.php @@ -2,11 +2,8 @@ namespace Drupal\ui_patterns_settings\Plugin\UIPatterns\SettingType; -use Drupal\Component\Utility\UrlHelper; use Drupal\Core\Field\FieldItemList; -use Drupal\Core\Url; use Drupal\media\Entity\Media; -use Drupal\media_library\MediaLibraryUiBuilder; use Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting; use Drupal\ui_patterns_settings\Plugin\PatternSettingTypeBase; @@ -81,6 +78,9 @@ class MediaLibrarySettingType extends PatternSettingTypeBase { return ['entity_reference']; } + /** + * {@inheritdoc} + */ public function preprocessExposedField(FieldItemList $items) { foreach ($items as $item) { if ($item->entity !== NULL) { diff --git a/src/Plugin/UiPatterns/SettingType/ValueSettingType.php b/src/Plugin/UiPatterns/SettingType/ValueSettingType.php index eb5ca41..e1a5f9b 100644 --- a/src/Plugin/UiPatterns/SettingType/ValueSettingType.php +++ b/src/Plugin/UiPatterns/SettingType/ValueSettingType.php @@ -20,13 +20,16 @@ class ValueSettingType extends PatternSettingTypeBase { */ public function buildConfigurationForm( array $form, - $value, - $token_value, - $form_type + $value, + $token_value, + $form_type, ) { return []; } + /** + * {@inheritdoc} + */ public function settingsForm(array $form, $value, PatternDefinitionSetting $def, $form_type) { return []; } diff --git a/src/UiPatternsSettings.php b/src/UiPatternsSettings.php index 2a9f872..3267870 100644 --- a/src/UiPatternsSettings.php +++ b/src/UiPatternsSettings.php @@ -86,6 +86,8 @@ class UiPatternsSettings { * Is preview. * @param \Drupal\Core\Entity\EntityInterface $entity * The entity of the pattern. Useful for dynamic settings. + * @param array $element + * The element. * * @return array * The processed settings. @@ -120,7 +122,7 @@ class UiPatternsSettings { // Do nothing inside layout builder. } } - // Use exposed field value if no other setting is provided + // Use exposed field value if no other setting is provided. elseif (isset($processed_settings[$key]) && empty($settings[$key])) { $value = $processed_settings[$key]; } @@ -146,7 +148,8 @@ class UiPatternsSettings { $setting_definition = clone $setting_definition; $setting_definition->setDefinitions($variant_ary['settings'][$key]['definition']); } - } else { + } + else { $value = $variant_ary['settings'][$key]; } } @@ -223,7 +226,8 @@ class UiPatternsSettings { public static function getPatternConfiguration(PatternDefinition $definition, $variant = NULL, $name = NULL) { $additional = $definition->getAdditional(); $configuration = $additional['configuration'] ?? []; - // Check for variant configuration + + // Check for variant configuration. if (!empty($variant)) { $variant_ob = $definition->getVariant($variant); if ($variant_ob != NULL) { @@ -233,7 +237,8 @@ class UiPatternsSettings { } } } - // Check for settings configuration + + // Check for settings configuration. if (isset($additional['settings'][$name]['options'])) { foreach ($additional['settings'][$name]['options'] as $option_key => $option_value) { if (is_array($option_value) && isset($option_value['configuration'])) { diff --git a/src/UiPatternsSettingsDataProviderManager.php b/src/UiPatternsSettingsDataProviderManager.php index cf98a28..4bac7a8 100644 --- a/src/UiPatternsSettingsDataProviderManager.php +++ b/src/UiPatternsSettingsDataProviderManager.php @@ -34,6 +34,15 @@ class UiPatternsSettingsDataProviderManager extends DefaultPluginManager { $this->setCacheBackend($cache_backend, 'ui_patterns_settings_data_provider_plugins'); } + /** + * Get definitions by setting type. + * + * @param string $setting_type_id + * Settings type id. + + * @return array + * The definitions. + */ public function getDefinitionsBySettingType($setting_type_id) { $definitions = $this->getDefinitions(); $results = []; diff --git a/tests/modules/ui_patterns_settings_data_provider/src/Plugin/UiPatterns/SettingType/SampleComplexSettingType.php b/tests/modules/ui_patterns_settings_data_provider/src/Plugin/UiPatterns/SettingType/SampleComplexSettingType.php index 3912a2e..2619c1c 100644 --- a/tests/modules/ui_patterns_settings_data_provider/src/Plugin/UiPatterns/SettingType/SampleComplexSettingType.php +++ b/tests/modules/ui_patterns_settings_data_provider/src/Plugin/UiPatterns/SettingType/SampleComplexSettingType.php @@ -3,7 +3,6 @@ namespace Drupal\ui_patterns_settings_data_provider\Plugin\UIPatterns\SettingType; use Drupal\ui_patterns_settings\Plugin\ComplexSettingTypeBase; -use Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting; /** * Complex Setting Type. @@ -15,5 +14,4 @@ use Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting; */ class SampleComplexSettingType extends ComplexSettingTypeBase { - } diff --git a/tests/src/Kernel/ComplexSettingTypeTest.php b/tests/src/Kernel/ComplexSettingTypeTest.php index cdaa1a1..7751107 100644 --- a/tests/src/Kernel/ComplexSettingTypeTest.php +++ b/tests/src/Kernel/ComplexSettingTypeTest.php @@ -23,13 +23,11 @@ class ComplexSettingTypeTest extends KernelTestBase { ]; /** - * {@inheritdoc} + * Get setting type. + * + * @return \Drupal\ui_patterns_settings\Plugin\PatternSettingTypeInterface + * The settings type. */ - protected function setUp(): void { - parent::setUp(); - // Mock required services here. - } - private function getTestSettingType() { /** @var \Drupal\ui_patterns_settings_data_provider\Plugin\UIPatterns\SettingType\SampleComplexSettingType $sample_complex_setting_type */ $definition = new PatternDefinition([ @@ -42,6 +40,12 @@ class ComplexSettingTypeTest extends KernelTestBase { return UiPatternsSettings::createSettingType($definition, $this->getTestSettingDefinition()); } + /** + * Get setting definition. + * + * @return \Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting + * The settings. + */ private function getTestSettingDefinition() { return new PatternDefinitionSetting('sample_complex_setting_type', [ 'name' => 'sample_complex_setting_type', @@ -51,22 +55,26 @@ class ComplexSettingTypeTest extends KernelTestBase { } /** - * Test testSettingsForm. + * Test settings form. */ public function testSettingsForm() { $sample_definition = $this->getTestSettingDefinition(); $sample_complex_setting_type = $this->getTestSettingType(); - $fieldset = $sample_complex_setting_type->settingsForm([], '', $sample_definition, 'layout'); + $fieldset = $sample_complex_setting_type->settingsForm([], '', $sample_definition, 'layout'); self::assertArrayHasKey('sample_complex_setting_type', $fieldset); self::assertArrayHasKey('provider', $fieldset['sample_complex_setting_type']); self::assertArrayHasKey('foo', $fieldset['sample_complex_setting_type']['configuration']); self::assertArrayHasKey('#type', $fieldset['sample_complex_setting_type']['configuration']['foo']['config']); } + /** + * Test preprocess. + */ public function testPreprocess() { $sample_complex_setting_type = $this->getTestSettingType(); $context = []; $ary = $sample_complex_setting_type->preprocess(['provider' => 'foo'], $context); self::assertArrayHasKey('data', $ary); } + } diff --git a/ui_patterns_settings.api.php b/ui_patterns_settings.api.php index 1e09880..7210dae 100644 --- a/ui_patterns_settings.api.php +++ b/ui_patterns_settings.api.php @@ -18,7 +18,7 @@ * keys: * - #pattern_id: The pattern id. * - #variant: The variant id. - * - #context: The pattern context + * - #context: The pattern context. * * @see \Drupal\ui_patterns_settings\Element\PatternSettings */ @@ -34,14 +34,14 @@ function hook_ui_pattern_settings_settings_alter(array &$settings, array $contex * Implement this hook to override the configured pattern variant for * specific patterns or to configure custom variant logic. * - * @param $variant + * @param string $variant * Pattern variant. * @param array $context * Context Properties: The context and the entity of the pattern. * keys: * - #pattern_id: The pattern id. * - #variant: The variant id. - * - #context: The pattern context + * - #context: The pattern context. * * @see \Drupal\ui_patterns_settings\Element\PatternSettings */ diff --git a/ui_patterns_settings.module b/ui_patterns_settings.module index e651a8f..2c4042a 100644 --- a/ui_patterns_settings.module +++ b/ui_patterns_settings.module @@ -27,6 +27,15 @@ function ui_patterns_settings_ui_patterns_layouts_display_settings_form_alter(&$ SettingsFormBuilder::layoutForm($form, $definition, $configuration); } +/** + * Build media edit button. + * + * @param string $media_id + * The media id. + * + * @return array + * The button array. + */ function ui_patterns_settings_build_media_edit_button($media_id) { $media_entity_type = \Drupal::entityTypeManager()->getStorage('media')->getEntityType(); $edit_template = $media_entity_type->getLinkTemplate('edit-form'); @@ -48,10 +57,10 @@ function ui_patterns_settings_build_media_edit_button($media_id) { ], 'target' => '_blank', 'data-dialog-options' => json_encode([ - 'height' => $dialog_options['height'], - 'width' => $dialog_options['width'], - 'classes' => ['ui-dialog-content' => 'media-library-edit__modal'], - ]), + 'height' => $dialog_options['height'], + 'width' => $dialog_options['width'], + 'classes' => ['ui-dialog-content' => 'media-library-edit__modal'], + ]), 'data-dialog-type' => 'dialog', ], '#attached' => [ @@ -63,6 +72,7 @@ function ui_patterns_settings_build_media_edit_button($media_id) { ]; } + /** * Implements hook_preprocess_media_library_element(). */ @@ -73,8 +83,8 @@ function ui_patterns_settings_preprocess_media_library_element(&$variables) { $selection = &$variables['content']['selection'][$child]; $media_id = $selection['preview']['target_id']['#value'] ?? NULL; if ($media_id !== NULL) { - // Remove js-media-library-item - if (($key = array_search('js-media-library-item', $selection['#attributes']['class'])) !== false) { + // Remove js-media-library-item. + if (($key = array_search('js-media-library-item', $selection['#attributes']['class'])) !== FALSE) { unset($selection['#attributes']['class'][$key]); } $selection['media_edit'] = ui_patterns_settings_build_media_edit_button($media_id); @@ -149,8 +159,7 @@ function ui_patterns_settings_entity_field_storage_info_alter(&$fields, EntityTy /** @var \Drupal\field\Entity\FieldStorageConfig $field */ foreach ($fields as $field) { if ($field instanceof FieldStorageConfig) { - if (($mapping = UiPatternsSettings::getConfigManager() - ->getMapping($field->id())) !== NULL) { + if (($mapping = UiPatternsSettings::getConfigManager()->getMapping($field->id())) !== NULL) { [$pattern_id, $setting_id] = explode('::', $mapping); try { $pattern_definition = UiPatterns::getPatternDefinition($pattern_id); @@ -167,7 +176,8 @@ function ui_patterns_settings_entity_field_storage_info_alter(&$fields, EntityTy else { \Drupal::messenger()->addError('No pattern setting %setting found'); } - } catch (\Exception $e) { + } + catch (\Exception $e) { \Drupal::messenger()->addError($e->getMessage()); } } @@ -325,7 +335,7 @@ function ui_patterns_settings_layout_alter(&$definitions) { * Implements hook_ui_patterns_info_alter(). */ function ui_patterns_settings_ui_patterns_info_alter(&$definitions) { - /** @var PatternDefinition $definition */ + /** @var \Drupal\ui_patterns\Definition\PatternDefinition $definition */ foreach ($definitions as $definition) { $settings = UiPatternsSettings::getPatternDefinitionSettings($definition); foreach ($settings as $setting) { -- GitLab From 42f66e64dff033a7716e7518ada21817ed6113f2 Mon Sep 17 00:00:00 2001 From: Mohammed Nassar <msh.nassar@gmail.com> Date: Fri, 21 Feb 2025 15:50:53 +0000 Subject: [PATCH 15/15] ISSUE-3508202: Fix phpcs. --- src/Definition/PatternDefinitionSetting.php | 2 +- src/Element/PatternSettings.php | 4 ++-- src/Form/SettingsFormBuilder.php | 2 +- src/UiPatternsSettings.php | 2 +- src/UiPatternsSettingsDataProviderManager.php | 2 +- tests/src/Kernel/ComplexSettingTypeTest.php | 4 ++-- ui_patterns_settings.module | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Definition/PatternDefinitionSetting.php b/src/Definition/PatternDefinitionSetting.php index 8ecd754..18758ed 100644 --- a/src/Definition/PatternDefinitionSetting.php +++ b/src/Definition/PatternDefinitionSetting.php @@ -71,7 +71,7 @@ class PatternDefinitionSetting implements \ArrayAccess { $processed_options[$option_key] = $option_value; } } - } + } else { $processed_options = NULL; } diff --git a/src/Element/PatternSettings.php b/src/Element/PatternSettings.php index 47efa5a..65375b9 100644 --- a/src/Element/PatternSettings.php +++ b/src/Element/PatternSettings.php @@ -121,9 +121,9 @@ class PatternSettings implements TrustedCallbackInterface { } elseif (is_array($element[$key]) && is_array($setting)) { $element[$key] = array_merge($element[$key], $setting); - } + } elseif (empty($element[$key]) && !empty($setting)) { - // Handle Exposed fields. Overwrite expose fields if the setting is + // Handle Exposed fields. Overwrite expose fields if the setting is // provided but the variable prefilled with an empty field. // (e.g. component blocks) $setting_definition = UiPatternsSettings::getPatternDefinitionSetting(UiPatterns::getPatternDefinition($pattern_id), $name); diff --git a/src/Form/SettingsFormBuilder.php b/src/Form/SettingsFormBuilder.php index c0b172d..fa8dd14 100644 --- a/src/Form/SettingsFormBuilder.php +++ b/src/Form/SettingsFormBuilder.php @@ -41,7 +41,7 @@ class SettingsFormBuilder { if (!empty($entity_type_id)) { $content_entity_types[] = $entity_type_id; - } + } else { $entity_type_definitions = \Drupal::entityTypeManager()->getDefinitions(); /** @var EntityTypeInterface $definition */ diff --git a/src/UiPatternsSettings.php b/src/UiPatternsSettings.php index 3267870..7842a33 100644 --- a/src/UiPatternsSettings.php +++ b/src/UiPatternsSettings.php @@ -148,7 +148,7 @@ class UiPatternsSettings { $setting_definition = clone $setting_definition; $setting_definition->setDefinitions($variant_ary['settings'][$key]['definition']); } - } + } else { $value = $variant_ary['settings'][$key]; } diff --git a/src/UiPatternsSettingsDataProviderManager.php b/src/UiPatternsSettingsDataProviderManager.php index 4bac7a8..a24c9d3 100644 --- a/src/UiPatternsSettingsDataProviderManager.php +++ b/src/UiPatternsSettingsDataProviderManager.php @@ -39,7 +39,7 @@ class UiPatternsSettingsDataProviderManager extends DefaultPluginManager { * * @param string $setting_type_id * Settings type id. - + * * @return array * The definitions. */ diff --git a/tests/src/Kernel/ComplexSettingTypeTest.php b/tests/src/Kernel/ComplexSettingTypeTest.php index 7751107..b8a9e8d 100644 --- a/tests/src/Kernel/ComplexSettingTypeTest.php +++ b/tests/src/Kernel/ComplexSettingTypeTest.php @@ -24,7 +24,7 @@ class ComplexSettingTypeTest extends KernelTestBase { /** * Get setting type. - * + * * @return \Drupal\ui_patterns_settings\Plugin\PatternSettingTypeInterface * The settings type. */ @@ -42,7 +42,7 @@ class ComplexSettingTypeTest extends KernelTestBase { /** * Get setting definition. - * + * * @return \Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting * The settings. */ diff --git a/ui_patterns_settings.module b/ui_patterns_settings.module index 2c4042a..35b2ad7 100644 --- a/ui_patterns_settings.module +++ b/ui_patterns_settings.module @@ -176,7 +176,7 @@ function ui_patterns_settings_entity_field_storage_info_alter(&$fields, EntityTy else { \Drupal::messenger()->addError('No pattern setting %setting found'); } - } + } catch (\Exception $e) { \Drupal::messenger()->addError($e->getMessage()); } -- GitLab