Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Ajax/AjaxResponse.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\Core\Ajax; use Drupal\Core\Render\BubbleableMetadata; use Drupal\Core\Render\AttachmentsInterface; use Drupal\Core\Render\AttachmentsTrait; use Symfony\Component\HttpFoundation\JsonResponse; /** * JSON response object for AJAX requests. * * @ingroup ajax */ class AjaxResponse extends JsonResponse implements AttachmentsInterface { use AttachmentsTrait; /** * The array of ajax commands. * * @var array */ protected $commands = []; /** * Add an AJAX command to the response. * * @param \Drupal\Core\Ajax\CommandInterface $command * An AJAX command object implementing CommandInterface. * @param bool $prepend * A boolean which determines whether the new command should be executed * before previously added commands. Defaults to FALSE. * * @return AjaxResponse * The current AjaxResponse. */ public function addCommand(CommandInterface $command, $prepend = FALSE) { if ($prepend) { array_unshift($this->commands, $command->render()); } else { $this->commands[] = $command->render(); } if ($command instanceof CommandWithAttachedAssetsInterface) { $assets = $command->getAttachedAssets(); $attachments = [ 'library' => $assets->getLibraries(), 'drupalSettings' => $assets->getSettings(), ]; $attachments = BubbleableMetadata::mergeAttachments($this->getAttachments(), $attachments); $this->setAttachments($attachments); } return $this; } /** * Gets all AJAX commands. * * @return \Drupal\Core\Ajax\CommandInterface[] * Returns all previously added AJAX commands. */ public function &getCommands() { return $this->commands; } }