button_box

    public function button_box()
    {
        return _class('html')->button_box('input_name', ['k1' => 'key1', 'k2' => 'key2']);
    }
    public function button_box($name, $values = [], $selected = '', $extra = [])
    {
        if ($this->_is_bs5) {
            return $this->_bs5()->button_box($name, $values, $selected, $extra);
        }
        if (is_array($name)) {
            $extra = (array) $extra + $name;
            $name = ($extra['name'] ?? null);
        }
        $desc = isset($extra['desc']) ? ($extra['desc'] ?? null) : ucfirst(str_replace('_', '', $name));
        $values = isset($extra['values']) ? ($extra['values'] ?? null) : (array) $values; // Required
        $translate = isset($extra['translate']) ? ($extra['translate'] ?? null) : 0;
        if (($extra['no_translate'] ?? null)) {
            $translate = 0;
        }
        $selected = isset($extra['selected']) ? ($extra['selected'] ?? null) : $selected;
        $extra['id'] = ($extra['id'] ?? null) ?: __FUNCTION__ . '_' . ($this->_ids[__FUNCTION__] = ($this->_ids[__FUNCTION__] ?? 0) + 1);
        if ( ! $values) {
            return false;
        }
        $selected = (string) $selected;

        $items = [];
        $selected_val = '';
        foreach ((array) $values as $key => $cur_value) {
            $_what_compare = $key;
            $is_selected = $_what_compare == $selected;
            $val = $translate ? t($cur_value) : $cur_value;
            $items[] = '<li class="dropdown' . ($is_selected ? ' active' : '') . '"><a data-value="' . $key . '"' . ($is_selected ? ' data-selected="selected"' : '') . '>' . $val . '</a></li>';
            if ($is_selected) {
                $selected_val = $val;
            }
        }
        $class = ($extra['class'] ?? null) ?: 'btn dropdown-toggle';
        ($extra['class_add'] ?? null) && $class .= ' ' . ($extra['class_add'] ?? null);
        $text = $selected_val ?: $desc;

        $body = [];
        $body[] = '<div class="btn-group" id="' . ($extra['id'] ?? null) . '">';
        if (($extra['button_split'] ?? null)) {
            $body[] = '<button class="btn">' . $text . '</button>';
            $body[] = '<button class="' . $class . '" data-toggle="dropdown"><span class="caret"></span></button>';
        } else {
            $body[] = '<button class="' . $class . '" data-toggle="dropdown">' . $text . ' <span class="caret"></span></button>';
        }
        $body[] = '<ul class="dropdown-menu">';
        foreach ($items as $v) {
            $body[] = $v;
        }
        $body[] = '</ul>';
        $body[] = '</div>';
        return implode(PHP_EOL, $body);
    }