1. 概述
模板在Public CMS主要有以下几种用途
- 普通页面模板
- 内容页面模板
- 分类页面模板
- 任务计划脚本
- 模板片段
- 页面片段
在一个网站项目建设中,首先分析出普通页面、分类页、内容页三类页面有助于您快速有条理的创建站点,灵活的使用模板片段、页面片段、任务计划脚本可以让您的网站模板逻辑更加合理。
2. 普通页面模板
普通页面模板通常用于展示相对固定的内容,比如首页,关于我们,联系我们等等。
此类页面除了展示以外没有分页,可能会展示系统性内容的一部分,比如最新文章,这类内容通常使用指令直接获取数据并展示;也可能拥有一个或多个碎片化的内容,比如首页中的焦点图,联系我们中的留言等,这类碎片化内容通常使用页面片段的方式实现这些内容的管理。
- 动态访问
普通页面模板在使用动态方式时需要在后台模板元数据中设置为允许动态访问。
- 静态化
普通页面模板静态化时需要在后台模板元数据中设置为启用静态化,并将发布路径配置为实际需要的访问路径。
3. 内容页面模板
内容页面模板通常用于展示后台录入的文章。 Public CMS支持动态方式展示内容也支持将内容静态化一份或多份。
- 动态访问
在动态展示时,您至少需要向模板传递一个内容id的参数,以方便模板中使用指令获取内容相关的数据。
在后台模板元数据中设置为允许动态访问,并设置可接受参数,在其他模板中使用该模板时应该传递内容id到这个参数中。
并在分类勾选对应模型,将静态化模板清空,设置内容页面访问路径为上面的模板路径,参数名为上面的可接受参数名,值为${content.id}
- 静态化
内容页面模板静态化时需要在后台分类管理为分类设置可发布内容模型,为该模型选择静态化模板,并配置内容页面访问路径。在内容保存时,批量生成时,任务计划生成时就会使用配置的模板为内容生成静态化页面。
4. 分类页面模板
分类页面模板通常用于展示后台录入的文章列表,及分类的其他信息。Public CMS支持动态方式展示内容也支持将内容静态化一份或多份。
- 动态访问
在动态展示时,您至少需要向模板传递一个分类id的参数,以方便模板中使用指令获取内容相关的数据。
分类页面模板在使用动态方式时需要在后台模板元数据中设置为允许动态访问,并设置可接受参数,在其他模板中使用该模板时应该传递分类id到这个参数中。
并在分类设置中将静态化模板清空,设置分类页面访问路径为上面的模板路径,参数名为上面的可接受参数名,值为${category.id}
- 静态化
分类页面模板静态化时需要在后台分类管理为分类设置静态化模板,并配置分类页面访问路径。在分类保存时,批量生成分类首页时,生成分类页面时,任务计划生成时就会使用配置的模板为分类生成静态化页面。
5. 任务计划脚本
任务计划脚本用于Public CMS的任务计划中,在任务计划脚本中通过普通指令和任务计划专用指令完成某些数据操作,并由任务计划调度,比如在静态化站点中定时生成。
6. 模板片段
模板片段是freemarker模板引擎的模板复用方案。 模板片段有包含和导入两种使用方式。
模板片段包含是将一段模板语句提取成单独的文件,可以被不同模板包含。可以让一部分模板复用,减少总代码量和对重复内容反复修改的工作量。在被包含的模板片段中可以直接使用模板上文的变量。
导入模板时需要为他命名一个命名空间,使用模板中的变量或者函数、指令定义时也需要带着命名空间。导入的方式能有效避免上下文变量名的污染。
7. 页面片段
页面片段是Public CMS在产品设计中引入的,每个页面片段就是一个完整的页面,它先解析为文本(比如html)再嵌入到引用它的页面中。在它渲染时,拿不到引用它的模板的变量。在启用SSI后,页面片段可以通过任务计划定时生成,模板中的页面片段引用将只打印一个ssi指令,由nginx等服务在请求html时动态包含。这时能极大的提高模板渲染速度。
另外页面片段还可以通过在元数据中设置数据有效条数,绑定一个可扩展的数据列表,绑定了数据的页面片段我们一般将之称为推荐位,比如焦点图、友情链接、编辑推荐文章等就可以使用推荐位来实现。可以让开发人员少开发一些后台管理功能,仅仅在后台添加页面片段的方式就能实现一些碎片化数据的展示、维护。