Porting Templates

Porting Templates

出自LifeType 中文文件計畫

(修訂版本間差異)
跳轉到: 導航, 搜尋
(文章分頁)
當前修訂版本 (2006年10月30日 (一) 09:25) (檢視原始碼)
(移除瀏覽總數)
 
(30個中途的修訂版本沒有顯示。)
第4行: 第4行:
針對LifeType 1.0 設計的模版,在沒有移植的情況下,也可以正常的在LifeType 1.1版中使用。但是它可能無法使用最新的功能,例如:分頁功能。
針對LifeType 1.0 設計的模版,在沒有移植的情況下,也可以正常的在LifeType 1.1版中使用。但是它可能無法使用最新的功能,例如:分頁功能。
-
下面的內容將提供餒對移植模版感興趣的使用者做為參考,說明在模版移值的過程中,那些是在模版檔案中所必需做的修改。
+
下面的內容將提供給對移植模版感興趣的使用者做為參考,說明在模版移值的過程中,那些模版檔案是必需加以修改的。
== 文章分頁 ==
== 文章分頁 ==
第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''' 在必要的時候,只會顯示往上一頁的連結(因此,在第一頁時則不顯示連結)。
-
The following CSS classes are available for the pager:
+
分頁函數也支援以下參數:
 +
* '''separator''': 當使用 "link" 樣式時,用來做為頁碼分隔的字元,預設值為空白字元。
 +
* '''disablediv''': 指定包夾住分頁的div標籤名稱。預設值是沒有。
 +
* '''next''': 下一頁連結的名稱或是翻譯名詞。預設為語系檔中的next_post後的對應值。
 +
* '''previous''': 前一頁連結的名稱或是翻譯名詞。預設為語系檔中的previous_post後的對應值。
-
* '''pagerLink''': used for any of the links in the pager.
 
-
* '''pagerLinkPrevPage''': used for the "Prev" link.
 
-
* '''pagerLinkNextPage''': used for the "Next" link.
 
-
* '''pagerCurrent''': used for the current page, which will not be linked.
 
-
Usually it will enough to add the Smarty code listed above and make sure that the pager fits with the overall design of the page. In cases where further customization is needed, it is possible to use the different available styles and even create our own custom pager.
+
(James 補充:在中文語系下,建議將
 +
<pre>
 +
{pager style="links"}
 +
</pre>
 +
修改成
 +
<pre>
 +
{pager style="links" next="下一頁" previous="上一頁"}
 +
</pre>
 +
因在中文語系中next_post和previous_post分別為前、後篇。因此使用上述的參數,自訂前後頁的文字說明會較為貼切。)
 +
 
 +
底下是提供給分頁使用的CSS樣式(CSS classes)名稱:
 +
 
 +
* '''pagerLink''': 分頁連結樣式。
 +
* '''pagerLinkPrevPage''': "上一頁" 連結樣式。
 +
* '''pagerLinkNextPage''': "下一頁" 連結樣式。
 +
* '''pagerCurrent''': 目前所在頁面樣式(無連結樣式)。
 +
 
 +
以上這些樣式,應該夠用來設計一個符合模版整體風格的分頁外觀。不管未來是否有客製化的需要,你甚至可以使用上面不同的樣式來創造屬於自己風格的分頁。
== 檔案分頁 ==
== 檔案分頁 ==
-
As with articles, resources are also displayed in a paged fashion since LifeType 1.1.
+
和文章相同的,在LifeType 1.1中檔案也使用趕流行的分頁方式。
-
Unlike with articles, it is necessary to make an additional change to our template in order to get a paged display of resources. If these changes are not made, we will get the normal non-paged display of resources where all of them are displayed in one single page.
+
和文章不同的是,要讓檔案支援分頁顯示,必需對模版檔案做額外的修改。如果沒有加上這些修改,那麼將會得到和平常一樣沒分頁的效果,將所有的檔案全部在一個頁面中顯示出來。
-
In '''album.template''' find the following Smarty code:
+
'''album.template''' 檔案中找到以下的Smarty 程式碼:
<pre>
<pre>
第46行: 第63行:
</pre>
</pre>
-
And replace it with the following:
+
將它用以下的程式碼取代:
<pre>
<pre>
第52行: 第69行:
</pre>
</pre>
-
The difference in this case is tha the $resources array has already been preset wtih only the resources that should be displayed in this page, while the previous version will load all the resources in the album. From a performance point of view, it is also a better solution.
+
在這個例子中不同的是 $resources 這個陣列已經被預設為在該頁面中會顯示的檔案,但在之前的版本中,該陣列會載入該資料夾中所有的檔案。站在系統效能的觀點來看,這應該是比較好的解決方法。
-
Now in order to get the pager displayed, we have to apply the same solution that was applied for paged posts via '''misc/pager.template'''. The pager works in exactly the same way regardless of whether it is being used to page posts or resources so no extra changes are required.
+
接下來顯示分頁的方法,和文章分頁是一樣的,同樣是透過'''misc/pager.template'''這個檔案。不管是文章分頁或是檔案分頁,它們運作的原理都一樣,因此在分頁顯示這個部份並不需要額外的修改。
-
Somewhere in album.template, we will have a line like this:
+
album.template 檔案中的適當地方,加上下面的內容:
<pre>
<pre>
-
{include file="misc/pager.template" style="links"}
+
{pager style="links"}
</pre>
</pre>
-
The location of the pager will depend on the current style of our page.
+
分頁顯示的位置,會依照目前頁面的樣式而定。
== 取得迴響和引用的正確數字 ==
== 取得迴響和引用的正確數字 ==
-
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 後取消,以後也不會再加上去,請務必移除,否則網頁將無法正常顯示,詳情請見 原討論