public static function ActionsDropbutton::processElement in Express 8
Process a specific form element.
Parameters
\Drupal\bootstrap\Utility\Element $element: The element object.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
array $complete_form: The complete form structure.
Overrides ProcessBase::processElement
See also
\Drupal\bootstrap\Plugin\Process\ProcessBase::process()
\Drupal\bootstrap\Plugin\Alter\ElementInfo::alter()
File
- themes/
contrib/ bootstrap/ src/ Plugin/ Process/ ActionsDropbutton.php, line 31 - Contains \Drupal\bootstrap\Plugin\Process\ActionsDropbutton.
Class
- ActionsDropbutton
- Replaces the process callback for dropbuttons on an "actions" element.
Namespace
Drupal\bootstrap\Plugin\ProcessCode
public static function processElement(Element $element, FormStateInterface $form_state, array &$complete_form) {
$dropbuttons = Element::create();
foreach ($element
->children(TRUE) as $key => $child) {
if ($dropbutton = $child
->getProperty('dropbutton')) {
// If there is no dropbutton for this button group yet, create one.
if (!isset($dropbuttons->{$dropbutton})) {
$dropbuttons->{$dropbutton} = [
'#type' => 'dropbutton',
];
}
$dropbuttons[$dropbutton]['#links'][$key] = $child
->getArray();
// Remove original child from the element so it's not rendered twice.
$child
->setProperty('printed', TRUE);
}
}
$element
->exchangeArray($dropbuttons
->getArray() + $element
->getArray());
}