class InsertCommand

Same name in other branches
  1. 9 core/lib/Drupal/Core/Ajax/InsertCommand.php \Drupal\Core\Ajax\InsertCommand
  2. 10 core/lib/Drupal/Core/Ajax/InsertCommand.php \Drupal\Core\Ajax\InsertCommand
  3. 11.x core/lib/Drupal/Core/Ajax/InsertCommand.php \Drupal\Core\Ajax\InsertCommand

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.

Hierarchy

Expanded class hierarchy of InsertCommand

Related topics

5 files declare their use of InsertCommand
AjaxCommandsTest.php in core/tests/Drupal/Tests/Core/Ajax/AjaxCommandsTest.php
AjaxRenderer.php in core/lib/Drupal/Core/Render/MainContent/AjaxRenderer.php
ajax_forms_test.module in core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.module
Simpletest mock module for Ajax forms testing.
CommandsTest.php in core/tests/Drupal/KernelTests/Core/Ajax/CommandsTest.php
EarlyRenderingTestController.php in core/modules/system/tests/modules/early_rendering_controller_test/src/EarlyRenderingTestController.php

File

core/lib/Drupal/Core/Ajax/InsertCommand.php, line 17

Namespace

Drupal\Core\Ajax
View source
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,
        ];
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
CommandWithAttachedAssetsTrait::$attachedAssets protected property The attached assets for this Ajax command.
CommandWithAttachedAssetsTrait::getAttachedAssets public function Gets the attached assets.
CommandWithAttachedAssetsTrait::getRenderedContent protected function Processes the content for output.
InsertCommand::$content protected property The content for the matched element(s).
InsertCommand::$selector protected property A CSS selector string.
InsertCommand::$settings protected property A settings array to be passed to any attached JavaScript behavior.
InsertCommand::render public function Implements Drupal\Core\Ajax\CommandInterface:render(). Overrides CommandInterface::render 6
InsertCommand::__construct public function Constructs an InsertCommand object.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.