TbHtml::buttonGroup PHP Method

buttonGroup() public static method

Generates a button group.
public static buttonGroup ( array $buttons, array $htmlOptions = [] ) : string
$buttons array the button configurations.
$htmlOptions array additional HTML options.
return string the generated button group.
    public static function buttonGroup(array $buttons, $htmlOptions = array())
    {
        if (!empty($buttons)) {
            self::addCssClass('btn-group', $htmlOptions);
            if (TbArray::popValue('vertical', $htmlOptions, false)) {
                self::addCssClass('btn-group-vertical', $htmlOptions);
            }
            $toggle = TbArray::popValue('toggle', $htmlOptions);
            $name = TbArray::popValue('name', $htmlOptions);
            if (!empty($name) && substr($name, -2) !== '[]') {
                $name .= '[]';
            }
            if (in_array($toggle, array(self::BUTTON_TOGGLE_CHECKBOX, self::BUTTON_TOGGLE_RADIO))) {
                $htmlOptions['data-toggle'] = 'buttons';
                if (empty($name)) {
                    if ($toggle === self::BUTTON_TOGGLE_CHECKBOX) {
                        $name = 'checkbox[]';
                    } elseif ($toggle === self::BUTTON_TOGGLE_RADIO) {
                        $name = 'radio[]';
                    }
                }
            } else {
                $htmlOptions['data-toggle'] = $toggle;
            }
            $parentOptions = array('color' => TbArray::popValue('color', $htmlOptions), 'size' => TbArray::popValue('size', $htmlOptions), 'disabled' => TbArray::popValue('disabled', $htmlOptions));
            $output = self::openTag('div', $htmlOptions);
            foreach ($buttons as $buttonOptions) {
                if (isset($buttonOptions['visible']) && $buttonOptions['visible'] === false) {
                    continue;
                }
                // todo: consider removing the support for htmlOptions.
                $options = TbArray::popValue('htmlOptions', $buttonOptions, array());
                if (!empty($options)) {
                    $buttonOptions = TbArray::merge($options, $buttonOptions);
                }
                $buttonLabel = TbArray::popValue('label', $buttonOptions, '');
                $buttonOptions = TbArray::copyValues(array('color', 'size', 'disabled'), $parentOptions, $buttonOptions);
                TbArray::defaultValue('color', 'default', $buttonOptions);
                $items = TbArray::popValue('items', $buttonOptions, array());
                if (!empty($items)) {
                    $output .= self::buttonDropdown($buttonLabel, $items, $buttonOptions);
                } else {
                    if (in_array($toggle, array(self::BUTTON_TOGGLE_CHECKBOX, self::BUTTON_TOGGLE_RADIO))) {
                        // Put the "button" label back into its options and add a few label options as well
                        $buttonOptions['label'] = $buttonLabel;
                        self::addCssClass(array('btn', 'btn-' . TbArray::getValue('color', $buttonOptions)), $buttonOptions['labelOptions']);
                        $checked = TbArray::popValue('checked', $buttonOptions, false);
                        if ($checked) {
                            self::addCssClass('active', $buttonOptions['labelOptions']);
                        }
                        if ($toggle === self::BUTTON_TOGGLE_CHECKBOX) {
                            // BS3 toggle uses checkbox...
                            $output .= self::checkBox($name, $checked, $buttonOptions);
                        } elseif ($toggle === self::BUTTON_TOGGLE_RADIO) {
                            // ...or BS3 toggle uses radio
                            $output .= self::radioButton($name, $checked, $buttonOptions);
                        }
                    } else {
                        $output .= self::linkButton($buttonLabel, $buttonOptions);
                    }
                }
            }
            $output .= '</div>';
            return $output;
        }
        return '';
    }

Usage Example

<?php

$this->breadcrumbs = array('Items' => array('admin'), 'Update');
?>

<?php 
if (Yii::app()->user->hasFlash('warning')) {
    ?>
    <?php 
    $this->widget('bootstrap.widgets.TbAlert');
}
?>
 

<?php 
$box = $this->beginWidget('yiiwheels.widgets.box.WhBox', array('title' => Yii::t('app', 'Update Item'), 'headerIcon' => 'ace-icon fa fa-tags', 'htmlHeaderOptions' => array('class' => 'widget-header-flat widget-header-small'), 'content' => $this->renderPartial('_form_image', array('model' => $model, 'price_tiers' => $price_tiers), true), 'headerButtons' => array(TbHtml::buttonGroup(array(array('label' => Yii::t('app', ''), 'url' => Yii::app()->createUrl('Item/Admin'), 'icon' => 'ace-icon fa fa-undo white')), array('color' => TbHtml::BUTTON_COLOR_INVERSE, 'size' => TbHtml::BUTTON_SIZE_SMALL)))));
?>
  

<?php 
$this->endWidget();
All Usage Examples Of TbHtml::buttonGroup
TbHtml