From 251930a6ea7cfa1b70eeca05bf02a1325918c469 Mon Sep 17 00:00:00 2001 From: jrockowitz <3537824+jrockowitz@users.noreply.github.com> Date: Wed, 12 Apr 2023 16:26:37 -0400 Subject: [PATCH] Minor improvements --- ...WebformJavaScriptSettingJavaScriptTest.php | 2 ++ webform_javascript_setting.install | 36 +++++++++++++------ webform_javascript_setting.module | 4 ++- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php b/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php index e306b12..6f625b5 100644 --- a/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php +++ b/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php @@ -1,5 +1,7 @@ <?php +declare(strict_types = 1); + namespace Drupal\Tests\webform_setting_javascript\FunctionalJavascript; use Drupal\FunctionalJavascriptTests\WebDriverTestBase; diff --git a/webform_javascript_setting.install b/webform_javascript_setting.install index d286ffc..02548c7 100644 --- a/webform_javascript_setting.install +++ b/webform_javascript_setting.install @@ -8,17 +8,31 @@ /** * Implements hook_install(). */ -function webform_javascript_setting_install() { +function webform_javascript_setting_install(bool $is_syncing): void { + if ($is_syncing) { + return; + } + + $settings = []; + + // Acquia Personalization: Client ID. + if (\Drupal::moduleHandler()->moduleExists('acquia_perz')) { + $settings[] = [ + 'setting' => 'AcquiaLift.liftWebIdentity.tc_ptid', + 'label' => 'Acquia Personalization: Client ID', + ]; + } + + // Include Drupal: User ID as an example. + if (empty($settings)) { + $settings[] = [ + 'setting' => 'drupalSettings.user.uid', + 'label' => 'Drupal: User ID', + ]; + } + /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */ $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager'); - $third_party_settings_manager->setThirdPartySetting( - 'webform_javascript_setting', - 'settings', - [ - [ - 'setting' => 'drupalSettings.user.uid', - 'label' => 'Drupal: User ID', - ], - ], - ); + $third_party_settings_manager + ->setThirdPartySetting('webform_javascript_setting', 'settings', $settings); } diff --git a/webform_javascript_setting.module b/webform_javascript_setting.module index b90354d..c52ccce 100644 --- a/webform_javascript_setting.module +++ b/webform_javascript_setting.module @@ -5,12 +5,14 @@ * Provides an element that pulls a JavaScript object''s setting into a hidden field. */ +declare(strict_types = 1); + use Drupal\Core\Form\FormStateInterface; /** * Implements hook_webform_admin_third_party_settings_form_alter(). */ -function webform_javascript_setting_webform_admin_third_party_settings_form_alter(&$form, FormStateInterface $form_state) { +function webform_javascript_setting_webform_admin_third_party_settings_form_alter(array &$form, FormStateInterface $form_state): void { /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */ $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager'); $settings = $third_party_settings_manager->getThirdPartySetting('webform_javascript_setting', 'settings'); -- GitLab