模板指令和函数使用帮助

第一章 指令

1.      概述

通过自定义指令获取数据是publiccms实现模板自定义的主要方式,因为在freemarker模板中,指令是一种特殊的数据模型,因此在PublicCMS模板中的指令除import,include指令外,可以使用“_”当作前缀使用指令,也可以使用”包名.简短指令名”,以和模板中的数据进行区分。同时模板中的指令支持json接口的方式被js或其他系统调用。

模板中主要有四类指令:

  • 根据主键获取单个或多个实体的指令

  • 根据条件查询列表的指令

  • 任务计划专用指令:该类指令只能再任务计划脚本中使用

  • 功能指令:该类指令用于完成特定功能、可以在任意模板使用

您可以借助PublicCMS后台模板编辑功能提供的模板制作帮助修改模板。也可以查看指令函数使用手册得到指令的具体使用方法。

2.     

查询单个实体

<#assignid=1/>

<@_指令名id=id>${object.属性}</@_指令名>

<@包名.简短指令名id=id>${object.属性}</@包名.简短指令名>

或查询多个实体

<#assignids=’1,2,3’/>

<@_指令名ids=ids>${map[‘1’].id}</@_指令名>

<@包名.指令名ids=ids>${map[‘1’].id}</@包名.指令名>

该类指令都拥有pageIndex、count两个参数,分别表示当前页数、每页条数,查询结果统一为page。

查询列表数据

<@_指令名pageIndex=1count=10>

<#listpage.listasa>

${a?counter}:${a.id}<#ifa?has_next>,</#if>

</#list>

</@_指令名>

<@包名.简短指令名pageIndex=1count=10>

<#listpage.listasa>

${a?counter}:${a.id}<#ifa?has_next>,</#if>

</#list>

</@包名.简短指令名>

page属性列表

属性名类型含义

totalCount

int

数据总数

pageSize

int

每页条数

pageIndex

int

当前页码

list

List

查询结果实体列表

totalPage

int

总页数

firstResult

int

第一条序号

firstPage

boolean

是否第一页

lastPage

boolean

是否最后一页

nextPage

int

下一页页码

prePage

int

上一页页码


4.      任务计划专用指令

该类指令只能再任务计划脚本中使用

指令列表

指令名

接收参数

含义

clearLog

clearDate

清理clearDate日期以前的日志

indexContent

id或ids

根据内容ID重建索引

publishCategory

id或ids、pageIndex、totalPage

生成分类静态化文件

publishContent

id或ids

生成内容静态化文件

publishPage

path

生成页面静态化文件

publishPlace

path

生成页面片段静态化文件

 

5.      功能指令

该类指令用于完成特定功能

 


6.      别名和作用域

当指令中输出的变量与上文变量相同时,在指令内部此变量名代表的是指令输出的变量,指令结束后该变量名被重置为上文的变量代表的值。

 

为了保持统一,系统中大部分输出变量都被设置为object,page,list,result等没有明确含义的变量名,在调用指令时可以指定这些变量的别名,这些变量和变量别名都会在指令结束后被回收。

想要在指令结束后继续使用一个变量,可以用assign定义一个新的变量名。

 

示例:

<#assign id=1/>

<@_content id=id ;content>${content.title}</@_content   > 下面这个输出则会提示content不存在${content. title }

<@_content id=id><#assign   content=object/>${content.title}</@_content > 下面这个输出会输出内容的标题${content. title }

 

第二章 方法

1.      概述

方法是freemarker的一种轻量级扩展方式,一个函数可以接收多个参数但是只能有一个输出。

在Public CMS中比较简单的数据获取、某些变量的处理通常采用方法实现。

2.      方法使用

获取内容扩展属性

<#assign   attribute=getContentAttribute(id)/>


保存页面 指令函数手册 数据结构 JAVA API 更多文档

0条评论
发表评论