Public CMS 2017

 

模板制作

第一章 模板的用途... 3

1.      概述... 3

2.      普通页面模板... 3

3.      内容页面模板... 4

4.      分类页面模板... 5

5.      任务计划脚本... 6

第二章 数据... 7

1.      概述... 7

2.      通用数据... 7

3.      网页模板通用数据... 7

4.      静态化模板通用数据... 8

5.      静态化分类模板数据... 8

6.      静态化内容模板数据... 8

7.      推荐位数据... 8

8.      动态模板通用数据... 9

9.      动态模板参数数据... 9

第三章 指令... 10

1.      概述... 10

2.      实体查询指令... 10

3.      列表查询指令... 11

第四章 服务支持... 12

1. 免费支持... 12

2. 商业化支持... 13


 

第一章 模板的用途

1.      概述

模板在Public CMS主要有以下几种用途

l  普通页面模板

l  内容页面模板

l  分类页面模板

l  任务计划脚本

在一个网站项目建设中,首先分析出普通页面、分类页、内容页三类页面有助于您快速有条理的创建站点。

2.      普通页面模板

普通页面模板通常用于展示相对固定的内容,比如首页,关于我们,联系我们等等。

此类页面除了展示以外没有分页,可能会展示系统性内容的一部分,比如最新文章,这类内容通常使用指令直接获取数据并展示;也可能拥有一个或多个碎片化的内容,比如首页中的焦点图,联系我们中的留言等,这类碎片化内容通常使用推荐位的方式实现这些内容的管理。

普通页面模板在使用动态方式时需要在后台模板元数据中设置为允许动态访问。

clip_image001.png

普通页面模板静态化时需要在后台模板元数据中设置为启用静态化,并将发布路径配置为实际需要的访问路径。

clip_image003.png

3.      内容页面模板

内容页面模板通常用于展示后台录入的文章。 PublicCMS支持动态方式展示内容也支持将内容静态化一份或多份。

在动态展示时,您至少需要向模板传递一个内容id的参数,以方便模板中使用指令获取内容相关的数据。

内容页面模板在使用动态方式时需要在后台模板元数据中设置为允许动态访问,并设置可接受参数,在其他模板中使用该模板时应该传递内容id到这个参数中。

clip_image005.png

并在分类勾选对应模型,将静态化模板清空,设置内容页面访问路径为上面的模板路径,参数名为上面的可接受参数名,值为${content.id}

clip_image007.png

内容页面模板静态化时需要在后台分类管理为分类设置可发布内容模型,为该模型选择静态化模板,并配置内容页面访问路径。在内容保存时,批量生成时,任务计划生成时就会使用配置的模板为内容生成静态化页面。

clip_image009.png

4.      分类页面模板

分类页面模板通常用于展示后台录入的文章列表,及分类的其他信息。PublicCMS支持动态方式展示内容也支持将内容静态化一份或多份。

在动态展示时,您至少需要向模板传递一个分类id的参数,以方便模板中使用指令获取内容相关的数据。

分类页面模板在使用动态方式时需要在后台模板元数据中设置为允许动态访问,并设置可接受参数,在其他模板中使用该模板时应该传递分类id到这个参数中。

clip_image005.png

并在分类设置中将静态化模板清空,设置分类页面访问路径为上面的模板路径,参数名为上面的可接受参数名,值为${category.id}

clip_image013.png

分类页面模板静态化时需要在后台分类管理为分类设置静态化模板,并配置分类页面访问路径。在分类保存时,批量生成分类首页时,生成分类页面时,任务计划生成时就会使用配置的模板为分类生成静态化页面。

clip_image015.png

 

5.      任务计划脚本

任务计划脚本用于PublicCMS的任务计划中,在任务计划脚本中通过调用特定指令完成某些数据操作,并由通过任务计划调度,比如在静态化站点中定时生成。

clip_image017.png

第二章 数据

1.      概述

在模板中使用<#list .data_model?keys as k>${k}</#list>输出当前模板的数据模型变量名,可以了解到当前模板中哪些变量是可以直接使用的。

在动态模板中您可能会得出如下信息:

site,RequestParameters,springMacroRequestContext,Request,JspTaglibs,org.springframework.validation.BindingResult.metadata,include,Session,Application,base,import,user,metadata

在静态化模板中您可能会得出如下信息:

site,import,url,include,metadata

其中import,includePublicCMS内置的导入和包含指令; RequestParameters, springMacroRequestContext,  Request, JspTaglibs,  org.springframework.validation.BindingResult.metadata, Session, Applicationspringmvc框架向动态模板注入的对象,PublicCMS为您提供了很多便捷的解决方案,在不能满足您的需求时,您可以使用框架提供的对象完成比较复杂的业务实现。

2.      通用数据

l  site

站点

属性

类型

名称

id

int

站点ID

name

string

站点名称

useStatic

boolean

启用静态化

sitePath

string

静态站点访问地址

useSsi

boolean

启用服务器端包含

dynamicPath

string

动态站点访问地址

disabled

boolean

已禁用

 

3.      网页模板通用数据

l  metadata

模板元数据

属性

类型

名称

示例

alias

string

模板名称


publishPath

string

发布路径


useDynamic

boolean

是否可动态访问


needLogin

boolean

是否需要登录


acceptParamters

string

可接受参数列表


cacheTime

int

缓存时间


extendList

list

扩展字段列表


extendDataList

list

扩展数据列表


extendData

map

扩展数据哈希表

${metadata.extendData.扩展字段名}

 

4.      静态化模板通用数据

url

模板静态化路径

5.      静态化分类模板数据

category

分类实体

attribute

分类扩展

pageIndex

当前页码

6.      静态化内容模板数据

content

内容实体

category

分类

attribute

内容扩展

page

分页

text

文本

7.      推荐位数据

page

带分页的数据

8.      动态模板通用数据

l  base

当前动态站点的根路径,例如:

<a href=”${base}”>返回首页</a>

 

l  user

当前登录用户

属性

类型

名称

示例

id

int

用户ID


siteId

int

站点ID


name

string

用户名


nickName

string

昵称

<#if user??>您好,${user.nickName}<#else>未登录</#if>

deptId

int

部门ID


roles

string

角色ID


email

string

邮件地址


emailChecked

boolean

邮件地址已验证


superuserAccess

boolean

管理员权限


disabled

boolean

已禁用


lastLoginDate

date

上次登录日期


lastLoginIp

string

上次登录IP


loginCount

int

登陆次数


registeredDate

date

注册日期


 

9.      动态模板参数数据

Public CMS后台中您可以设置模板可以接收的参数,请求模板时http可接受的请求参数会被放到模板的数据模型中,您可以直接使用参数名使用。

例如:

我们在某个模板元数据中设置了id为可接受参数

clip_image019.png

在模板中我们可以使用${id}输出这个参数的值。假如这个id是内容的ID,我们可以使用<@_content id=id>${object.title}</@_content>获取这个id对应得内容,并输出内容的标题

第三章 指令

1.      概述

因为在freemarker模板中,指令是最为特殊的数据模型存在的,因此在PublicCMS模板中的指令除import,include指令外,一律使用“_”当作前缀,以和模板中的数据进行区分。同时模板中的指令同时支持json/jsonp接口的方式被js或其他系统调用。

指令中默认了变量名称

模板中主要有三类指令:

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

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

l  实现特殊功能的指令

2.      实体查询指令

查询单个实体

<#assign id=1/>

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

 

或查询多个实体

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

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

 

指令列表

指令名

实体

content

内容

category

分类

categoryType

分类类型

model

内容模型

place

推荐位数据

tag

标签

tagType

标签类型

word

搜索词

logTask

任务计划日志

sysApp

应用

sysDept

部门

sysDomain

域名

sysFtpUser

FTP用户

sysMoudle

后台管理模块

sysRole

角色

sysSite

站点

sysTask

任务计划

sysUser

用户

pluginLottery

抽奖

pluginVote

投票

pluginVoteUser

投票记录

pluginVoteItem

投票选项

 

3.      列表查询指令

该类指令都拥有pageIndexcount两个参数,分别表示当前页数、每页条数,查询结果统一为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

分类类型

contentFileList

内容附件

contentList

内容

contentRelatedList

内容推荐

modelList

模型

placeList

推荐位数据

tagList

标签

tagTypeList

标签类型

wordList

搜索词

logLoginList

登陆日志

logOperateList

操作日志

logTaskList

任务计划日志

logUploadList

文件上传日志

pluginLotteryList

抽奖

pluginLotteryUserList

抽奖记录

pluginVoteItemList

投票选项

pluginVoteList

投票

pluginVoteUserList

投票记录

sysAppClientList

应用客户端

sysAppList

应用

sysAppTokenList

应用授权码

sysClusterList

服务器节点

sysDeptCategoryList

部门分类授权

sysDeptList

部门

sysDeptPageList

部门页面授权

sysDomainList

域名

sysExtendFieldList

扩展字段

sysFtpUserList

FTP用户

sysMoudleList

后台管理模块

sysRoleList

角色

sysRoleMoudleList

角色模块授权

sysRoleUserList

角色用户映射

sysSiteList

站点

sysTaskList

任务计划

sysUserList

用户

sysUserTokenList

用户登陆授权

 

第四章 服务支持

1. 免费支持

PublicCMS官网://www.publiccms.com/

QQ交流群:191381542 (已满) 481589563

Freemarker文档:http://www.kerneler.com/freemarker2.3.23/

在线调试FreeMarkerhttps://www.sanluan.com/freemarker_test.html

2. 商业化支持

目前只接受以下培训类项目:

产品使用、模板制作、环境部署、二次开发、系统架构、产品相关框架

联系方式:

QQ315415433

邮箱:zyyy358@126.com


3条评论
  • asd123
    asd123
    2017-10-19 23:21
    reply 回复

    强大,迅速的CMS

  • 湖水没了
    湖水没了[管理员]
    2017-05-19 17:23
    reply 回复

    这个系统目前专业性还是比较强,如果想学习可以看看视频

  • a794581572
    a794581572
    2017-05-15 11:54
    reply 回复

    看了跟没看一样,一头的雾水,有针对新手的文档吗??

发表评论