模板指令和函数使用帮助

第一章 指令

1.      概述

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

模板中主要有三类指令:

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

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

  • 任务计划专用指令

  • 功能指令

您可以借助Public CMS后台模板编辑功能提供的模板制作帮助修改模板。

2.      实体查询指令

查询单个实体

<#assign id=1/>

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

 

或查询多个实体

<#assign ids=’1,2,3’/>

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

 

指令列表

指令名
实体

content

内容

category

分类

categoryType

分类类型

comment
评论

model

内容模型

place

推荐数据

tag

标签

tagType

标签类型

word

搜索词

logTask

任务计划日志

sysApp

应用

sysDept

部门

sysDomain

域名

sysMoudle

后台管理模块

sysRole

角色

sysSite

站点

sysTask

任务计划

sysUser

用户

 

3.      列表查询指令

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

 

查询列表数据

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

<#list page.list as a>

        ${a?   counter}:${a.id}<#if a?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

上一页页码

 

指令列表

指令名
实体

categoryList

分类

categoryModelList

分类模型映射

categoryTypeList

分类类型

commentList
评论

contentFileList

内容附件

contentList

内容

contentProductList内容产品
contentQuoteList内容引用

contentRelatedList

内容推荐

contentTextHistoryList内容正文历史

modelList

模型

placeList

推荐数据

tagList

标签

tagTypeList

标签类型

wordList

搜索词

logLoginList

登陆日志

logOperateList

操作日志

logTaskList

任务计划日志

logUploadList

文件上传日志

sysAppClientList

应用客户端

sysAppList

应用

sysAppTokenList

应用授权码

sysClusterList

服务器节点

sysDeptCategoryList

部门分类授权

sysDeptList

部门

sysDeptPageList

部门页面授权

sysDomainList

域名

sysExtendFieldList

扩展字段

sysModuleList

后台管理模块

sysRoleList

角色

sysRoleMoudleList

角色模块授权

sysRoleUserList

角色用户映射

sysSiteList

站点

sysTaskList

任务计划

sysUserList

用户

sysUserTokenList

用户登陆授权

4.      任务计划专用指令

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

指令列表

指令名

接收参数

含义

clearLog

clearDate

清理clearDate日期以前的日志

indexContent

id或ids

根据内容ID重建索引

publishCategory

id或ids、pageIndex、totalPage

生成分类静态化文件

publishContent

id或ids

生成内容静态化文件

publishPage

path

生成页面静态化文件

publishPlace

path

生成页面片段静态化文件

 

5.      功能指令

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

 

指令列表

指令名

接收参数

含义

createCategoryFile

id,templatePath,filePath,pageIndex

用templatePath为模板生成id这个分类的第pageIndex页静态文件,路径为filePath

createContentFile

id,templatePath,filePath,pageIndex

用templatePath为模板生成id这条内容的第pageIndex页静态文件,路径为filePath

createTemplateFile

templatePath,filePath,pageIndex

用templatePath为模板生成第pageIndex页静态文件,路径为filePath

disk


获取磁盘状态:rootPath为数据目录路径,freeSpace为剩余容量,totalSpace为总容量,usableSpace为可用容量

includePlace

path或paths

包含页面片段,根据站点设置输出页面片段内容或ssi包含指令

licenseVerify

licenseData、signaturer

验证授权文件是否合法

masterSite


判断当前站点是管理站点则输出指令中包含的内容

memory


获取内容状态:freeMemory为剩余内存,totalMemory为总内存,maxMemory为最大内存

metadata

path或dir

获取模板元数据或获取某目录下所有模板的元数据map

placeMetadata

path或dir

获取页面片段元数据或获取某目录下所有页面片段的元数据map

sendEmail

email、title、templatePath或content

发射标题为title内容为路径templatePath的模板渲染结果或者content的邮件到email

SystemProperties


获取系统参数

taskTemplateContent

path

获取任务计划脚本内容

taskTemplateList

path

获取任务计划脚本列表

templateContent

path

获取模板内容

templateList

path

获取模板列表

templateResult

templateContent

打印模板渲染结果

thumb

path,width,height

对路径为path的图片文件进行缩略,高为height宽为width

userAgent


获取userAgent,

version


获取程序版本

webFileContent

path

获取网站资源文件内容

webFileList

path

获取网站资源文件列表

 

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)/>

 

3.      方法列表

方法名

接收参数

含义

getContentAttribute

内容id

获取某条内容的扩展属性

getContentAttributes

内容id数组或逗号间隔的id组成字符串

获取多条内容的扩展属性(不包含text字段)

getCategoryAttribute

分类id

获取某个分类的扩展属性

getCategoryAttributes

分类id数组或逗号间隔的id组成字符串

获取多个分类的扩展属性

getContentPage

内容id

获取内容正文分页结果

分页结果:   getContentPage(text,pageIndex).page

分页后的正文:getContentPage(text,pageIndex).text

getPlaceAttribute

推荐数据id

获取某个推荐数据的扩展属性

getPlaceAttributes

推荐数据id数组或逗号间隔的id组成字符串

获取多个推荐数据的扩展属性

getDate

类型、日期

获取特定类型日期,日期为空时取当前时间

thisSunday本周日

thisMonday本周一

lastMonday上周日

lastSunday上周一

getHtml

网址,消息体

获取网址内容

消息体为map时发生表单post请i去

消息体为字符串时发生消息体post请求

getKeywords

字符串

获取字符串分词结果

getMd5

字符串

获取字符串的MD5加密结果

getPage

url、页码

获取分页处理后的url

getRandom

数字

获取最大值为输入数字的随机数

输入数字为空则获取随机数字

getSha1

字符串

获取字符串的SHA-1加密结果

getSha2

字符串

获取字符串的SHA-2加密结果

getSleep

睡眠一小段时间,一般情况下尽量不要使用它

getTemplateResult

模板字符串

获取模板字符串渲染结果

geTextFromHtml

html文本

获取html文本中包含的文本节点结果

getUUID


获取UUID

getXml

xml文本

获取xml对象

 


保存页面 更多文档 数据结构 JAVA API

0条评论