Trait kartik\base\BootstrapTrait
BootstrapTrait includes bootstrap library init and parsing methods. The class which uses this trait, must also necessarily implement the kartik\base\BootstrapInterface.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$bsColCssPrefixes | array | 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. | kartik\base\BootstrapTrait |
$bsCssMap | array | CSS conversion mappings across bootstrap library versions. | kartik\base\BootstrapTrait |
$bsExtBasename | integer | The yii2 bootstrap extension base name (readonly property available via getter method getBsExtBasename()) | kartik\base\BootstrapTrait |
$bsVer | integer | Bootstrap version number currently set (readonly property available via getter method getBsVer()) | kartik\base\BootstrapTrait |
$bsVersion | integer|string | The bootstrap library version that you wish to use for this specific extension / widget. | kartik\base\BootstrapTrait |
$defaultBtnCss | string | Default bootstrap button CSS (readonly property available via getter method getDefaultBtnCss()) | kartik\base\BootstrapTrait |
$defaultIconPrefix | string | Default icon prefix (readonly property available via getter method getDefaultIconPrefix()) | kartik\base\BootstrapTrait |
$dropdownClass | string | Bootstrap dropdown class name based on currently configured bootstrap version (readonly property available via getter method getDropdownClass()) | kartik\base\BootstrapTrait |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
$_bsVer | integer | Current bootstrap version number | kartik\base\BootstrapTrait |
$_defaultBtnCss | string | Default bootstrap button CSS | kartik\base\BootstrapTrait |
$_defaultIconPrefix | string | Default icon CSS prefix | kartik\base\BootstrapTrait |
$_isBs4 | boolean | Flag to detect whether bootstrap 4. | kartik\base\BootstrapTrait |
Public Methods
Method | Description | Defined By |
---|---|---|
addCssClass() | Adds bootstrap CSS class to options by parsing the bootstrap version for the specified Bootstrap CSS type. | kartik\base\BootstrapTrait |
getBSClass() | Gets the respective Bootstrap class based on currently configured bootstrap version. | kartik\base\BootstrapTrait |
getBsVer() | Gets the current set bootstrap version number. | kartik\base\BootstrapTrait |
getCssClass() | Gets bootstrap css class by parsing the bootstrap version for the specified BS CSS type. | kartik\base\BootstrapTrait |
getDefaultBtnCss() | Gets the default button CSS | kartik\base\BootstrapTrait |
getDefaultIconPrefix() | Gets the default icon css prefix | kartik\base\BootstrapTrait |
getDropdownClass() | Gets the respective bootstrap dropdown class name based on currently configured bootstrap version. | kartik\base\BootstrapTrait |
isBs() | Validate Bootstrap version | kartik\base\BootstrapTrait |
isBs4() | Validate if Bootstrap 4.x version. | kartik\base\BootstrapTrait |
removeCssClass() | Removes bootstrap CSS class from options by parsing the bootstrap version for the specified Bootstrap CSS type. | kartik\base\BootstrapTrait |
Protected Methods
Method | Description | Defined By |
---|---|---|
configureBsVersion() | Configures the bootstrap version settings | kartik\base\BootstrapTrait |
getBsExtBasename() | The yii2-bootstrap extension base name. | kartik\base\BootstrapTrait |
initBsVersion() | Initializes bootstrap versions for the widgets and asset bundles. | kartik\base\BootstrapTrait |
isSameVersion() | Compares two versions and checks if they are of the same major BS version. | kartik\base\BootstrapTrait |
parseVer() | Parses and returns the major BS version | kartik\base\BootstrapTrait |
Property Details
Current bootstrap version number
Default bootstrap button CSS
Default icon CSS prefix
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.
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-',
],
];
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)
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']
]
The yii2 bootstrap extension base name (readonly property available via getter method getBsExtBasename())
Bootstrap version number currently set (readonly property available via getter method getBsVer())
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).
Default bootstrap button CSS (readonly property available via getter method getDefaultBtnCss())
Default icon prefix (readonly property available via getter method getDefaultIconPrefix())
Bootstrap dropdown class name based on currently configured bootstrap version (readonly property available via getter method getDropdownClass())
Method Details
Adds bootstrap CSS class to options by parsing the bootstrap version for the specified Bootstrap CSS type.
public kartik\base\Widget|mixed addCssClass ( &$options, $type ) | ||
$options | array | The HTML attributes for the container element that will be modified |
$type | string | The bootstrap CSS class type |
return | kartik\base\Widget|mixed | Current object instance that uses this trait |
---|---|---|
throws | Exception |
Configures the bootstrap version settings
protected integer configureBsVersion ( ) | ||
return | integer | The bootstrap lib parsed version number (defaults to 3) |
---|---|---|
throws | Exception |
Gets the respective Bootstrap class based on currently configured bootstrap version.
public void getBSClass ( $className ) | ||
$className | string | |
throws | yii\base\InvalidConfigException |
---|
The yii2-bootstrap extension base name.
Based on the currently set bootstrap version (3, 4, or 5), returns one of bootstrap
, bootstrap4
or bootstrap5
.
protected string getBsExtBasename ( ) | ||
throws | Exception |
---|
Gets the current set bootstrap version number.
public integer getBsVer ( ) | ||
throws | Exception |
---|
Gets bootstrap css class by parsing the bootstrap version for the specified BS CSS type.
public string getCssClass ( $type, $asString = true ) | ||
$type | string | The bootstrap CSS class type |
$asString | boolean | Whether to return classes as a string separated by space |
throws | Exception |
---|
Gets the default button CSS
public string getDefaultBtnCss ( ) |
Gets the default icon css prefix
public string getDefaultIconPrefix ( ) |
Gets the respective bootstrap dropdown class name based on currently configured bootstrap version.
public string getDropdownClass ( $isBtn = false ) | ||
$isBtn | boolean | Whether to get the Button Dropdown widget class |
throws | yii\base\InvalidConfigException |
---|
Initializes bootstrap versions for the widgets and asset bundles.
Sets the $_bsVer flag by parsing $bsVersion.
protected void initBsVersion ( ) | ||
throws | yii\base\InvalidConfigException |
---|
Validate Bootstrap version
public boolean isBs ( $ver ) | ||
$ver | integer | |
throws | Exception |
---|
Validate if Bootstrap 4.x version.
This property is deprecated since v3.0.0 and replaced by the isBs() method.
public boolean isBs4 ( ) | ||
throws | Exception |
---|
Compares two versions and checks if they are of the same major BS version.
protected static boolean isSameVersion ( $ver1, $ver2 ) | ||
$ver1 | integer|string | First version |
$ver2 | integer|string | Second version |
return | boolean | Whether major versions are equal |
---|
Parses and returns the major BS version
protected static integer parseVer ( $ver ) | ||
$ver | string |
Removes bootstrap CSS class from options by parsing the bootstrap version for the specified Bootstrap CSS type.
public kartik\base\Widget|mixed removeCssClass ( &$options, $type ) | ||
$options | array | The HTML attributes for the container element that will be modified |
$type | string | The bootstrap CSS class type |
return | kartik\base\Widget|mixed | Current object instance that uses this trait |
---|---|---|
throws | Exception |