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