08CMS/模板系统介绍
模板解析系统概述[ ]
- 本系统采用模板标识多级内嵌结构,规则简洁易用,功能强大丰富。
- 模板标识设置界面化,无需编程基础也可设计出丰富的模板体系。
- 具有详尽的查询体系,原始数据标识可分类列表展示及查找。
- 二级缓存机制,用户可根据需要设定自已的页面缓存方案,可自由选择需要二级缓存的内容区块。
- 对于静态页面,可自由选择需要js动态调用的内容区块。
- 对于静态页面,允许对页面的部分内容区块进行更新。
- 由页面模板体系与模板标识体系组成。
页面模板体系[ ]
页面模板概述[ ]
- 为了管理及设置方便,所有模板相关文件请上传至 .\templates\ 下的某一目录中,该目录应与网站设置中的模板路径保持一致,系统默认目录为 .\templates\default 。模板文件最好直接置于该目录,该目录的url使用原始数据标识{$tplurl}来调用。其它附加文件如图片,css,js等文件可在该目录下自由建立子目录放置。
- 模板文件请使用htm为扩展名,取名允许字母、数字及 _ 的任意组合。
- 如果是Linux系统,请将 .\template 及作为当前模板目录的子文件夹的权限设为 0777,否则不能使用模板复制及网站配置安装等功能。
- 模板内容由Html代码 + 内嵌的模板标识组成,模板标识样式通常为 {x$样式ID} 。
常规页面模板[ ]
以网站常规内容(文档及自主信息)为展示主体的页面。
- 所有模板必须从模板目录中载入,可手动载入,也可自动搜索目录作相应设置后载入。
- 模板的调用通过网站设置,文档模型设置,类目节点设置,及自主信息的模型设置来实现。
- 常规页面模板的分类 :
- 系统首页
- 类目节点首页
- 类目节点列表页
- 文档内容页
- 自主信息内容页及列表页
- 个人空间的首页
- 个人空间的类目首页
- 个人空间的类目列表页
功能页面模板[ ]
有关功能性操作与展示的页面(或页面局部)模板
- 页面项是由系统根据网站配置自动生成,各页面项的模板文件及其内容由用户添加与管理。
- 各功能页面的链接样式请参照系统提示,通常使用链接来调用该页面,如果不使用该功能,可以不设置该页面模板。
- 功能页面模板的分类 :
- 会员操作相关:如会员注册页面,会员登录页面,信息提示页面。
- 文档添加页面:用于在会员中心之外添加文档,不同文档模型须有相应的文档添加页面。
- 自主信息添加页面:用于在会员中心之外添加自主信息,不同信息模型须有相应的信息添加页面。
- 文档搜索页面:分为搜索提交页与搜索结果展示页,允许通用的搜索页及不同文档模型专用的搜索页。
- 内容附加页:用于防盗链等用途的内容附加页,如附件下载页面,Flash播放页,视频播放页。
- 会员操作相关:如会员注册页面,会员登录页面,信息提示页面。
- 交互操作相关:如购物车相关页面,评论页面,答疑页面,投票相关页面等。
页面生成方案[ ]
对页面的动态缓存、页面更新、动态调用等功能进行内容选择性设置。
- 动态页面缓存:将页面模板中的部分内容设为二级缓存。
- 08CMS的页面缓存为两级缓存机制,总的缓存方案请在网站参数设置中进行设置。
- 一级缓存内容更新相对频繁,应用对象为二级缓存内容之外的页面内容,如果二级缓存关闭,则为全页内容。
- 二级缓存更新周期更长,可以将页面中不需要频繁更新的部分内容设置为二级缓存,减轻系统负担。
- 静态页面的js动态调用:将页面模板中的部分内容设为 js动态调用。这部分内容在对应此模板的静态页面中通过 js来调用,保证最快的更新。
- 静态页面的部分更新:允许对静态页面的局部内容进行批量更新,而不必每次修改静态页面时都要全页重新生成静态。
个人空间的页面模板方案[ ]
个人空间用于展示单个会员发表的文档信息。
- 个人空间中的类目不支持多重类目的组合节点,但支持单重类目下的多层结构。
- 个人空间的页面模板有:个人空间首页模板,类目(含个人分类)的首页及列表页模板。
- 允许建立不同的页面模板方案,供会员自行选择适合自已的方案。
模板标识体系[ ]
模板标识概述[ ]
- 模板标识的使用样式为 {x$标识ID},x表示模板标识的类型,标识ID由字母、数字及下划线组成,08CMS模板系统没有规定特别的命名规则,建议用户建立一套方便自已阅读的命名规范。
- 除了原始数据标识,其它标识均为自定义标识,标识的定义全部界面化。
- 自定义标识通常由设定参数与标识模板组成,设置时请仔细阅读同页面的提示说明。
- 包含5种类型的模板标识:原始数据标识、特殊字段标识、复合标识、分页标识、区块替代标识。其中原始数据标识是非用户定义标识,其余为用户定义标识。区块替代标识并不是真正意义的模板标识,不使用它也不会影响模板系统的运作,它存在的意义是为了增加模板设计的快捷及阅读的方便。
原始数据标识[ ]
使用样式为{$标识ID},用于提取系统内置及网站各种信息的原始数据,非自定义标识,所有原始标识可通过原始标识列表查看,也可通过原始标识搜索功能进行查找。
- 原始数据标识中有一部分特殊的标识,并不是真正的原始数据,而是根据当前状况动态衍生出来的标识,如分页导航、页面网站统计、文本分页的分页标题、列表中行序号与单元序号等。
- 原始标识大致有以下分类:
- 通用信息:系统内置的各种参数信息,如网站名称、网站url、模板url等,这类信息通用于任何页面模板及标识模板。
- 文档相关:用于提取文档的各种原始信息,可内嵌于文档内容页面模板及跟文档相关的其它复合标识及分页标识模板。分为文档通用信息及特定模型专用信息,通常在列表性复合标识及分页标识中只能调用文档通用信息。
- 类目相关:用于提取类目的各种原始信息,可内嵌于类目页面模板及与类目相关的复合标识模板中。
- 交互信息:用于提取文档交互的原始信息,如评论、购买、答疑等信息。
- 会员相关:用于提取会员的各种原始信息,可内嵌于会员相关的复合标识模板中。
- 其它原始信息:如投票数据、附件内置信息等。
特殊字段标识[ ]
使用样式为 {u$标识ID},针对某些不能直接使用于模板或需要变化格式的原始信息进行再加工处理,可置于对象原始信息有效的任意位置。
- 自定义函数标识:原则上可对任意单个或任意组合的原始信息作函数处理。请注意所用的函数必须是PHP内置函数或在 ./dynamic/function/utags.fun.php 中定义的函数。
- 附件相关的标识:在08CMS中,图片、下载、视频、Flash等附件及其集合等原始信息通常是多种内置信息的组合,所以需要对这类信息进行模板化应用处理。
复合标识[ ]
使用样式为 {c$标识id} ,08CMS模板解析系统中最重要,功能最丰富的标识类型,因允许嵌套多层其它同类标识而命名为复合标识。其中部分标识为列表性标识,使用时请阅读有关列表性标识的相关使用规则。
复合标识有以下类型:
分页标识[ ]
使用样式为 {p$标识ID},用于显示多页内容。 只能内嵌于页面且每个页面只允许使用一个分页标识,禁止内嵌于其它标识中。 其中部分标识为列表性标识,使用时请阅读有关列表性标识的相关使用规则。
分页标识有以下类型:
区块替代标识[ ]
页面模板区块替代标识,使用样式为 {tpl$标识ID}.。 当多个页面模板包含相同区块内容时,可以将此区块定义为区块替代标识。 在设计页面模板时可用此标识替换模板内的相应区块内容,使页面模板更易于阅读与设计 。区块替代标识限内嵌于页面,禁止内嵌于任何其它模板标识内。
当前可用的原始数据标识[ ]
- 通用信息标识在任何页面模板及标识模板中都为当前可用标识。其它的原始数据标识会在特定页面或特定的标识模板中才会被认为是当前可作标识。错误的标识使用会让标识解析为空(在调试状态下显示为其标识样式)。
- 标识模板内的可用原始标识:请参照不同类型标识定义页面的提示说明。
- 页面模板内的可用原始标识
所谓页面内可用的范围含页面与页面内嵌区块替代标识的标识模板,但不含页面内其它标识的标识模板。
以下为不同页面内的其它当前可用原始数据标识的大致情况:
- 文档内容页:文档相关的通用标识、文档所在模型专用的信息标识。
- 类目首页及列表页:类目相关的通用标识、相关的自定义字段信息标识。
- 自主信息内容页:自主信息相关的通用标识、所在信息模型专用的相关标识。
- 附件操作附加页:文档相关的通用标识、附件所属文档所在模型专用的信息标识。
- 交互信息页面:文档相关的通用标识、交互所属文档所在模型专用的信息标识。
- 其它页面:没有其它的可用原始数据标识。
列表性标识的使用说明[ ]
- 在复合标识与分页标识中有多种类型的标识均为列表性标识,用于信息集合的列表显示,其标识模板及列表方面的设置请遵循此说明。
- 以行列结构来实现列表,可以很方便地实现table设计,如果模板使用div结构,还可以实现更丰富的功能。
- 列表性标识专用的系统内置标记
- [row]行单元内容[/row]:列表的行内容区块,可以省略,省略时标识模板全部当作行内容区块,相当于[row]标识模板内容[/row]。
- [col]列单元内容[/col]:列表的列内容区块,内嵌于行内容区块,标识设定列数为1时,请勿设置此标记。仅当标识设定列数大于1及存在列内容区块两个条件同时成立时,列表才解析为多列列表。
- {$sn_row}:当前行号,内嵌于行内容区块,如果为单列列表,则与单元序号相同。
- {$sn_cell}:当前单元序号,内嵌于列区块内容,对于多页表格,非总序号,仅为当前页的序号。
代码学习
<!-- [row]行单元内容[/row]:列表的行内容区块,可以省略,省略时标识模板全部当作行内容区块,相当于[row]标识模板内容[/row]。 [col]列单元内容[/col]:列表的列内容区块,内嵌于行内容区块,标识设定列数为1时,请勿设置此标记。仅当标识设定列数大于1及存在列内容区块两个条件同时成立 时,列表才解析为多列列表。 --> <table width="500" border="0" cellspacing="0" cellpadding="0"> <tr> <td>内容1</td> <td>内容2</td> <td>内容3</td> <td>内容4</td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table> <!-- 使用列表性 标识的 结果--> <table width="500" border="0" cellspacing="0" cellpadding="0"> [row] <!-- 行块 循环--> <tr> [col] <!-- 列块/单元块 循环--> <td>内容1</td> [/col] </tr> [/row] </table> <div> <ul> <li>11</li> </ul> </div> <div> <ul> [row] <li>11</li> [/row] </ul> </div> <!-- {$sn_row}:当前行号,内嵌于行内容区块,如果为单列列表,则与单元序号相同。 {$sn_cell}:当前单元序号,内嵌于列区块内容,对于多页表格,非总序号,仅为当前页的序号。 -->
激活属性[ ]
在08CMS模板体系中,部分复合标识或分页标识可以继承来自所在页面或父标识的某些属性,此类属性称为激活属性。
当前标识可以用激活属性来进行配置。系统存在以下类型的激活属性:
- 激活文档
- 激活栏目
- 激活分类
- 激活会员