protected ElementInfoManager::buildInfo($theme_name)
Builds up all element information.
string $theme_name: The theme name.
array
protected function buildInfo($theme_name) { // Get cached definitions. $cid = $this->getCid($theme_name); if ($cache = $this->cacheBackend->get($cid)) { return $cache->data; } // Otherwise, rebuild and cache. $info = []; foreach ($this->getDefinitions() as $element_type => $definition) { $element = $this->createInstance($element_type); $element_info = $element->getInfo(); // If this is element is to be used exclusively in a form, denote that it // will receive input, and assign the value callback. if ($element instanceof FormElementInterface) { $element_info['#input'] = TRUE; $element_info['#value_callback'] = array($definition['class'], 'valueCallback'); } $info[$element_type] = $element_info; } foreach ($info as $element_type => $element) { $info[$element_type]['#type'] = $element_type; } // Allow modules to alter the element type defaults. $this->moduleHandler->alter('element_info', $info); $this->themeManager->alter('element_info', $info); $this->cacheBackend->set($cid, $info, Cache::PERMANENT, ['element_info_build']); return $info; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Render!ElementInfoManager.php/function/ElementInfoManager::buildInfo/8.1.x