Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
3ab3f996
Commit
3ab3f996
authored
Mar 19, 2014
by
Alexander Makarov
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'nav-active' of github.com:Alex-Code/yii2 into Alex-Code-nav-active
Conflicts: extensions/bootstrap/CHANGELOG.md extensions/bootstrap/Nav.php
parents
32365e81
4807d2ee
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
30 additions
and
5 deletions
+30
-5
CHANGELOG.md
extensions/bootstrap/CHANGELOG.md
+1
-1
Nav.php
extensions/bootstrap/Nav.php
+29
-4
No files found.
extensions/bootstrap/CHANGELOG.md
View file @
3ab3f996
...
...
@@ -12,11 +12,11 @@ Yii Framework 2 bootstrap extension Change Log
-
Enh #1601: Added support for tagName and encodeLabel parameters in ButtonDropdown (omnilight)
-
Enh #1881: Improved
`yii\bootstrap\NavBar`
with
`containerOptions`
,
`innerContainerOptions`
and
`renderInnerContainer`
(creocoder)
-
Enh #2425: Tabs widget now selects first tab if no active tab is specified (samdark)
-
Enh #2634: Submenus will now be checked for being active (Alex-Code)
-
Enh #2643: Add size attribute to Modal (tof06)
-
Chg #1459: Update Collapse to use bootstrap 3 classes (tonydspaniard)
-
Chg #1820: Update Progress to use bootstrap 3 markup (samdark)
2.
0.0 alpha, December 1, 2013
-----------------------------
...
...
extensions/bootstrap/Nav.php
View file @
3ab3f996
...
...
@@ -75,6 +75,10 @@ class Nav extends Widget
*/
public
$activateItems
=
true
;
/**
* @var boolean whether to activate parent menu items when one of the corresponding child menu items is active.
*/
public
$activateParents
=
false
;
/**
* @var string the route used to determine if a menu item is active or not.
* If not set, it will use the route of the current request.
* @see params
...
...
@@ -156,16 +160,15 @@ class Nav extends Widget
$active
=
$this
->
isItemActive
(
$item
);
}
if
(
$active
)
{
Html
::
addCssClass
(
$options
,
'active'
);
}
if
(
$items
!==
null
)
{
$linkOptions
[
'data-toggle'
]
=
'dropdown'
;
Html
::
addCssClass
(
$options
,
'dropdown'
);
Html
::
addCssClass
(
$linkOptions
,
'dropdown-toggle'
);
$label
.=
' '
.
Html
::
tag
(
'b'
,
''
,
[
'class'
=>
'caret'
]);
if
(
is_array
(
$items
))
{
if
(
$this
->
activateItems
)
{
$items
=
$this
->
isChildActive
(
$items
,
$active
);
}
$items
=
Dropdown
::
widget
([
'items'
=>
$items
,
'encodeLabels'
=>
$this
->
encodeLabels
,
...
...
@@ -173,11 +176,33 @@ class Nav extends Widget
'view'
=>
$this
->
getView
(),
]);
}
}
if
(
$this
->
activateItems
&&
$active
)
{
Html
::
addCssClass
(
$options
,
'active'
);
}
return
Html
::
tag
(
'li'
,
Html
::
a
(
$label
,
$url
,
$linkOptions
)
.
$items
,
$options
);
}
/**
* Check to see if a child item is active optionally activating the parent.
* @param array $items @see items
* @param boolean $active should the parent be active too
* @return array @see items
*/
protected
function
isChildActive
(
$items
,
&
$active
)
{
foreach
(
$items
as
$i
=>
$child
)
{
if
(
ArrayHelper
::
remove
(
$items
[
$i
],
'active'
,
false
)
||
$this
->
isItemActive
(
$child
))
{
Html
::
addCssClass
(
$items
[
$i
][
'options'
],
'active'
);
if
(
$this
->
activateParents
)
{
$active
=
true
;
}
}
}
return
$items
;
}
/**
* Checks whether a menu item is active.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment