diff --git a/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php b/tests/src/FunctionalJavascript/WebformJavaScriptSettingJavaScriptTest.php index e306b12951ca1f130b783aba88e030e46e7fc8c1..6f625b58650b7206d350defffc453eadae8525be 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 d286ffcc0cd594505c8e5f39356406c23ee1b592..02548c7d561807787b18882678af588036af29e8 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 b90354d1acc5d75243721592b50c6c045d84c090..c52ccce2cfe17c56c86214b94cb00872e742cf30 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');