Skip to content

Commit 3f8ef20

Browse files
committed
Buttongroup implementation
1 parent d6de978 commit 3f8ef20

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php namespace Kris\LaravelFormBuilder\Fields;
2+
3+
use Kris\LaravelFormBuilder\Fields\FormField;
4+
5+
class ButtonGroupType extends FormField {
6+
7+
protected function getTemplate()
8+
{
9+
return 'fields.buttongroup';
10+
}
11+
12+
public function render(array $options = [], $showLabel = true, $showField = true, $showError = true)
13+
{
14+
$options['splitted'] = $this->getOption('splitted', false);
15+
$options['size'] = $this->getOption('size', 'md');
16+
$options['buttons'] = $this->getOption('buttons', []);
17+
18+
return parent::render($options, $showLabel, $showField, $showError);
19+
}
20+
}

src/Kris/LaravelFormBuilder/FormHelper.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class FormHelper
6565
'select' => 'SelectType',
6666
'textarea' => 'TextareaType',
6767
'button' => 'ButtonType',
68+
'buttongroup' => 'ButtonGroupType',
6869
'submit' => 'ButtonType',
6970
'reset' => 'ButtonType',
7071
'radio' => 'CheckableType',

src/config/config.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
'text' => 'laravel-form-builder::text',
2929
'textarea' => 'laravel-form-builder::textarea',
3030
'button' => 'laravel-form-builder::button',
31+
'buttongroup' => 'laravel-form-builder::buttongroup',
3132
'radio' => 'laravel-form-builder::radio',
3233
'checkbox' => 'laravel-form-builder::checkbox',
3334
'select' => 'laravel-form-builder::select',

src/views/buttongroup.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php if ($options['wrapper'] !== false): ?>
2+
<div <?= $options['wrapperAttrs'] ?> >
3+
<?php endif; ?>
4+
5+
<?php if ( $options['splitted'] ): ?>
6+
<div class="btn-group btn-group-<?= $options['size'] ?>">
7+
<?php endif; ?>
8+
9+
<?php foreach($options['buttons'] as $button): ?>
10+
<?= Form::button($button['label'], $button['attr']) ?>
11+
<?php endforeach; ?>
12+
13+
<?php if ( $options['splitted'] ): ?>
14+
</div>
15+
<?php endif; ?>
16+
17+
18+
<?php if ($options['wrapper'] !== false): ?>
19+
</div>
20+
<?php endif; ?>

0 commit comments

Comments
 (0)