Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Ajax/SettingsCommand.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line source
<?php namespace Drupal\Core\Ajax; /** * 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. * * @ingroup ajax */ 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, ]; } }