HumHub Documentation (unofficial)

BootstrapTrait

BootstrapTrait includes bootstrap library init and parsing methods. The class which uses this trait, must also necessarily implement the [[BootstrapInterface]].

Tags
author

Kartik Visweswaran kartikv2@gmail.com

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 with BS_)
  • $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 or 3.3.7 or 3.x)
  • To use with bootstrap 4 - you can set this to any string starting with 4 (e.g. 4 or 4.6.0 or 4.x)
  • To use with bootstrap 5 - you can set this to any string starting with 5 (e.g. 5 or 5.1.0 or 5.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()]])

$_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
deprecated

since v3.0.0 and replaced by [[_bsVer]] flag

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
throws
Exception
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
throws
InvalidConfigException

getBsVer()

Gets the current set bootstrap version number.

public getBsVer() : int
Tags
throws
Exception
Return values
int

getCssClass()

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
throws
Exception
Return values
string

getDefaultBtnCss()

Gets the default button CSS

public getDefaultBtnCss() : string
Return values
string

getDefaultIconPrefix()

Gets the default icon css prefix

public getDefaultIconPrefix() : string
Return values
string

getDropdownClass()

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
throws
InvalidConfigException
Return values
string

isBs()

Validate Bootstrap version

public isBs(int $ver) : bool
Parameters
$ver : int
Tags
throws
Exception
Return values
bool

isBs4()

Validate if Bootstrap 4.x version.

public isBs4() : bool

This property is deprecated since v3.0.0 and replaced by the [[isBs]] method.

Tags
deprecated

since v3.0.0 and replaced by the [[isBs]] method

throws
Exception
Return values
bool

removeCssClass()

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
throws
Exception
Return values
Widget|mixed

current object instance that uses this trait

configureBsVersion()

Configures the bootstrap version settings

protected configureBsVersion() : int
Tags
throws
Exception
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
throws
Exception
Return values
string

initBsVersion()

Initializes bootstrap versions for the widgets and asset bundles.

protected initBsVersion() : mixed

Sets the [[_bsVer]] flag by parsing [[bsVersion]].

Tags
throws
InvalidConfigException

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
Return values
int

        
On this page

Search results