BootstrapTrait
BootstrapTrait includes bootstrap library init and parsing methods. The class which uses this trait, must also necessarily implement the [[BootstrapInterface]].
Tags
Table of Contents
Properties
- $bsColCssPrefixes : array<string|int, mixed>
- $bsCssMap : array<string|int, mixed>
- $bsExtBasename : int
- $bsVer : int
- $bsVersion : int|string
- $defaultBtnCss : string
- $defaultIconPrefix : string
- $dropdownClass : string
- $_bsVer : int
- $_defaultBtnCss : string
- $_defaultIconPrefix : string
- $_isBs4 : bool
Methods
- addCssClass() : Widget|mixed
- Adds bootstrap CSS class to options by parsing the bootstrap version for the specified Bootstrap CSS type.
- getBSClass() : mixed
- Gets the respective Bootstrap class based on currently configured bootstrap version.
- getBsVer() : int
- Gets the current set bootstrap version number.
- getCssClass() : string
- Gets bootstrap css class by parsing the bootstrap version for the specified BS CSS type.
- getDefaultBtnCss() : string
- Gets the default button CSS
- getDefaultIconPrefix() : string
- Gets the default icon css prefix
- getDropdownClass() : string
- Gets the respective bootstrap dropdown class name based on currently configured bootstrap version.
- isBs() : bool
- Validate Bootstrap version
- isBs4() : bool
- Validate if Bootstrap 4.x version.
- removeCssClass() : Widget|mixed
- Removes bootstrap CSS class from options by parsing the bootstrap version for the specified Bootstrap CSS type.
- configureBsVersion() : int
- Configures the bootstrap version settings
- getBsExtBasename() : string
- The yii2-bootstrap extension base name.
- initBsVersion() : mixed
- Initializes bootstrap versions for the widgets and asset bundles.
- isSameVersion() : bool
- Compares two versions and checks if they are of the same major BS version.
- parseVer() : int
- Parses and returns the major BS version
Properties
$bsColCssPrefixes
public
array<string|int, mixed>
$bsColCssPrefixes
= []
the bootstrap grid column css prefixes mapping, the key is the bootstrap versions, and the value is an array containing the sizes and their corresponding grid column css prefixes. The class using this trait, must implement BootstrapInterface. If not set will default to:
[
3 => [
self::SIZE_X_SMALL => 'col-xs-',
self::SIZE_SMALL => 'col-sm-',
self::SIZE_MEDIUM => 'col-md-',
self::SIZE_LARGE => 'col-lg-',
self::SIZE_X_LARGE => 'col-lg-',
],
4 => [
self::SIZE_X_SMALL => 'col-',
self::SIZE_SMALL => 'col-sm-',
self::SIZE_MEDIUM => 'col-md-',
self::SIZE_LARGE => 'col-lg-',
self::SIZE_X_LARGE => 'col-xl-',
],
5 => [
self::SIZE_X_SMALL => 'col-',
self::SIZE_SMALL => 'col-sm-',
self::SIZE_MEDIUM => 'col-md-',
self::SIZE_LARGE => 'col-lg-',
self::SIZE_X_LARGE => 'col-xl-',
],
];
$bsCssMap
public
static array<string|int, mixed>
$bsCssMap
= [self::BS_SR_ONLY => ['sr-only', 'sr-only', 'visually-hidden'], self::BS_PANEL => ['panel', 'card'], self::BS_PANEL_HEADING => ['panel-heading', 'card-header'], self::BS_PANEL_TITLE => ['panel-title', 'card-title'], self::BS_PANEL_BODY => ['panel-body', 'card-body'], self::BS_PANEL_FOOTER => ['panel-footer', 'card-footer'], self::BS_PANEL_DEFAULT => ['panel-default', ['bg-light', 'text-dark']], self::BS_PANEL_DARK => ['panel-default', ['bg-dark', 'text-white']], self::BS_PANEL_SECONDARY => ['panel-default', ['bg-secondary', 'text-white']], self::BS_PANEL_PRIMARY => ['panel-primary', ['bg-primary', 'text-white']], self::BS_PANEL_SUCCESS => ['panel-success', ['bg-success', 'text-white']], self::BS_PANEL_INFO => ['panel-info', ['bg-info', 'text-dark']], self::BS_PANEL_WARNING => ['panel-warning', ['bg-warning', 'text-dark']], self::BS_PANEL_DANGER => ['panel-danger', ['bg-danger', 'text-white']], self::BS_LABEL => ['label', 'badge'], self::BS_BADGE => ['badge', ['badge', 'badge-pill'], ['badge', 'rounded-pill']], self::BS_LABEL_DEFAULT => ['label-default', 'badge-secondary', 'bg-secondary'], self::BS_LABEL_LIGHT => ['label-default', ['bg-light', 'text-dark']], self::BS_LABEL_DARK => ['label-default', ['bg-dark', 'text-white']], self::BS_LABEL_PRIMARY => ['label-primary', 'badge-primary', 'bg-primary'], self::BS_LABEL_SUCCESS => ['label-success', 'badge-success', 'bg-success'], self::BS_LABEL_INFO => ['label-info', 'badge-info', ['bg-info', 'text-dark']], self::BS_LABEL_WARNING => ['label-warning', 'badge-warning', ['bg-warning', 'text-dark']], self::BS_LABEL_DANGER => ['label-danger', 'badge-danger', 'bg-danger'], self::BS_TABLE_ACTIVE => ['default', 'table-active'], self::BS_TABLE_PRIMARY => ['primary', 'table-primary'], self::BS_TABLE_SUCCESS => ['success', 'table-success'], self::BS_TABLE_INFO => ['info', 'table-info'], self::BS_TABLE_WARNING => ['warning', 'table-warning'], self::BS_TABLE_DANGER => ['danger', 'table-danger'], self::BS_PROGRESS_BAR_ACTIVE => ['active', 'progress-bar-animated'], self::BS_PROGRESS_BAR_PRIMARY => ['progress-bar-primary', 'bg-primary'], self::BS_PROGRESS_BAR_SUCCESS => ['progress-bar-success', 'bg-success'], self::BS_PROGRESS_BAR_INFO => ['progress-bar-info', 'bg-info'], self::BS_PROGRESS_BAR_WARNING => ['progress-bar-warning', 'bg-warning'], self::BS_PROGRESS_BAR_DANGER => ['progress-bar-danger', 'bg-danger'], self::BS_WELL => ['well', ['card', 'card-body']], self::BS_WELL_SM => ['well-sm', ['card', 'card-body', 'p-2']], self::BS_WELL_LG => ['well-lg', ['card', 'card-body', 'p-4']], self::BS_THUMBNAIL => ['thumbnail', ['card', 'card-body']], self::BS_NAVBAR_DEFAULT => ['navbar-default', 'navbar-light'], self::BS_NAVBAR_TOGGLE => ['navbar-toggle', 'navbar-toggler'], self::BS_NAVBAR_RIGHT => ['navbar-right', 'ml-auto'], self::BS_NAVBAR_BTN => ['navbar-btn', 'nav-item'], self::BS_NAVBAR_FIXTOP => ['navbar-fixed-top', 'fixed-top'], self::BS_NAV_STACKED => ['nav-stacked', 'flex-column'], self::BS_NAV_ITEM => ['', 'nav-item'], self::BS_NAV_LINK => ['', 'nav-link'], self::BS_PAGE_ITEM => ['', 'page-item'], self::BS_PAGE_LINK => ['', 'page-link'], self::BS_LIST_INLINE_ITEM => ['', 'list-inline-item'], self::BS_BTN_DEFAULT => ['btn-default', 'btn-secondary'], self::BS_IMG_RESPONSIVE => ['img-responsive', 'img-fluid'], self::BS_IMG_CIRCLE => ['img-circle', 'rounded-circle'], self::BS_IMG_ROUNDED => ['img-rounded', 'rounded'], self::BS_RADIO => ['radio', 'form-check'], self::BS_CHECKBOX => ['checkbox', 'form-check'], self::BS_INPUT_LG => ['input-lg', 'form-control-lg'], self::BS_INPUT_SM => ['input-sm', 'form-control-sm'], self::BS_CONTROL_LABEL => ['control-label', 'col-form-label'], self::BS_TABLE_CONDENSED => ['table-condensed', 'table-sm'], self::BS_CAROUSEL_ITEM => ['item', 'carousel-item'], self::BS_CAROUSEL_ITEM_NEXT => ['next', 'carousel-item-next'], self::BS_CAROUSEL_ITEM_PREV => ['prev', 'carousel-item-prev'], self::BS_CAROUSEL_ITEM_LEFT => ['left', 'carousel-item-left'], self::BS_CAROUSEL_ITEM_RIGHT => ['right', 'carousel-item-right'], self::BS_CAROUSEL_CONTROL_LEFT => [['carousel-control', 'left'], 'carousel-control-left'], self::BS_CAROUSEL_CONTROL_RIGHT => [['carousel-control', 'right'], 'carousel-control-right'], self::BS_HELP_BLOCK => ['help-block', 'form-text'], self::BS_PULL_RIGHT => ['pull-right', 'float-right', 'float-end'], self::BS_PULL_LEFT => ['pull-left', 'float-left', 'float-start'], self::BS_CENTER_BLOCK => ['center-block', ['mx-auto', 'd-block']], self::BS_HIDE => ['hide', 'd-none'], self::BS_HIDDEN_PRINT => ['hidden-print', 'd-print-none'], self::BS_HIDDEN_XS => ['hidden-xs', ['d-none', 'd-sm-block']], self::BS_HIDDEN_SM => ['hidden-sm', ['d-sm-none', 'd-md-block']], self::BS_HIDDEN_MD => ['hidden-md', ['d-md-none', 'd-lg-block']], self::BS_HIDDEN_LG => ['hidden-lg', ['d-lg-none', 'd-xl-block']], self::BS_VISIBLE_PRINT => ['visible-print-block', ['d-print-block', 'd-none']], self::BS_VISIBLE_XS => ['visible-xs', ['d-block', 'd-sm-none']], self::BS_VISIBLE_SM => ['visible-sm', ['d-none', 'd-sm-block', 'd-md-none']], self::BS_VISIBLE_MD => ['visible-md', ['d-none', 'd-md-block', 'd-lg-none']], self::BS_VISIBLE_LG => ['visible-md', ['d-none', 'd-lg-block', 'd-xl-none']], self::BS_FORM_CONTROL_STATIC => ['form-control-static', 'form-control-plaintext'], self::BS_DROPDOWN_DIVIDER => ['divider', 'dropdown-divider'], self::BS_SHOW => ['in', 'show']]
CSS conversion mappings across bootstrap library versions.
This is set as $key => $value
pairs where:
-
$key
: string, is the style type to be configured (one of the constants starting withBS_
) -
$value
: array, consists of 3 rows / items, each of which can be setup either as string (single CSS class) or an array (multiple CSS classes). Each of the row items indicate the following:- the first item represents the CSS class(es) for Bootstrap 3.x.
- the second item represents the CSS class(es) for Bootstrap 4.x
- the third item represents the CSS class(es) for Bootstrap 5.x (if it does not exist will use bootstrap 4.x setting)
$bsExtBasename
public
int
$bsExtBasename
The yii2 bootstrap extension base name (readonly property available via getter method [[getBsExtBasename()]])
$bsVer
public
int
$bsVer
Bootstrap version number currently set (readonly property available via getter method [[getBsVer()]])
$bsVersion
public
int|string
$bsVersion
the bootstrap library version that you wish to use for this specific extension / widget.
- To use with bootstrap 3 - you can set this to any string starting with 3 (e.g.
3
or3.3.7
or3.x
) - To use with bootstrap 4 - you can set this to any string starting with 4 (e.g.
4
or4.6.0
or4.x
) - To use with bootstrap 5 - you can set this to any string starting with 5 (e.g.
5
or5.1.0
or5.x
)
This property can be set up globally in Yii application params in your Yii2 application config file.
For example:
'params' = [
'bsVersion' => '5.x' // will enable Bootstrap 5.x globally
]
Note that if this property is set as part of this extension class, then the extension setting will override the
Yii::$app->params['bsVersion']
. This property will default to 3.x
(Bootstrap 3.x version) if it is not
set anywhere (extension or module or Yii params).
$defaultBtnCss
public
string
$defaultBtnCss
Default bootstrap button CSS (readonly property available via getter method [[getDefaultBtnCss()]])
$defaultIconPrefix
public
string
$defaultIconPrefix
Default icon prefix (readonly property available via getter method [[getDefaultIconPrefix()]])
$dropdownClass
public
string
$dropdownClass
Bootstrap dropdown class name based on currently configured bootstrap version (readonly property available via getter method [[getDropdownClass()]])
$_bsVer
protected
int
$_bsVer
current bootstrap version number
$_defaultBtnCss
protected
string
$_defaultBtnCss
default bootstrap button CSS
$_defaultIconPrefix
protected
string
$_defaultIconPrefix
default icon CSS prefix
$_isBs4
protected
bool
$_isBs4
flag to detect whether bootstrap 4.x version is set
This property is deprecated since v3.0.0 and replaced by the more flexible [[_bsVer]] flag.
Tags
Methods
addCssClass()
Adds bootstrap CSS class to options by parsing the bootstrap version for the specified Bootstrap CSS type.
public
addCssClass(array<string|int, mixed> &$options, string $type) : Widget|mixed
Parameters
- $options : array<string|int, mixed>
-
the HTML attributes for the container element that will be modified
- $type : string
-
the bootstrap CSS class type
Tags
Return values
Widget|mixed —current object instance that uses this trait
getBSClass()
Gets the respective Bootstrap class based on currently configured bootstrap version.
public
getBSClass(mixed $className) : mixed
Parameters
- $className : mixed
Tags
getBsVer()
Gets the current set bootstrap version number.
public
getBsVer() : int
Tags
Return values
intgetCssClass()
Gets bootstrap css class by parsing the bootstrap version for the specified BS CSS type.
public
getCssClass(string $type[, bool $asString = true ]) : string
Parameters
- $type : string
-
the bootstrap CSS class type
- $asString : bool = true
-
whether to return classes as a string separated by space
Tags
Return values
stringgetDefaultBtnCss()
Gets the default button CSS
public
getDefaultBtnCss() : string
Return values
stringgetDefaultIconPrefix()
Gets the default icon css prefix
public
getDefaultIconPrefix() : string
Return values
stringgetDropdownClass()
Gets the respective bootstrap dropdown class name based on currently configured bootstrap version.
public
getDropdownClass([bool $isBtn = false ]) : string
Parameters
- $isBtn : bool = false
-
whether to get the Button Dropdown widget class
Tags
Return values
stringisBs()
Validate Bootstrap version
public
isBs(int $ver) : bool
Parameters
- $ver : int
Tags
Return values
boolisBs4()
Validate if Bootstrap 4.x version.
public
isBs4() : bool
This property is deprecated since v3.0.0 and replaced by the [[isBs]] method.
Tags
Return values
boolremoveCssClass()
Removes bootstrap CSS class from options by parsing the bootstrap version for the specified Bootstrap CSS type.
public
removeCssClass(array<string|int, mixed> &$options, string $type) : Widget|mixed
Parameters
- $options : array<string|int, mixed>
-
the HTML attributes for the container element that will be modified
- $type : string
-
the bootstrap CSS class type
Tags
Return values
Widget|mixed —current object instance that uses this trait
configureBsVersion()
Configures the bootstrap version settings
protected
configureBsVersion() : int
Tags
Return values
int —the bootstrap lib parsed version number (defaults to 3)
getBsExtBasename()
The yii2-bootstrap extension base name.
protected
getBsExtBasename() : string
Based on the currently set bootstrap version (3, 4, or 5), returns one of bootstrap
, bootstrap4
or bootstrap5
.
Tags
Return values
stringinitBsVersion()
Initializes bootstrap versions for the widgets and asset bundles.
protected
initBsVersion() : mixed
Sets the [[_bsVer]] flag by parsing [[bsVersion]].
Tags
isSameVersion()
Compares two versions and checks if they are of the same major BS version.
protected
static isSameVersion(int|string $ver1, int|string $ver2) : bool
Parameters
- $ver1 : int|string
-
first version
- $ver2 : int|string
-
second version
Return values
bool —whether major versions are equal
parseVer()
Parses and returns the major BS version
protected
static parseVer(string $ver) : int
Parameters
- $ver : string