12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?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,
- ];
- }
- }
|