LifeType模板运作原理

来自站长百科
跳转至: 导航、​ 搜索

LifeType | 安装及升级 | 模板设计 | FAQ

模版如何运作[ ]

前面提到过,LifeType使用Smarty引擎来产生网志的网页内容。 也就意味着使用者可以轻易的在后台管理介面中,更换模版改变网页的外观。但,模版是如何运作?使用者又该如何制作属于自己的模版呢?

开始之前必须先知道的是,所有的模版存放在LifeType架构中的哪一个位置。 LifeType的模版是存放在*templates/*之下,在这个资料夹中,除了网志可以使用的模版之外,还包含了后台页面(admin)、摘要页面(summary)、安装精灵(wizard )、RSS feed页面(rss)以及邮件通告(misc)等模版。

LifeType预设的网志模版有三个,分别是standard、grey与blueish。 以grey模版为例,在grey资料夹中,我们可以看到以下的*.template文件档:

  1. commentarticle.template
  2. commentform.template
  3. demosites.template
  4. error.template
  5. features.template
  6. footer.template
  7. header.template
  8. main.template
  9. post.template
  10. postandcomments.template
  11. posttrackbacks.template
  12. samplerss.template
  13. album.template
  14. albums.template
  15. resource.template
  16. searchresults.template

在这16个*.template文件档中,以粗体表示的是最基本的模版,也是必须存在的模版。 这9个模版更是网志运作与呈现不可缺少的。以下简述9个档案的基本功能:

  • main.template:这个档案控制网志的主页面。
  • postandcomments.template:这个档案控制网志文章内容与回响内容的呈现。
  • commentarticle.template:这个档案主要用来显示新增(或回覆)回响时的表单。
  • posttrackbacks.template:用来显示网志文章的所有引用资讯。
  • error.template:显示错误讯息用。
  • album.template:显示资源中心资料夹下的档案。
  • albums.template:与上述档案不同之处,这个档案室用来显示资源中心里所有最上层的资料夹。
  • resource.template:用来显示档案详细资料。
  • searchresults.template:顾名思义,就是用来显示网志中搜寻结果。

看到这,或许有人会怀疑,既然只需要9个模版档案即可,那为何又多出7个额外的档案?这7个档案或许不起眼,但却是修改模版中不可缺的帮手,有了这7个档案,让模版的修改更加容易。

上述9个主要模版档案中,每一个档案都必须有完整的网页结构,才能让网志正常运作。 而这些网页呈现所需的结构,有部分是一再重复的。在制作模版的过程中,如果要让每个页面有相同的页首与页尾,没别的办法,只能重复的执行「复制、贴上」的动作9次。若不幸中途做了点修改,那又得回头去「复制、贴上」。

幸好,Smarty允许使用{include...}标签在当案中汇入另一个档案,只要在标签中加上参数「file」,并设定好汇入档案的路径即可。 有了这样的功能,在制作或修改模版的时候,我们只需将会重复使用的部分写成一个档案,再利用{include...}标签将其汇入LifeType的主要模版之中。

以页首与页尾为例子,若所有模版均使用相同的页首(header)与页尾(footer),那么模版开发者只需将页首页尾的部分另外写成 header.template与footer. template两个档案,再用{include...}标签汇入到主要的模版档案中,方法如下:

{include file="$blogtemplate/header.template"}

... ...

模版內容模版内容

... ...
{include file="$blogtemplate/footer.template"}

有一点须注意的是,{include...}标签中使用的路径是相对于templates/资料夹的。另外,也可以使用$blogtemplate变数来表示templates/底下各个模版资料夹的名称,这样一来就算模版资料夹更名或搬移,也不会影响模版的运作。

利用这样的方式,当我们修改模版页首的呈现时,只需针对header.template修改一次,即可达到全部修改的目的。也因此,才会出现commentform.template、post.template等档案的出现。 而这些模版中,我们已经知道header.template与footer.template,分别控制页面的页首与页尾呈现,在此简单叙述commentform.template与post.template这两个档案的作用:

  • commentform.template:这个档案主要包含了提交回响的表格,因为也具有可重复使用的特性,因此将其独立出来,再以汇入的方式工其他档案使用。一般来说,这个档案常用在postandcomments.template之中。
  • post.template:这个档案主要包含了网志的文章内容,一般来说,这个档案常用在main.template与postandcomments.template之中。

(以上摘译改写自LifeType英文wiki文件,下方Smarty如何产生php页面的图解与说明,改写自Mark Wu的0.32版教学投影片。)

说完了LifeType模版的基本结构,那这些模版究竟是如何运作,成为最后呈现在网页上面的样子? 以下借用Jace Ju的Smarty入门中的Smarty样版引擎运作示意图,来说明LifeType模版的运作流程。图片连结: http://forum.lifetype.org.tw/index.php?action=dlattach;topic=1552.0;id=89;image

参考来源[ ]

LifeType使用手册导航

安装及升级

安装前的准备 | 安装 | 升级

模板设计

模板主题与模板 | 模板运作原理 | 模板与LifeType物件 | 模板相容列表 | 移植模板

FAQ

安装问题 | 使用问题 | 日志管理 | 外挂程序 | 模板问题