# **模板分类** > 分类思路与老多玩发布器的基本一致,只是更精简些。 - 普通模板 > 不含变量的HTML模板,可以直接当最终页使用 - 标签模板 > 在普通模板的基础上,加入了根据标签遍历文章列表的foreach语法,可能带有列表分页代码,并在页面中加入了跟标签有关的内容。 > 此类模板,不能直接作为最终页使用,应配合具体的标签ID,才可输出具体的最终页。 - 文章模板 > 在普通模板的基础上,加入了单篇文章的多个字段数据渲染。 > 此类模板,不能直接作为最终页使用,应配合具体的文章ID,才可输出具体的最终页。 ---
# **模板语法** > 废除了velocity,采用了smarty2.5,并延用了老多玩发布器的部分括号语法。 ### 括号语法 - 包含 > - {[模板=xxx]} > - {[模板=xxx;专区=yyy]} > - {[模板ID=ddddddddddd]} > > 新增模板时,将自动把`{[模板]}`换成`{[模板ID]}`格式,保存到数据库,编辑器展示时,恢复为`{[模板]}`格式。 > > > >(核心代码: Tpl::replaceIncludeGramToHuman()。这点和老多玩发布器不太一样。即便子模板改名,也不影响母模板) - 分页 > {[分页数=25]} > > 用法跟老多玩发布器的一样 ### 文章及标签模板常用语法 > 详见 ---
# **模板生成** > 代码位于后台 /tpl/edit 的POST处理分支 ### 过程 - 检查模板名、路径格式、专区等基本信息 - 检查模板语法错误 - 检查潜在的模板递归嵌套 > 代码:Tpl::recurseTpl() - 生成模板 > 代码:Tpl::genStatic() - 提供立即预览支持 > 代码:/tpl/preview - 保存模板并生成链接 > 代码:Tpl::decideFullSavepathAndLink() ---