Porting Templates |
出自LifeType 中文文件計畫
目錄 |
移植模版到 LifeType 1.1
針對LifeType 1.0 設計的模版,在沒有移植的情況下,也可以正常的在LifeType 1.1版中使用。但是它可能無法使用最新的功能,例如:分頁功能。
下面的內容將提供給對移植模版感興趣的使用者做為參考,說明在模版移值的過程中,那些模版檔案是必需加以修改的。
文章分頁
LifeType 1.1會依據整個部落格、某個月份的匯整或是某個目錄下的文章或檔案數目,自動在首頁產生分頁。但是,我們必需使用一些額外的Smarty語法來顯示分頁。
顯示分頁最簡單的方式是使用Smarty 的 {pager} 函數,該函數已經包含所有顯示分頁必需的相關邏輯內容。
你可以在main.template 或 footer.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 後取消,以後也不會再加上去,請務必移除,否則網頁將無法正常顯示,詳情請見 原討論。