Porting Templates

Porting Templates

出自LifeType 中文文件計畫

(修訂版本間差異)
跳轉到: 導航, 搜尋
(文章分頁)
(取得迴響和引用的正確數字)
第93行: 第93行:
請務必記得,當你將LifeType 1.0.x的模版移值到LifeType 1.1時,一定要將所有已經存在的getNumTrackbacks() 取代為getTotalTrackbacks(),否則引用的計數可能會有所出入。
請務必記得,當你將LifeType 1.0.x的模版移值到LifeType 1.1時,一定要將所有已經存在的getNumTrackbacks() 取代為getTotalTrackbacks(),否則引用的計數可能會有所出入。
 +
 +
 +
另外,以 '''$blog->getViewedTotal()''' 傳回瀏覽總數的功能從 LifeType 1.1 後取消,以後也不會再加上去,請務必移除,否則網頁將無法正常顯示。(原討論)

在2006年10月30日 (一) 09:13所做的修訂版本

目錄

移植模版到 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 後取消,以後也不會再加上去,請務必移除,否則網頁將無法正常顯示。(原討論)