/** * {@inheritdoc} */ public function getValueOptions() { if (!isset($this->valueOptions)) { $this->valueTitle = $this->t('Payment status'); foreach ($this->paymentStatusManager->getDefinitions() as $plugin_id => $definition) { $this->valueOptions[$plugin_id] = $definition['label']; } } return $this->valueOptions; }
/** * Returns a hierarchical representation of payment statuses. * * @param string[]|null $limit_plugin_ids * An array of plugin IDs to limit the statuses to, or NULL to allow all. * * @return array[] * A possibly infinitely nested associative array. Keys are plugin IDs and * values are arrays of similar structure as this method's return value. */ protected function buildHierarchy(array $limit_plugin_ids = NULL) { static $hierarchy = NULL; if (is_null($hierarchy)) { $parents = []; $children = []; $definitions = $this->paymentStatusManager->getDefinitions(); if (is_array($limit_plugin_ids)) { $definitions = array_intersect_key($definitions, array_flip($limit_plugin_ids)); } uasort($definitions, array($this, 'sort')); foreach ($definitions as $plugin_id => $definition) { if (!empty($definition['parent_id'])) { $children[$definition['parent_id']][] = $plugin_id; } else { $parents[] = $plugin_id; } } $hierarchy = $this->buildHierarchyLevel($parents, $children); } return $hierarchy; }