express-8.x-1.x-dev/themes/contrib/bootstrap/src/Plugin/PrerenderManager.php
themes/contrib/bootstrap/src/Plugin/PrerenderManager.php
<?php /** * @file * Contains \Drupal\bootstrap\Plugin\PrerenderManager. */ namespace Drupal\bootstrap\Plugin; use Drupal\bootstrap\Theme; use Drupal\bootstrap\Utility\Element; /** * Manages discovery and instantiation of Bootstrap pre-render callbacks. * * @ingroup plugins_prerender */ class PrerenderManager extends PluginManager { /** * Constructs a new \Drupal\bootstrap\Plugin\PrerenderManager object. * * @param \Drupal\bootstrap\Theme $theme * The theme to use for discovery. */ public function __construct(Theme $theme) { parent::__construct($theme, 'Plugin/Prerender', 'Drupal\bootstrap\Plugin\Prerender\PrerenderInterface', 'Drupal\bootstrap\Annotation\BootstrapPrerender'); $this->setCacheBackend(\Drupal::cache('discovery'), 'theme:' . $theme->getName() . ':prerender', $this->getCacheTags()); } /** * Pre-render render array element callback. * * @param array $element * The render array element. * * @return array * The modified render array element. */ public static function preRender(array $element) { if (!empty($element['#bootstrap_ignore_pre_render'])) { return $element; } $e = Element::create($element); if ($e->isType('machine_name')) { $e->addClass('form-inline', 'wrapper_attributes'); } // Add smart descriptions to the element, if necessary. $e->smartDescription(); return $element; } }