class SettingsCommand in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Ajax/SettingsCommand.php \Drupal\Core\Ajax\SettingsCommand
- 9 core/lib/Drupal/Core/Ajax/SettingsCommand.php \Drupal\Core\Ajax\SettingsCommand
AJAX command for adjusting Drupal's JavaScript settings.
The 'settings' command instructs the client either to use the given array as the settings for ajax-loaded content or to extend drupalSettings with the given array, depending on the value of the $merge parameter.
This command is implemented by Drupal.AjaxCommands.prototype.settings() defined in misc/ajax.js.
Hierarchy
- class \Drupal\Core\Ajax\SettingsCommand implements \Drupal\Core\Ajax\CommandInterface
Expanded class hierarchy of SettingsCommand
Related topics
3 files declare their use of SettingsCommand
- AjaxCommandsTest.php in core/tests/ Drupal/ Tests/ Core/ Ajax/ AjaxCommandsTest.php 
- ajax_forms_test.module in core/modules/ system/ tests/ modules/ ajax_forms_test/ ajax_forms_test.module 
- Mock module for Ajax forms testing.
- FrameworkTest.php in core/modules/ system/ tests/ src/ Functional/ Ajax/ FrameworkTest.php 
File
- core/lib/ Drupal/ Core/ Ajax/ SettingsCommand.php, line 17 
Namespace
Drupal\Core\AjaxView source
class SettingsCommand implements CommandInterface {
  /**
   * An array of key/value pairs of JavaScript settings.
   *
   * This will be used for all commands after this if they do not include their
   * own settings array.
   *
   * @var array
   */
  protected $settings;
  /**
   * Whether the settings should be merged into the global drupalSettings.
   *
   * By default (FALSE), the settings that are passed to Drupal.attachBehaviors
   * will not include the global drupalSettings.
   *
   * @var bool
   */
  protected $merge;
  /**
   * Constructs a SettingsCommand object.
   *
   * @param array $settings
   *   An array of key/value pairs of JavaScript settings.
   * @param bool $merge
   *   Whether the settings should be merged into the global drupalSettings.
   */
  public function __construct(array $settings, $merge = FALSE) {
    $this->settings = $settings;
    $this->merge = $merge;
  }
  /**
   * Implements Drupal\Core\Ajax\CommandInterface:render().
   */
  public function render() {
    return [
      'command' => 'settings',
      'settings' => $this->settings,
      'merge' => $this->merge,
    ];
  }
}