第一章 指令
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 | 上一页页码 |
该类指令只能再任务计划脚本中使用
指令列表
指令名 | 接收参数 | 含义 |
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)/> |
0条评论
发表评论