Porting Templates

Porting Templates

出自LifeType 中文文件計畫

(修訂版本間差異)
跳轉到: 導航, 搜尋
(檔案分頁)
當前修訂版本 (2006年10月30日 (一) 09:25) (檢視原始碼)
(移除瀏覽總數)
 
(24個中途的修訂版本沒有顯示。)
第10行: 第10行:
LifeType 1.1會依據整個部落格、某個月份的匯整或是某個目錄下的文章或檔案數目,自動在首頁產生分頁。但是,我們必需使用一些額外的Smarty語法來顯示分頁。
LifeType 1.1會依據整個部落格、某個月份的匯整或是某個目錄下的文章或檔案數目,自動在首頁產生分頁。但是,我們必需使用一些額外的Smarty語法來顯示分頁。
-
顯示分頁最簡單的方式是將檔案'''misc/pager.template'''引用進來,該檔案已經包含所有顯示分頁必需的內容。
+
顯示分頁最簡單的方式是使用Smarty 的 {pager} 函數,該函數已經包含所有顯示分頁必需的相關邏輯內容。
你可以在'''main.template''' 或 '''footer.template'''的最底部(分頁顯示的確切位置,可能會依照模版的不同而有所差別)加入以下程式碼:
你可以在'''main.template''' 或 '''footer.template'''的最底部(分頁顯示的確切位置,可能會依照模版的不同而有所差別)加入以下程式碼:
<pre>
<pre>
-
{include file="misc/pager.template" style="links"}
+
{pager style="links"}
</pre>
</pre>
第21行: 第21行:
* '''links''' 會顯示一個基本的水平樣式的分頁連結,包含 "Next" 和 "Prev" 的連結,這兩個連結顯示與否會依照目前頁數和全部頁數的關係而自動調整。  
* '''links''' 會顯示一個基本的水平樣式的分頁連結,包含 "Next" 和 "Prev" 的連結,這兩個連結顯示與否會依照目前頁數和全部頁數的關係而自動調整。  
-
* '''forwardonly''' 在必要的時候,只會顯示前往下一頁的連結(在最後一頁時則不顯示連結)。
+
* '''nextonly''' 在必要的時候,只會顯示往下一頁的連結(在最後一頁時則不顯示連結)。
-
* '''backonly''' 在必要的時候,只會顯示往前一頁的連結(因此,在第一頁時則不顯示連結)。
+
* '''prevonly''' 在必要的時候,只會顯示往上一頁的連結(因此,在第一頁時則不顯示連結)。
-
底下是提供給分頁使用的CSS樣式名稱:
+
分頁函數也支援以下參數:
 +
* '''separator''': 當使用 "link" 樣式時,用來做為頁碼分隔的字元,預設值為空白字元。
 +
* '''disablediv''': 指定包夾住分頁的div標籤名稱。預設值是沒有。
 +
* '''next''': 下一頁連結的名稱或是翻譯名詞。預設為語系檔中的next_post後的對應值。
 +
* '''previous''': 前一頁連結的名稱或是翻譯名詞。預設為語系檔中的previous_post後的對應值。
 +
 
 +
 
 +
(James 補充:在中文語系下,建議將
 +
<pre>
 +
{pager style="links"}
 +
</pre>
 +
修改成
 +
<pre>
 +
{pager style="links" next="下一頁" previous="上一頁"}
 +
</pre>
 +
因在中文語系中next_post和previous_post分別為前、後篇。因此使用上述的參數,自訂前後頁的文字說明會較為貼切。)
 +
 
 +
底下是提供給分頁使用的CSS樣式(CSS classes)名稱:
* '''pagerLink''': 分頁連結樣式。
* '''pagerLink''': 分頁連結樣式。
第31行: 第48行:
* '''pagerCurrent''': 目前所在頁面樣式(無連結樣式)。
* '''pagerCurrent''': 目前所在頁面樣式(無連結樣式)。
-
以上這些樣式,應該夠用來設計一個符合模版整體設計的分頁外觀。不管未來是否有客製化的需要,你甚至可以使用上面不同的風格樣式來創造自己風格的分頁。
+
以上這些樣式,應該夠用來設計一個符合模版整體風格的分頁外觀。不管未來是否有客製化的需要,你甚至可以使用上面不同的樣式來創造屬於自己風格的分頁。
== 檔案分頁 ==
== 檔案分頁 ==
第59行: 第76行:
<pre>
<pre>
-
{include file="misc/pager.template" style="links"}
+
{pager style="links"}
</pre>
</pre>
第66行: 第83行:
== 取得迴響和引用的正確數字 ==
== 取得迴響和引用的正確數字 ==
-
Up to version 1.0 of LifeType, the call $post->getNumComments() returned the number of non-spam comments while $post->getTotalTrackbacks() returned the number of non-spam trackbacks. For consistency reasons, LifeType 1.1 fixes this issue and now the methods have been fixed:
+
直到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(),否則引用的計數可能會有所出入。
-
* '''$post->getTotalComments()''': returns the number of non-spam comments.
+
== 移除瀏覽總數 ==
-
* '''$post->getTotalTrackbacks()''': returns the number of non-spam trackbacks.
+
-
* '''$post->getNumComments()''': returns the total number of comments (both spam and non-spam)
+
-
* '''$post->getNumTrackbacks()''': returns the total number of trackbacks (both spam and non-spam)
+
-
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.
+
以 '''$blog->getViewedTotal()''' 傳回瀏覽總數的統計功能從 LifeType 1.1 後取消,以後也不會再加上去,請務必移除,否則網頁將無法正常顯示,詳情請見 [http://forum.lifetype.org.tw/index.php?topic=2829.0 原討論]。

當前修訂版本

目錄

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