Back to DropdownButton class

Method prepareOptions

protected void
prepareOptions
(array &$options)
Prepare options for this button.
Parameters
  • array $options The options about this button.
Returns
  • void
Since
  • 4.0.0
-
  • \Exception

Method prepareOptions - Source code

/**
 * Prepare options for this button.
 *
 * @param   array  $options  The options about this button.
 *
 * @return  void
 *
 * @since   4.0.0
 * @throws  \Exception
 */
protected function prepareOptions(array &$options)
{
    parent::prepareOptions($options);
    $childToolbar = $this->getChildToolbar();
    $options['hasButtons'] = \count($childToolbar->getItems()) > 0;
    $buttons = $childToolbar->getItems();
    if ($options['hasButtons']) {
        if ($this->getOption('toggleSplit', true)) {
            /** @var ToolbarButton $button */
            $button = array_shift($buttons);
            $childToolbar->setItems($buttons);
            $options['button'] = $button->render();
            $options['caretClass'] = $options['toggleButtonClass'] ?? $button->getButtonClass();
            $options['dropdownItems'] = $childToolbar->render(['is_child' => true]);
        } else {
            $options['dropdownItems'] = $childToolbar->render(['is_child' => true]);
            $button = new BasicButton($this->getName(), $this->getText(), $options);
            $options['button'] = $button->setParent($this->parent)->buttonClass($button->getButtonClass() . ' dropdown-toggle')->attributes(['data-bs-toggle' => 'dropdown', 'data-bs-target' => '#' . $this->fetchId(), 'aria-haspopup' => 'true', 'aria-expanded' => 'false'])->render();
        }
    }
}