Class yii\bootstrap4\Accordion
Accordion renders an accordion bootstrap javascript component.
For example:
echo Accordion::widget([
'items' => [
// equivalent to the above
[
'label' => 'Collapsible Group Item #1',
'content' => 'Anim pariatur cliche...',
// open its content by default
'contentOptions' => ['class' => 'in']
],
// another group item
[
'label' => 'Collapsible Group Item #1',
'content' => 'Anim pariatur cliche...',
'contentOptions' => [...],
'options' => [...],
'expand' => true,
],
// if you want to swap out .card-block with .list-group, you may use the following
[
'label' => 'Collapsible Group Item #1',
'content' => [
'Anim pariatur cliche...',
'Anim pariatur cliche...'
],
'contentOptions' => [...],
'options' => [...],
'footer' => 'Footer' // the footer label in list-group
],
]
]);
See also https://getbootstrap.com/docs/4.5/components/collapse/#accordion-example.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$autoCloseItems | boolean | Whether to close other items if an item is opened. | yii\bootstrap4\Accordion |
$autoIdPrefix | string | The prefix to the automatically generated widget IDs. | yii\base\Widget |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. | yii\base\Component |
$clientEvents | array | The event handlers for the underlying Bootstrap JS plugin. | yii\bootstrap4\BootstrapWidgetTrait |
$clientOptions | array | The options for the underlying Bootstrap JS plugin. | yii\bootstrap4\BootstrapWidgetTrait |
$counter | integer | A counter used to generate $id for widgets. | yii\base\Widget |
$encodeLabels | boolean | Whether the labels for header items should be HTML-encoded. | yii\bootstrap4\Accordion |
$id | string|null | ID of the widget. Note that the type of this property differs in getter and setter. See getId() and setId() for details. | yii\base\Widget |
$itemToggleOptions | array | The HTML options for the item toggle tag. | yii\bootstrap4\Accordion |
$items | array | List of groups in the collapse widget. | yii\bootstrap4\Accordion |
$options | array | The HTML attributes for the widget container tag. | yii\bootstrap4\Widget |
$stack | yii\base\Widget[] | The widgets that are currently being rendered (not ended). | yii\base\Widget |
$view | yii\web\View | The view object that can be used to render views or view files. Note that the type of this property differs in getter and setter. See getView() and setView() for details. | yii\base\Widget |
$viewPath | string | The directory containing the view files for this widget. | yii\base\Widget |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\BaseObject |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
afterRun() | This method is invoked right after a widget is executed. | yii\base\Widget |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeRun() | This method is invoked right before the widget is executed. | yii\base\Widget |
begin() | Begins a widget. | yii\base\Widget |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
end() | Ends a widget. | yii\base\Widget |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getId() | Returns the ID of the widget. | yii\base\Widget |
getView() | yii\bootstrap4\BootstrapWidgetTrait | |
getViewPath() | Returns the directory containing the view files for this widget. | yii\base\Widget |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the widget. | yii\bootstrap4\BootstrapWidgetTrait |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
render() | Renders a view. | yii\base\Widget |
renderFile() | Renders a view file. | yii\base\Widget |
renderItem() | Renders a single collapsible item group | yii\bootstrap4\Accordion |
renderItems() | Renders collapsible items as specified on $items. | yii\bootstrap4\Accordion |
run() | Executes the widget. | yii\bootstrap4\Accordion |
setId() | Sets the ID of the widget. | yii\base\Widget |
setView() | Sets the view object to be used by this widget. | yii\base\Widget |
trigger() | Triggers an event. | yii\base\Component |
widget() | Creates a widget instance and runs it. | yii\base\Widget |
Protected Methods
Method | Description | Defined By |
---|---|---|
registerClientEvents() | Registers JS event handlers that are listed in $clientEvents. | yii\bootstrap4\BootstrapWidgetTrait |
registerPlugin() | Registers a specific Bootstrap plugin and the related events | yii\bootstrap4\BootstrapWidgetTrait |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_AFTER_RUN | yii\base\WidgetEvent | An event raised right after executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_BEFORE_RUN | yii\base\WidgetEvent | An event raised right before executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_INIT | yii\base\Event | An event that is triggered when the widget is initialized via init(). (available since version 2.0.11) | yii\base\Widget |
Property Details
Whether to close other items if an item is opened. Defaults to true
which causes an
accordion effect. Set this to false
to allow keeping multiple items open at once.
Whether the labels for header items should be HTML-encoded.
The HTML options for the item toggle tag. Key 'tag' might be used here for the tag name specification. For example:
[
'tag' => 'div',
'class' => 'custom-toggle',
]
List of groups in the collapse widget. Each array element represents a single group with the following structure:
- label: string, required, the group header label.
- encode: bool, optional, whether this label should be HTML-encoded. This param will override
global
$this->encodeLabels
param. - content: array|string|object, required, the content (HTML) of the group
- options: array, optional, the HTML attributes of the group
- contentOptions: optional, the HTML attributes of the group's content
Since version 2.0.7 you may also specify this property as key-value pairs, where the key refers to the
label
and the value refers to content
. If value is a string it is interpreted as label. If it is
an array, it is interpreted as explained above.
For example:
echo Accordion::widget([
'items' => [
'Introduction' => 'This is the first collapsable menu',
'Second panel' => [
'content' => 'This is the second collapsable menu',
],
[
'label' => 'Third panel',
'content' => 'This is the third collapsable menu',
],
]
])
Method Details
Renders a single collapsible item group
public string renderItem ( $header, $item, $index ) | ||
$header | string | A label of the item group $items |
$item | array | A single item from $items |
$index | integer | The item index as each item group content must have an id |
return | string | The rendering result |
---|---|---|
throws | yii\base\InvalidConfigException | |
throws | Exception |
Renders collapsible items as specified on $items.
public string renderItems ( ) | ||
return | string | The rendering result |
---|---|---|
throws | yii\base\InvalidConfigException | if label isn't specified |
Executes the widget.
public string|void run ( ) | ||
return | string|void | The rendering result may be directly "echoed" or returned as a string |
---|---|---|
throws | yii\base\InvalidConfigException |