annotate core/lib/Drupal/Core/Ajax/CommandWithAttachedAssetsTrait.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Core\Ajax;
Chris@0 4
Chris@0 5 use Drupal\Core\Asset\AttachedAssets;
Chris@0 6
Chris@0 7 /**
Chris@0 8 * Trait for Ajax commands that render content and attach assets.
Chris@0 9 *
Chris@0 10 * @ingroup ajax
Chris@0 11 */
Chris@0 12 trait CommandWithAttachedAssetsTrait {
Chris@0 13
Chris@0 14 /**
Chris@0 15 * The attached assets for this Ajax command.
Chris@0 16 *
Chris@0 17 * @var \Drupal\Core\Asset\AttachedAssets
Chris@0 18 */
Chris@0 19 protected $attachedAssets;
Chris@0 20
Chris@0 21 /**
Chris@0 22 * Processes the content for output.
Chris@0 23 *
Chris@0 24 * If content is a render array, it may contain attached assets to be
Chris@0 25 * processed.
Chris@0 26 *
Chris@0 27 * @return string|\Drupal\Component\Render\MarkupInterface
Chris@0 28 * HTML rendered content.
Chris@0 29 */
Chris@0 30 protected function getRenderedContent() {
Chris@0 31 $this->attachedAssets = new AttachedAssets();
Chris@0 32 if (is_array($this->content)) {
Chris@0 33 $html = \Drupal::service('renderer')->renderRoot($this->content);
Chris@0 34 $this->attachedAssets = AttachedAssets::createFromRenderArray($this->content);
Chris@0 35 return $html;
Chris@0 36 }
Chris@0 37 else {
Chris@0 38 return $this->content;
Chris@0 39 }
Chris@0 40 }
Chris@0 41
Chris@0 42 /**
Chris@0 43 * Gets the attached assets.
Chris@0 44 *
Chris@0 45 * @return \Drupal\Core\Asset\AttachedAssets|null
Chris@0 46 * The attached assets for this command.
Chris@0 47 */
Chris@0 48 public function getAttachedAssets() {
Chris@0 49 return $this->attachedAssets;
Chris@0 50 }
Chris@0 51
Chris@0 52 }