Porting Templates

Porting Templates

出自LifeType 中文文件计画

跳转到: 导航, 搜寻

目录

移植模版到 LifeType 1.1

针对LifeType 1.0 设计的模版,在没有移植的情况下,也可以正常的在LifeType 1.1版中使用。但是它可能无法使用最新的功能,例如:分页功能。

下面的内容将提供给对移植模版感兴趣的使用者做为参考,说明在模版移值的过程中,那些模版档案是必需加以修改的。

文章分页

LifeType 1.1会依据整个部落格、某个月份的匯整或是某个目录下的文章或档案数目,自动在首页产生分页。但是,我们必需使用一些额外的Smarty语法来显示分页。

显示分页最简单的方式是使用Smarty 的 {pager} 函数,该函数已经包含所有显示分页必需的相关逻辑内容。

你可以在main.templatefooter.template的最底部(分页显示的确切位置,可能会依照模版的不同而有所差别)加入以下程式码:

{pager style="links"}

style 后的参数值可以使用下面的任何值来取代:

  • links 会显示一个基本的水平样式的分页连结,包含 "Next" 和 "Prev" 的连结,这两个连结显示与否会依照目前页数和全部页数的关系而自动调整。
  • nextonly 在必要的时候,只会显示往下一页的连结(在最后一页时则不显示连结)。
  • prevonly 在必要的时候,只会显示往上一页的连结(因此,在第一页时则不显示连结)。

分页函数也支援以下参数:

  • separator: 当使用 "link" 样式时,用来做为页码分隔的字元,预设值为空白字元。
  • disablediv: 指定包夹住分页的div标籤名称。预设值是没有。
  • next: 下一页连结的名称或是翻译名词。预设为语系档中的next_post后的对应值。
  • previous: 前一页连结的名称或是翻译名词。预设为语系档中的previous_post后的对应值。


(James 补充:在中文语系下,建议将

{pager style="links"}

修改成

{pager style="links" next="下一页" previous="上一页"}

因在中文语系中next_post和previous_post分别为前、后篇。因此使用上述的参数,自订前后页的文字说明会较为贴切。)

底下是提供给分页使用的CSS样式(CSS classes)名称:

  • pagerLink: 分页连结样式。
  • pagerLinkPrevPage: "上一页" 连结样式。
  • pagerLinkNextPage: "下一页" 连结样式。
  • pagerCurrent: 目前所在页面样式(无连结样式)。

以上这些样式,应该够用来设计一个符合模版整体风格的分页外观。不管未来是否有客制化的需要,你甚至可以使用上面不同的样式来创造属于自己风格的分页。

档案分页

和文章相同的,在LifeType 1.1中档案也使用赶流行的分页方式。

和文章不同的是,要让档案支援分页显示,必需对模版档案做额外的修改。如果没有加上这些修改,那么将会得到和平常一样没分页的效果,将所有的档案全部在一个页面中显示出来。

album.template 档案中找到以下的Smarty 程式码:

{assign var=resources value=$album->getResources()}
{foreach from=$resources item=resource}

将它用以下的程式码取代:

 {foreach from=$resources item=resource}

在这个例子中不同的是 $resources 这个阵列已经被预设为在该页面中会显示的档案,但在之前的版本中,该阵列会载入该资料夹中所有的档案。站在系统效能的观点来看,这应该是比较好的解决方法。

接下来显示分页的方法,和文章分页是一样的,同样是透过misc/pager.template这个档案。不管是文章分页或是档案分页,它们运作的原理都一样,因此在分页显示这个部份并不需要额外的修改。

在 album.template 档案中的适当地方,加上下面的内容:

{pager style="links"}

分页显示的位置,会依照目前页面的样式而定。

取得迴响和引用的正确数字

直到LifeType 1.0 版为止,使用 $post->getNumTrackbacks() 会传回所有非垃圾引用的数目,而$post->getTotalComments() 则会传回所有非垃圾迴响的数目。

为了一致性的理由,LifeType 1.1修正了这个问题,修正后可以使用的方法如下:

  • $post->getTotalComments(): 传回非垃圾迴响的数目。
  • $post->getTotalTrackbacks(): 传回非垃圾引用的数目。
  • $post->getNumComments(): 传回所有迴响的数目(包括垃圾迴响和正常迴响)。
  • $post->getNumTrackbacks(): 传回所有引用的数目(包括垃圾引用和正常引用)。

请务必记得,当你将LifeType 1.0.x的模版移值到LifeType 1.1时,一定要将所有已经存在的getNumTrackbacks() 取代为getTotalTrackbacks(),否则引用的计数可能会有所出入。

移除浏览总数

$blog->getViewedTotal() 传回浏览总数的统计功能从 LifeType 1.1 后取消,以后也不会再加上去,请务必移除,否则网页将无法正常显示,详情请见 原讨论