/** * Generates the button dropdown. * @return string the rendering result. */ protected function renderButton() { Html::addCssClass($this->options, ['widget' => 'btn']); $label = $this->label; if ($this->encodeLabel) { $label = Html::encode($label); } if ($this->split) { $options = $this->options; $this->options['data-toggle'] = 'dropdown'; Html::addCssClass($this->options, ['toggle' => 'dropdown-toggle']); unset($this->options['id']); $splitButton = Button::widget(['label' => '<span class="caret"></span>', 'encodeLabel' => false, 'options' => $this->options, 'view' => $this->getView()]); } else { $label .= ' <span class="caret"></span>'; $options = $this->options; if (!isset($options['href'])) { $options['href'] = '#'; } Html::addCssClass($options, ['toggle' => 'dropdown-toggle']); $options['data-toggle'] = 'dropdown'; $splitButton = ''; } return Button::widget(['tagName' => $this->tagName, 'label' => $label, 'options' => $options, 'encodeLabel' => false, 'view' => $this->getView()]) . "\n" . $splitButton; }
/** * Generates the buttons that compound the group as specified on [[buttons]]. * @return string the rendering result. */ protected function renderButtons() { $buttons = []; foreach ($this->buttons as $button) { if (is_array($button)) { $visible = ArrayHelper::remove($button, 'visible', true); if ($visible === false) { continue; } $button['view'] = $this->getView(); if (!isset($button['encodeLabel'])) { $button['encodeLabel'] = $this->encodeLabels; } $buttons[] = Button::widget($button); } else { $buttons[] = $button; } } return implode("\n", $buttons); }