SmartUI::Button Class
This is a basic usage of SmartUI's Button
class. If you want to know more about the real HTML layout, click here
SmartUI::Button([$content = '', $type = 'default', $options = array()])
Setup
$ui = new SmartUI;
$btn = $ui->create_button('Button Content', 'default');
Usage
$btn->attr('href' => 'http://your-url.com');
Print it!
$btn->print_html();
Property Reference
Below are the list of available properties for the class:
Button::options
An array
$options = array(
'disabled' => false,
'labeled' => false // must have the Button::icon property
);
// sample call
$btn->options(array('disabled'=>true, 'labeled'=>true));
// or ...
$btn->options('disabled', true)->options('labeled', true);
Button::content
A string
- main content of the button. You can set this upon SmartUI::create_button('Click Me');
$btn->content('Click Me');
Button::icon
A string
- icon of the button (e.g. fa-check
)
$btn->icon('fa-check');
Button::type
A string
- button type (default
, danger
, etc.)
$btn->type('success');
Button::container
A string
- container of the button (e.g. <a ... > ... </a>
)
$btn->container('button');
Button::size
A string
- button sizes (lg
, sm
, etc.)
const BUTTON_SIZE_LARGE = 'lg';
const BUTTON_SIZE_SMALL = 'sm';
const BUTTON_SIZE_XSMALL = 'xs';
const BUTTON_SIZE_MEDIUM = 'md';
//sample call
$btn->size(Button::BUTTON_SIZE_LARGE);
Button::attr
A string
or closure
or array
- custom button attributes
// if array
$btn->attr(array('data-some-id' => 12345)); // etc.
// or ...
$btn->attr('data-some-id', 12345)->attr('href', 'http://myurl.com')->attr('target', '_blank');
Button::class
A string
or array
or closure
- additional button class
$btn->class(array('bg-color-red', 'txt-color-white'));
// or ...
$btn->class(function($btn) {
return array('bg-color-red', 'txt-color-white');
})
Button::dropdown
An array
or closure
- array of dropdown properties
$dropdown = array(
'items' => array(),
'split' => array( // array or boolean or string (set to 'type' key) or closure (must return same structure array)
'type' => $type,
'disabled' => false,
'dropup' => false,
'class' => array(), // or string
'attr' => array()
),
'multilevel' => false
);
// sample call
$items = array(
'<a href="javascript:void(0);">Some action</a>',
'<a href="javascript:void(0);">Some other action</a>',
'-',
array(
'content' => '<a tabindex="-1" href="javascript:void(0);">Hover me for more options</a>',
'submenu' => array(
'<a tabindex="-1" href="javascript:void(0);">Second level</a>',
array(
'content' => '<a href="javascript:void(0);">Even More..</a>',
'submenu' => array(
'<a href="javascript:void(0);">3rd level</a>',
'<a href="javascript:void(0);">3rd level</a>'
)
),
'<a href="javascript:void(0);">Second level</a>',
'<a href="javascript:void(0);">Second level</a>'
)
)
);
$btn->dropdown('items', $items)->dropdown('split', true);
// or ... set the dropdown's own type
$btn->dropdown('items', $items)->dropdown('split', 'success');
Tips!
You can pass a closure
and return an array
(same way as passing the array
directly) to some properties
$btn->class(function($btn) {
return array('bg-color-red', 'txt-color-white');
})