导航栏目高亮

1. 开启SSI

开启SSI支持后,由于模板会被ssi包含的方式引入到模板中,被多个页面引用的include模板只会存在一个静态页面,因此没法在包含模板中使用上下文中的 ${Catalog.catalogId} 来判断当前页面所属栏目,可以通过在当前页面中使用javascript来判断。

示例1

使用场景:内容详情页判断当前内容所属的顶级栏目

头部导航区块模板

<@cms_catalog level="Root" condition="tree_level=1" size="10">
<#list DataList as c>
<a href="${c.link}" class="nav-${Catalog.catalogId}">${c.name}</a>
</#list>
</@cms_catalog>

内容详情页模板

......

<@cms_include file="header.template.html"></@cms_include>
<script type="text/javascript">
  $(".nav-${(Content.catalogAncestors?split(':'))[0]}").addClass("active");
</script>

......

2. 关闭SSI

关闭SSI支持,include引用的模板会将模板解析后的html输出到当前模板中,因此可以直接使用当前模板上下文中的变量 ${Catalog.catalogId} 来判断当前页面所属栏目。

示例1

使用场景:内容详情页判断当前内容所属的顶级栏目

头部导航区块模板

<@cms_catalog level="Root" condition="tree_level=1" size="10">
<#list DataList as c>
<a href="${c.link}" class="${((Content.catalogAncestors?split(':'))[0]))==(c.catalogId?string))?then('active','')}">${c.name}</a>
</#list>
</@cms_catalog>

内容详情页模板

......

<@cms_include file="header.template.html"></@cms_include>

......