网站服务部小组文档

新模板语言Velocity说明

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使用

CMS中,针对不同类型模板,内置了一些变量,方便我们直接读取新闻相关的信息

索引、列表页


pageInfo(页面数据,属性名)

属性名 类型 说明
id String 页面id
code int 旧cms的页面id
udf1 String 自定义内容1
udf2 String 自定义内容2
udf3 String 自定义内容3
udf4 String 自定义内容4
udf5 String 自定义内容5

newsList(新闻列表)

此变量名为动态,变量自定义,需要以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(分页相关)

请看清楚,是pagerInfo,与上面pageInfo不一样哦,多个r,分页相关,列表页才有,索引首页没有

属性名 类型 说明
totalPageNum int 总页数
curPageNum int 当前页码,从1开始
urls Array 所有分页的url列表
showPageNums Array 需要显示的分页列表,比如:当前第2页面,那么显示的分页可能为[1,2,3,4,5]

新闻内页

下面是在新闻内页模板才会有的变量

newsInfo(内页新闻数据)

属性名 类型 说明
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*(新闻内页的自定义内容)

属性名形如cusattr,其中为附加内容名
模板中出现形式为:
$cusattrABCD ##这里是name
系统会将“ABCD”作为附加内容标签、“这里是name”作为附加内容名称抽取出来并自动保存,所以以上内容必须单独占用一行

reNewsInfos(推荐新闻列表,数组来的)

推荐的新闻不一定都有,有可能为空的数组对象

属性名 类型 说明
id String 页面id
code int 旧cms的页面id
url String 新闻url
title String 新闻标题
author String 新闻作者
showTime Date 发表时间

kindInfo(新闻分类,当前新闻所属的分类)

属性名 类型 说明
name String 分类名
shortName String 分类简称
kindUdf1 String 自定义内容1
kindUdf2 String 自定义内容2
kindUdf3 String 自定义内容3

kindTraceInfos(面包线,新闻所属分类层级列表,数组来,比如:kindTraceInfos[0]为一级栏目)

属性名 类型 说明
name String 栏目名
link String 栏目链接

keywordInfos(关键字列表,Array类型,直接根据下标访问)

pagerInfo(新闻分页内容,与列表页的类似)

属性名 类型 说明
totalPageNum int 总页数
curPageNum int 当前页码,从1开始
urls Array 所有分页的url列表
allContUrl string 展示所有内容的链接
titles Array 所有分页的标题列表,与urls对应
showPageNums Array 需要显示的分页列表,比如:当前第2页面,那么显示的分页可能为[1,2,3,4,5]

resourceInfos(图册、视频资源列表,只有新闻type为2或者3时有值,为数组列表)

属性名 类型 说明
id String 资源id
name String 资源名称
comment String 资源描述
url String 资源链接

注意:新闻type为1时,图册是插入到新闻正文中,所以读正文就能读到,但这种图册,六马后台保存的是静态的代码,属于一次性插入,没办法更新图册,每次更新都得到删掉再重新插入。新闻type为2时,图册可以更新,新旧顺序前端可调整。


常见CMS用法

列出常见的一些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

参考文档链接