/** * {@inheritdoc} */ public function processDefinition(&$definition, $plugin_id) { parent::processDefinition($definition, $plugin_id); /** @var ProviderInterface $provider */ $provider = new $definition['class'](['theme' => $this->theme], $plugin_id, $definition); $provider->processDefinition($definition, $plugin_id); }
/** * {@inheritdoc} */ public function getDefinitions($sorted = TRUE) { $definitions = parent::getDefinitions(); // Sort by the schema number (a.k.a. plugin ID). if ($sorted) { uasort($definitions, function ($a, $b) { return SortArray::sortByKeyInt($a, $b, 'id'); }); } return $definitions; }
/** * {@inheritdoc} */ public function getDefinitions($sorted = TRUE) { $definitions = parent::getDefinitions(FALSE); if ($sorted) { $groups = []; foreach ($definitions as $plugin_id => $definition) { $key = !empty($definition['groups']) ? implode(':', array_keys($definition['groups'])) : '_default'; $groups[$key][$plugin_id] = $definition; } ksort($groups); $definitions = []; foreach ($groups as $settings) { uasort($settings, [$this, 'sort']); $definitions = array_merge($definitions, $settings); } } return $definitions; }
/** * Constructs a new \Drupal\bootstrap\Plugin\ProcessManager object. * * @param \Drupal\bootstrap\Theme $theme * The theme to use for discovery. */ public function __construct(Theme $theme) { parent::__construct($theme, 'Plugin/Process', 'Drupal\\bootstrap\\Plugin\\Process\\ProcessInterface', 'Drupal\\bootstrap\\Annotation\\BootstrapProcess'); $this->setCacheBackend(\Drupal::cache('discovery'), 'theme:' . $theme->getName() . ':process', $this->getCacheTags()); }