Class kartik\affix\Affix
Inheritance | kartik\affix\Affix » yii\widgets\Menu » yii\base\Widget » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable, yii\base\ViewContextInterface |
Subclasses | kartik\widgets\Affix |
A scrollspy and affixed enhanced navigation to highlight sections and secondary sections in each page (built specifically for Bootstrap 3.x).
For example,
echo Affix::widget([
'items' => [
[
'url' => '#section-1',
'label' => 'Section 1',
'icon' => 'asterisk'
],
[
'url' => '#section-2',
'label' => 'Section 2',
'icon' => 'asterisk'
'items' => [
['url' => '#section-2-1', 'label' => 'Section 2.1'],
['url' => '#section-2-2', 'label' => 'Section 2.2'],
],
],
],
]);
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$activateItems | boolean | Whether to automatically activate items according to whether their route setting matches the currently requested route. | yii\widgets\Menu |
$activateParents | boolean | Whether to activate parent menu items when one of the corresponding child menu items is active. | yii\widgets\Menu |
$activeCssClass | string | The CSS class to be appended to the active menu item. | yii\widgets\Menu |
$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 |
$container | array | Options for the affix main container | kartik\affix\Affix |
$counter | integer | A counter used to generate $id for widgets. | yii\base\Widget |
$encodeLabels | boolean | Whether the labels for menu items should be HTML-encoded. | yii\widgets\Menu |
$firstItemCssClass | string|null | The CSS class that will be assigned to the first item in the main menu or each submenu. | yii\widgets\Menu |
$hideEmptyItems | boolean | Whether to hide empty menu items. | yii\widgets\Menu |
$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 |
$itemOptions | array | List of HTML attributes shared by all menu $items. | yii\widgets\Menu |
$items | array | List of affix menu items. | kartik\affix\Affix |
$labelTemplate | string | The template used to render the body of a menu which is NOT a link. | yii\widgets\Menu |
$lastItemCssClass | string|null | The CSS class that will be assigned to the last item in the main menu or each submenu. | yii\widgets\Menu |
$linkTemplate | string | The template used to render the body of a menu which is a link. | yii\widgets\Menu |
$options | array | The HTML attributes for the menu's container tag. | yii\widgets\Menu |
$params | array|null | The parameters used to determine if a menu item is active or not. | yii\widgets\Menu |
$route | string|null | The route used to determine if a menu item is active or not. | yii\widgets\Menu |
$secTemplate | string | The template for the body main section. | kartik\affix\Affix |
$stack | yii\base\Widget[] | The widgets that are currently being rendered (not ended). | yii\base\Widget |
$subTemplate | string | The template for the body sub section. | kartik\affix\Affix |
$submenuTemplate | string | The template used to render a list of sub-menus. | yii\widgets\Menu |
$type | string | The type of content to display. | kartik\affix\Affix |
$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() | Returns the view object that can be used to render views or view files. | yii\base\Widget |
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 object. | kartik\affix\Affix |
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 |
run() | Renders the menu. | kartik\affix\Affix |
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 |
---|---|---|
isItemActive() | Checks whether a menu item is active. | yii\widgets\Menu |
normalizeItems() | Normalizes the $items property to remove invisible items and activate certain items. | yii\widgets\Menu |
renderBody() | Generates the affix body content | kartik\affix\Affix |
renderItem() | Renders the content of a affix menu item. | kartik\affix\Affix |
renderItems() | Recursively renders the menu items (without the container tag). | yii\widgets\Menu |
renderSection() | Renders each body main section. | kartik\affix\Affix |
renderSubSection() | Renders each body sub section. | kartik\affix\Affix |
validateItems() | Validates each item configuration if it contains a valid label and url setting. | kartik\affix\Affix |
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
Options for the affix main container
List of affix menu items. Each menu item should be a sub array containing the following keys for configuration:
label
: string, mandatory, specifies the menu item label. When $encodeLabels is true, the label will be HTML-encoded.icon
: string, optional, specifies the glyphicon name to be placed before label.header
: string, optional, the header for the body content to be rendered in the main page using body. If not set, this will be defaulted to the label.subheader
: string, optional, the subheader that will be printed within the header.content
: string, the body content to be rendered in the main page using renderBody.url
: string, mandatory, specifies the URL of the menu item. This will be a bookmark on the same page. For example "#section-1" or "#section-1-1".items
: array, optional, specifies the sub-menu items. Its format is the same as the parent items.options
: array, optional, the HTML attributes for the menu item tag.
The template for the body main section. The tokens enclosed within braces will be dynamically
replaced. The tokens supported are: {id}
, {header}
, {content}
and {subSection}
.
The template for the body sub section. The tokens enclosed within braces will be dynamically
replaced. The tokens supported are: {id}
, {header}
, {content}
and {subSection}
.
The type of content to display. By default displays the navigation menu If set to 'body' it will display the body.
Method Details
Initializes the object.
This method is called at the end of the constructor. The default implementation will trigger an EVENT_INIT event.
public void init ( ) |
Generates the affix body content
protected string renderBody ( $items ) | ||
$items | array | The items to be rendered as body content |
return | string | The rendering result |
---|---|---|
throws | yii\base\InvalidConfigException |
Renders the content of a affix menu item.
Note that the container and the sub-menus are not rendered here.
protected string renderItem ( $item ) | ||
$item | array | The menu item to be rendered. Please refer to $items to see what data might be in the item. |
return | string | The rendering result |
---|---|---|
throws | yii\base\InvalidConfigException |
Renders each body main section.
protected string renderSection ( $item ) | ||
$item | array | The section item to be rendered. Please refer to $items to see what data might be in the item. |
return | string | The rendering result |
---|---|---|
throws | yii\base\InvalidConfigException |
Renders each body sub section.
protected string renderSubSection ( $item ) | ||
$item | array | The sub-section item to be rendered. Please refer to $items to see what data might be in the item. |
return | string | The rendering result |
---|---|---|
throws | yii\base\InvalidConfigException |
Renders the menu.
public void run ( ) |
Validates each item configuration if it contains a valid label and url setting.
protected void validateItems ( $item ) | ||
$item | ||
throws | yii\base\InvalidConfigException |
---|