1. 栏目列表 ms:channel

1.1. 适用模版

首页模版、列表模版、内容模版、自定义页面模版

[!tip]主页面模版使用:如果不设置typeid会取出所有顶级(第一级)栏目; 列表模版使用:typid参数值为当前访问的栏目ID 内容模版使用: typeid为当前文章的所属栏目id

1.2. 格式

{ms:channel [参数1=值1 参数2=值2]}
${field.*}
{/ms:channel}

[!tip]栏目的显示的排序可以通过排序字段设置;

1.2.1. 嵌套格式

{ms:channel type="nav" }
+${field.typetitle} <br/>
{ms:channel }
+++${field.typetitle}<br/>
{/ms:channel}
{/ms:channel}

1.3. 参数

参数名称 类型 必须 示例值 默认值 描述
type 字符串 son
top
level
self
sonOrLevel
path
parent
nav
son nav:该标签用于首页导航取第一级栏目
son:取下级栏目;
top:获取栏目的平级的顶级栏目,typeid参数不为空才有效;
level:取同级栏目;
self: 取当前指定typeid本身;
path:取当前栏目的路径,通常用于详情页,显示隶属栏目位置,例如:新闻中心 > 行业新闻;
parent:上一级栏目;
typeid 整型 >0 所有父级栏目 typeid有值时,取所指栏目的子级
flag 字符串 在自定义字典中定义好对应的值,使用方式参考文章列表的flag使用
noflag 字符串 参考文章列表的noflag
orderby 字符串 date 更新时间
sort 排序
id 栏目排序,sort排序需要在自定义顺序设置才能看到效果
order 字符串 desc:按照倒序排列,asc:按照正序排列

[!tip] order参数必须要与orderby一起使用才有效 属性类型为字符串,使用需要使用引号 例如 type="son" order="desc"

1.4. 输出字段

字段名称 描述
${field.index} 序号,根据显示条数显示的序号1 2 …..10
${field.type} 栏目类型,1:列表 2:单篇 3:链接与栏目链接一起使用
${field.typetitle} 栏目名称,与栏目链接一起使用
${field.typelink} 栏目链接:{ms:global.url/}${field.typelink};注意栏目属性为外连接标签显示为外连接的内容与${field.typeurl}一致
${field.typekeyword} 栏目关键字
${field.typedescrip} 栏目描述
${field.id} 栏目id
{@ms:file field.typelitpic/} 栏目缩略图:{ms:global.host/}/{@ms:file field.typelitpic/}
${field.typeurl} 栏目自定义链接,需要配合if条件来决定跳转自定义链接
${field.flag} 栏目属性
${field.childsize} 子分类数量
${field.parentids} 父级编号集合
${field.typeleaf} 子节点标识,表示该栏目下没有子栏目。就获取平级栏目,相反就获取子栏目

2. 范例

下面列举一些常用的使用场景

2.1. 顶级栏目导航


{ms:channel type='nav'}
<a href="{ms:global.url/}${field.typelink}">${field.typetitle}</a>
{/ms:channel}

2.2. 顶级栏目导航外连接栏目

   {ms:channel type='nav'}
   <a href="<#if field.type==3>{ms:global.url/}${field.typeurl}<#else>{ms:global.url/}${field.typelink}</#if>" class="item<#if typeid==field.typeid || (ids?has_content && ids?index_of('${field.typeid}') gt -1)> sel</#if>">
    ${field.typetitle}
   </a>
   {/ms:channel}

2.3. 当前位置

主要用在列表模版、内容模版上,可以实现例如:当前位置:新闻中心 > 行业新闻 的效果

{ms:channel type="path" }

<a href="{ms:global.url/}${field.typelink}">${field.typetitle}</a> >

{/ms:channel}

2.4. 当前栏目的子栏目

{ms:channel type="son" }

<a href="{ms:global.url/}${field.typelink}">${field.typetitle}</a>》

{/ms:channel}

2.5. 栏目选中效果

<!-- 定义typeid变量 field为当前栏目对象-->
<#assign typeid=field.typeid>
{ms:channel type="nav" }
<!-- if标签中直接使用typeid-->
<#if field.typeid == typeid>
<a href="{ms:global.url/}${field.typelink}" class="选中样式">${field.typetitle}</a>
<#else>
<a href="{ms:global.url/}${field.typelink}">${field.typetitle}</a>
</#if>
{/ms:channel}

[!tip]注意#assign定义变量 filed.typeid 值为当前预览页面的栏目id(全局栏目id),而 ms:channel循环里面的 filed.typeid 只是当前循环的栏目id(局部栏目id)

2.6. 常用组合代码片段

2.6.1. 当前父亲+当前子栏目+选择效果

下面是 default\news-list.htm 默认模版里面的代码片段


<!--通过type='parent'获取当前页面父栏目-->
{ms:channel type='parent'}
<span class="title"> ${field.typetitle}</span>
{/ms:channel}
<!-- 定义typeid变量 field为当前栏目对象-->
<#assign typetitle=field.typetitle>
<!-- 判断当前是否已经是子节点-->
<#if field.typeleaf>
{ms:channel type='level'}
<a href="{ms:global.url/}${field.typelink}"
class="<#if typetitle==field.typetitle>sub-title-sel<#else>sub-title</#if>"><!-- 选中效果 -->

${field.typetitle}
</a>
{/ms:channel}
<#else>
{ms:channel type='son'}
<a href="{ms:global.url/}${field.typelink}"
class="<#if typetitle==field.typetitle>sub-title-sel<#else>sub-title</#if>"><!-- 选中效果 -->
${field.typetitle}
</a>
{/ms:channel}
</#if>

[!tip]field.typeleaf 子节点标识,表示该栏目下没有子栏目。就获取平级栏目,相反就获取子栏目

2.6.2. 自定义栏目跳转链接


{ms:channel  }
<!-- if标签中直接使用typeid-->
<#if field.typeurl?has_content>
<a href="{ms:global.url/}${field.typeurl}">${field.typetitle}</a>
<#else>
<a href="{ms:global.url/}${field.typelink}">${field.typetitle}</a>
</#if>
{/ms:channel}
Copyright © mingsoft.net 2021 all right reserved,powered by Gitbook该文件修订时间: 2021-09-18 09:20:25

results matching ""

    No results matching ""

    results matching ""

      No results matching ""