Porting Templates

Porting Templates

出自LifeType 中文文件計畫

在2006年7月19日 (三) 08:31由James (對話 | 貢獻)所做的修訂版本
跳轉到: 導航, 搜尋

目錄

移植模版到 LifeType 1.1

針對LifeType 1.0 設計的模版,在沒有移植的情況下,也可以正常的在LifeType 1.1版中使用。但是它可能無法使用最新的功能,例如:分頁功能。

下面的內容將提供給對移植模版感興趣的使用者做為參考,說明在模版移值的過程中,那些模版檔案是必需加以修改的。

文章分頁

LifeType 1.1會依據整個部落格、某個月份的匯整或是某個目錄下的文章或檔案數目,自動在首頁產生分頁。但是,我們必需使用一些額外的Smarty語法來顯示分頁。

顯示分頁最簡單的方式是將檔案misc/pager.template引用進來,該檔案已經包含所有顯示分頁必需的內容。

你可以在main.templatefooter.template的最底部(分頁顯示的確切位置,可能會依照模版的不同而有所差別)加入以下程式碼:

{include file="misc/pager.template" style="links"}

style 後的參數值可以使用下面的任何值來取代:

  • links 會顯示一個基本的水平樣式的分頁連結,包含 "Next" 和 "Prev" 的連結,這兩個連結顯示與否會依照目前頁數和全部頁數的關係而自動調整。
  • forwardonly 在必要的時候,只會顯示前往下一頁的連結(在最後一頁時則不顯示連結)。
  • backonly 在必要的時候,只會顯示往前一頁的連結(因此,在第一頁時則不顯示連結)。

底下是提供給分頁使用的CSS樣式名稱:

  • 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 檔案中的適當地方,加上下面的內容:

{include file="misc/pager.template" style="links"}

分頁顯示的位置,會依照目前頁面的樣式而定。

取得迴響和引用的正確數字

直到LifeType 1.0 版為止,使用 $post->getNumComments() 會傳回所有非垃圾迴響的數目,而$post->getTotalTrackbacks() 則會傳回所有非垃圾引用的數目。

For consistency reasons, LifeType 1.1 fixes this issue and now the methods have been fixed:
  • $post->getTotalComments(): 傳回非垃圾迴響的數目。
  • $post->getTotalTrackbacks(): 傳回非垃圾引用的數目。
  • $post->getNumComments(): 傳回所有迴響的數目(包括垃圾迴響和正常迴響)。
  • $post->getNumTrackbacks(): 傳回所有引用的數目(包括垃圾引用和正常引用)。

When porting templates from LifeType 1.0.x to LifeType 1.1, please remember to replace all occurrences of getNumComments() with getTotalcomments() or else the comment counters will show confusing values.