CMSware结点列表CMS NODELIST
导航:返回上一页
该调用标签可实现结点列表的调用.
本标签对应的系统调用函数为CMS_NODELIST()。
属性 | 必需 | 默认值 | 描述 |
---|---|---|---|
<CMS action="NODELIST" return="List" Type="" NodeID="" OrderBy="" NodeGUID="" ignore="" Tpl="" Cache="" returnKey="" /> | |||
Type | 是 | - |
调用类型
例如NodeID="5,6,7,8,9",则调用结点id分别为5、6、7、8这 5个结点。 |
NodeID | 是 | - |
调用结点ID号
|
OrderBy | 否 | - |
排序 一般无需设置
order="ASC": 正序 order="DESC": 倒序 |
NodeGUID | 否 | - |
调用结点唯一标识符
注意:NodeGUID不能和NodeID同时使用,并且NodeGUID优先级高于NodeID。结点唯一标识符建议使用”域名.结点名“的形式以保证唯一性。(对于对外发布共享的结点更需要注意这点) |
Ignore | 否 | - |
忽略结点ID,使用“,”分隔。
|
Tpl | 否 | - |
指定调用的子模版
|
Cache | 否 | - |
模版中的CMS调用通过使用Cache,可以大幅提升批量更新的效率. 该标签只有门户版可用
|
returnKey | 否 | - |
可以定义内容列表记录返回那些字段,一般列表只需要获得Title即可,而无需返回Content 等字段,使用此属性,可以一定程度上提高更新效能。 该标签只有门户版可用
|
键名 | 类型 | 描述 |
---|---|---|
返回2维数组($List) | ||
NodeID | int | 结点ID |
TableID | int | 结点归属的内容模型ID |
NodeName(Name) | string | 结点名称 |
NodeURL(URL) | string | 结点首页URL地址 |
SubNodeID | string | 所有子结点的ID串,比如'1%2%8%9%10%11%' |
parentNodeID | int | 父结点ID |
Navigation | array |
结点当前位置的2维数组,你可以遍历这个数组生成结点的当前位置。 例如: [Navigation] => Array ( [1] => Array ( [NodeID] => 1 [Name] => 首页 [URL] => http://www.cmsware.net/index.html ) [2] => Array ( [NodeID] => 1 [Name] => 新闻 [URL] => http://www.cmsware.net/news.html ) ) |
例子 1:自动生成子结点导航栏
效果图:
调用代码:
<!--调用结点ID为2的子结点,忽略结点ID为31和32的结点--> <CMS action="NODELIST" return="List" Type="sub" NodeID="2" Ignore="31,32" /> <loop name="List" key="key" var="var" > <a href="[$var.NodeURL]"> [$var.NodeName] </a> | </loop>
例子 2:自动生成指定结点导航栏
效果图:
调用代码:
<!--依次调用结点ID为25,26,27,28,29,30的结点--> <CMS action="NODELIST" return="List" Type="set" NodeID="25,26,27,28,29,30" /> <loop name="List" key="key" var="var" > <a href="[$var.NodeURL]"> [$var.NodeName] </a> | </loop>
例子 3:自动生成一级栏目导航栏并根据当前一级栏目自动生成二级栏目导航
效果图:
调用代码:
<div id="nav"> <ul> <CMS action="NODELIST" return="List" Type="sub" NodeID="0" /> <loop name="List" key="key" var="var" > <if test="$var.NodeGUID=='com.cmsware.demo'"> <li id="sel"><a href="[$var.NodeURL]" title="[$var.NodeName]"><span>[$var.NodeName]</span></a></li> <else> <li><a href="[$var.NodeURL]" title="[$var.NodeName]"><span>[$var.NodeName]</span></a></li> </if> </loop> </ul> </div> <div id="sub_nav"> <CMS action="NODELIST" return="List" Type="sub" NodeGUID="com.cmsware.demo" /> <loop name="List" key="key" var="var" > <if test="$key == 0"> <if test="$var.NodeID == $NodeInfo.NodeID"> <a href="[$var.NodeURL]" title="[$var.NodeName]"><B>[$var.NodeName]</B></a> <else> <a href="[$var.NodeURL]" title="[$var.NodeName]">[$var.NodeName]</a> </if> <else> <if test="$var.NodeID == $NodeInfo.NodeID"> | <a href="[$var.NodeURL]" title="[$var.NodeName]"><B>[$var.NodeName]</B></a> <else> | <a href="[$var.NodeURL]" title="[$var.NodeName]">[$var.NodeName]</a> </if> </if> </loop> </div>
例子 4:当前结点差异化显示
调用代码:
<CMS action="NODELIST" return="List" Type="set" NodeID="27,28,29,30,31,32,33,34,35,36,37,38" /> <loop name="List" key="key" var="var" > <if test="$var.NodeID == $NodeInfo.NodeID"> <a href="[$var.NodeURL]"><strong>[$var.NodeName] </strong></a> <else> <a href="[$var.NodeURL]">[$var.NodeName] </a> </if> </loop>
例子 5:自动生成最后一个栏目不带分隔符的导航栏
说明:生成这类结点列表时最后一个结点名称不带“,”:中国,美国,日本
调用代码:
<CMS action="NODELIST" return="List" Type="sub" NodeID="2" /> <loop name="List" key="key" var="var" start="1"> <if test="$key==sizeof($List)"> [$var.NodeName] <else> [$var.NodeName], </if> </loop>
例子 6:在内容页生成当前结点的子结点列表
调用代码:
<CMS action="NODELIST" return="List" NodeID="{$NodeInfo.NodeID}" Type="sub" /> <loop name="List" key="key" var="var"> <a href="[$NodeURL]">[$NodeName] </a> </loop>