Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. SettingsCommand.php

class 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

Ajax API
Overview for Drupal's Ajax API.

File

core/lib/Drupal/Core/Ajax/SettingsCommand.php, line 19

Namespace

Drupal\Core\Ajax
View 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() {
        if (isset($this->settings['ajax_page_state']['libraries'])) {
            $this->settings['ajax_page_state']['libraries'] = UrlHelper::compressQueryParameter($this->settings['ajax_page_state']['libraries']);
        }
        return [
            'command' => 'settings',
            'settings' => $this->settings,
            'merge' => $this->merge,
        ];
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
SettingsCommand::$merge protected property Whether the settings should be merged into the global drupalSettings.
SettingsCommand::$settings protected property An array of key/value pairs of JavaScript settings.
SettingsCommand::render public function Implements Drupal\Core\Ajax\CommandInterface:render(). Overrides CommandInterface::render
SettingsCommand::__construct public function Constructs a SettingsCommand object.
RSS feed
Powered by Drupal