The following has evaluated to null or missing: ==> navItem.getName() [in template "83400193686067#20119#32538" at line 66, column 148] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${navItem.getName()} [in template "83400193686067#20119#32538" at line 66, column 146] ----
1<#include "${templatesPath}/NAVIGATION-MACRO-FTL" />
2
3<#if !entries?has_content>
4 <#if themeDisplay.isSignedIn()>
5 <div class="alert alert-info">
6 <@liferay.language key="there-are-no-menu-items-to-display" />
7 </div>
8 </#if>
9<#else>
10 <#assign
11 portletDisplay = themeDisplay.getPortletDisplay()
12 />
13
14 <#if validator.isNull(portletDisplay.getId())>
15 <#assign navbarId = "navbar_" + stringUtil.randomId() />
16 <#else>
17 <#assign navbarId = "navbar_" + portletDisplay.getId() />
18 </#if>
19
20 <div id="${navbarId}">
21 <ul aria-label="<@liferay.language key="site-pages" />" class="navbar-blank navbar-nav navbar-site" role="menubar">
22 <#assign navItems = entries />
23
24 <#list navItems as navItem>
25 <#assign showChildrenNavItems = (displayDepth != 1) && navItem.hasBrowsableChildren() />
26
27 <#if navItem.isBrowsable() || showChildrenNavItems>
28 <#assign
29 nav_item_attr_has_popup = ""
30 nav_item_caret = ""
31 nav_item_css_class = "lfr-nav-item nav-item"
32 nav_item_href_link = ""
33 nav_item_link_css_class = "nav-link text-truncate"
34 />
35
36 <#if showChildrenNavItems>
37 <#assign nav_item_attr_has_popup = "aria-haspopup='true'" />
38
39 <#assign nav_item_caret>
40 <span class="lfr-nav-child-toggle">
41 <@liferay_aui.icon
42 image="angle-down"
43 markupView="lexicon"
44 />
45 </span>
46 </#assign>
47
48 <#assign
49 nav_item_css_class = "${nav_item_css_class} dropdown"
50 nav_item_link_css_class = "${nav_item_link_css_class} dropdown-toggle"
51 />
52 </#if>
53
54 <#if navItem.isBrowsable()>
55 <#assign nav_item_href_link = "href='${navItem.getURL()}'" />
56 </#if>
57
58 <#if !navItem.isChildSelected() && navItem.isSelected()>
59 <#assign
60 nav_item_css_class = "${nav_item_css_class} selected active"
61 />
62 </#if>
63
64 <li class="${nav_item_css_class}" id="layout_${portletDisplay.getId()}_${navItem.getLayoutId()}" role="presentation">
65 <a ${nav_item_attr_has_popup} class="${nav_item_link_css_class}" ${nav_item_href_link} ${navItem.getTarget()} role="menuitem">
66 <span class="text-truncate"><@liferay_theme["layout-icon"] layout=navItem.getLayout() /> ${navItem.getName()} ${nav_item_caret}</span>
67 </a>
68
69 <#if showChildrenNavItems>
70 <ul aria-expanded="false" class="child-menu dropdown-menu" role="menu">
71 <@buildChildrenNavItems
72 displayDepth=displayDepth
73 navItem=navItem
74 />
75 </ul>
76 </#if>
77 </li>
78 </#if>
79 </#list>
80 </ul>
81 </div>
82
83 <@liferay_aui.script use="liferay-navigation-interaction">
84 var navigation = A.one('#${navbarId}');
85
86 Liferay.Data.NAV_INTERACTION_LIST_SELECTOR = '.navbar-site';
87 Liferay.Data.NAV_LIST_SELECTOR = '.navbar-site';
88
89 if (navigation) {
90 navigation.plug(Liferay.NavigationInteraction);
91 }
92 </@>
93</#if>