CMS模板语言新增了对Velocity的支持
//设置变量
#set ($test="")
//输出变量title的值
<span>$title</span>
//如果变量不存在,则输出空白而非变量名
<span>$!title</span>
//注释用双#表示
##注释
//条件判断
#if(true)
#else
#end
//循环,velocityCount是固定变量名,表示循环中的索引,就是平时用的i值
#foreach($item in $array)
<span>$item.name</span>
<b>$velocityCount</b>
#end
//时间格式化显示,date为日期对象
$date.format("yyyy-MM-dd",date);
更详细的用法可以参考以下链接:Velocity说明
CMS中,针对不同类型模板,内置了一些变量,方便我们直接读取新闻相关的信息
属性名 | 类型 | 说明 |
---|---|---|
id | String | 页面id |
code | int | 旧cms的页面id |
udf1 | String | 自定义内容1 |
udf2 | String | 自定义内容2 |
udf3 | String | 自定义内容3 |
udf4 | String | 自定义内容4 |
udf5 | String | 自定义内容5 |
此变量名为动态,变量自定义,需要以list前缀即可,例如:listHuodong,CMS会自动抽取并设置数据,变量为数组类型,数组中包含以下数据
变量后面跟随着注释##mark=新闻,in=1,out=5
,表示标记的中文名称,内循环条数,外循环条数(可以不用在六马中设置)
属性名 | 类型 | 说明 |
---|---|---|
id | String | 页面id |
code | int | 旧cms的页面id |
isBold | bool | 是否加粗,0否,1是 |
titleColor | String | 标题颜色 |
isRecommend | bool | 推荐 |
isRedirect | bool | 跳转 |
url | String | 新闻URL地址 |
newFlag | int | 是否为新的新闻,0为旧,1为新,判断标准目前为1周内 |
actStartTime | Date | 活动开始时间(活动类型栏目才有) |
actEndTime | Date | 活动结束时间(活动类型栏目才有) |
title | String | 新闻标题 |
shortTitle | String | 新闻短标题 |
isActivity | bool | 是否活动新闻 |
subtitle | String | 新闻副标题(子标题) |
imageUrl | String | 缩略图 |
author | String | 作者 |
showTime | Date | 发表时间 |
comment | String | 摘要 |
content | String | 内容 |
cusattr[*] | String | 附加内容,比如备注就是cusattr["Remark"] |
kindShortName | String | 分类短名称 |
kindLinkPage | String | 分类链接 |
请看清楚,是
pagerInfo
,与上面pageInfo
不一样哦,多个r
,分页相关,列表页才有,索引首页没有
属性名 | 类型 | 说明 |
---|---|---|
totalPageNum | int | 总页数 |
curPageNum | int | 当前页码,从1开始 |
urls | Array |
所有分页的url列表 |
showPageNums | Array |
需要显示的分页列表,比如:当前第2页面,那么显示的分页可能为[1,2,3,4,5] |
下面是在新闻内页模板才会有的变量
属性名 | 类型 | 说明 |
---|---|---|
id | String | 页面id |
code | int | 旧cms的页面id |
type | int | 新闻类型,1图文,2图册,3视频 |
url | String | 新闻url |
title | String | 新闻标题 |
shortTitle | String | 新闻短标题 |
subTitle | String | 新闻副标题 |
isActivity | bool | 是否活动新闻 |
imageUrl | String | 新闻标题图片 |
author | String | 新闻作者 |
showTime | Date | 发表时间 |
comment | String | 摘要 |
content | String | 内容 |
属性名形如cusattr,其中为附加内容名
模板中出现形式为:
$cusattrABCD ##这里是name
系统会将“ABCD”作为附加内容标签、“这里是name”作为附加内容名称抽取出来并自动保存,所以以上内容必须单独占用一行
推荐的新闻不一定都有,有可能为空的数组对象
属性名 | 类型 | 说明 |
---|---|---|
id | String | 页面id |
code | int | 旧cms的页面id |
url | String | 新闻url |
title | String | 新闻标题 |
author | String | 新闻作者 |
showTime | Date | 发表时间 |
属性名 | 类型 | 说明 |
---|---|---|
name | String | 分类名 |
shortName | String | 分类简称 |
kindUdf1 | String | 自定义内容1 |
kindUdf2 | String | 自定义内容2 |
kindUdf3 | String | 自定义内容3 |
属性名 | 类型 | 说明 |
---|---|---|
name | String | 栏目名 |
link | String | 栏目链接 |
属性名 | 类型 | 说明 |
---|---|---|
totalPageNum | int | 总页数 |
curPageNum | int | 当前页码,从1开始 |
urls | Array |
所有分页的url列表 |
allContUrl | string | 展示所有内容的链接 |
titles | Array |
所有分页的标题列表,与urls对应 |
showPageNums | Array |
需要显示的分页列表,比如:当前第2页面,那么显示的分页可能为[1,2,3,4,5] |
属性名 | 类型 | 说明 |
---|---|---|
id | String | 资源id |
name | String | 资源名称 |
comment | String | 资源描述 |
url | String | 资源链接 |
注意:
新闻type为1
时,图册是插入到新闻正文中,所以读正文就能读到,但这种图册,六马后台保存的是静态的代码,属于一次性插入,没办法更新图册,每次更新都得到删掉再重新插入。新闻type为2
时,图册可以更新,新旧顺序前端可调整。
列出常见的一些CMS用到的方式
<ul class="picsList clr">
#set ($cname="")
#foreach($item in $listHuodong) ##mark=活动新闻,in=1,out=5
#if($velocityCount==1)#set($cname="on")
#else #set($cname="")
#end
<li>[$date.format('yyyy-MM-dd',$item.showTime)]<a class="$cname" data-index="$velocityCount" title='$item.title' href='$item.url'><img data-src='$item.imageUrl' src='$item.imageUrl' /></a></li>
#end
</ul>
注意:
$item - 1
运算符号中间需要有空格
#set ($pageCur="")
#foreach($item in $pagerInfo.showPageNums)
#if($item==$pagerInfo.curPageNum)#set($pageCur="select")
#else #set($pageCur="")
#end
#set ($pageLinkIndex = $item - 1)
<a href="$pagerInfo.urls[$pageLinkIndex]" class="$pageCur">$item</a>
#end
#foreach($item in $kindTraceInfos)
<a href="$item.link">$item.name</a>/
#end
#foreach($item in $keywordInfos)
<span>$item</span>,
#end
<h3>新闻分类:$kindInfo.name / $kindInfo.shortName</h3>
<div>
<h3>新闻内容</h3>
<h4>标题:$newsInfo.title</h4>
<h4>子标题:$newsInfo.subTitle</h4>
<h4>短标题:$newsInfo.shortTitle</h4>
<h4>标题图片:<img src="$newsInfo.imageUrl" /></h4>
<h4>新闻地址:<a href="#">$newsInfo.url</a></h4>
<h4>作者:$newsInfo.author</h4>
<h4>新闻时间:$date.format("yyyy-MM-dd",$newsInfo.showTime)</h4>
<p>摘要:$newsInfo.comment</p>
<p>内容:$newsInfo.content</p>
</div>
#foreach($item in $pagerInfo.showPageNums)
#set($pageIndex = $item - 1)
<a href="$pagerInfo.urls[$pageIndex]">$pagerInfo.titles[$pageIndex]</a>
#end
<a href="$pagerInfo.allContUrl">查看全部</a>
<ul>
#foreach($item in $reNewsInfos)
<li><a href="$item.url">【$item.showTime】$item.title</a></li>
#end
</ul>
#foreach($item in $resourceInfos)
<li><img title="$item.name" src="$item.url" /></li>
#end