Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Ajax/InsertCommand.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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Ajax/InsertCommand.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,78 @@ +<?php + +namespace Drupal\Core\Ajax; + +/** + * Generic AJAX command for inserting content. + * + * This command instructs the client to insert the given HTML using whichever + * jQuery DOM manipulation method has been specified in the #ajax['method'] + * variable of the element that triggered the request. + * + * This command is implemented by Drupal.AjaxCommands.prototype.insert() + * defined in misc/ajax.js. + * + * @ingroup ajax + */ +class InsertCommand implements CommandInterface, CommandWithAttachedAssetsInterface { + + use CommandWithAttachedAssetsTrait; + + /** + * A CSS selector string. + * + * If the command is a response to a request from an #ajax form element then + * this value can be NULL. + * + * @var string + */ + protected $selector; + + /** + * The content for the matched element(s). + * + * Either a render array or an HTML string. + * + * @var string|array + */ + protected $content; + + /** + * A settings array to be passed to any attached JavaScript behavior. + * + * @var array + */ + protected $settings; + + /** + * Constructs an InsertCommand object. + * + * @param string $selector + * A CSS selector. + * @param string|array $content + * The content that will be inserted in the matched element(s), either a + * render array or an HTML string. + * @param array $settings + * An array of JavaScript settings to be passed to any attached behaviors. + */ + public function __construct($selector, $content, array $settings = NULL) { + $this->selector = $selector; + $this->content = $content; + $this->settings = $settings; + } + + /** + * Implements Drupal\Core\Ajax\CommandInterface:render(). + */ + public function render() { + + return [ + 'command' => 'insert', + 'method' => NULL, + 'selector' => $this->selector, + 'data' => $this->getRenderedContent(), + 'settings' => $this->settings, + ]; + } + +}