/********************************************************************************/
/* Crossday Discuz! Board */
/* ======================== */
/* 歡迎使用 Discuz! 論壇,在您開始使用之前,請務必完整閱讀本軟件附帶的全部說明檔 */
/********************************************************************************/
/* Welcome to http://www.crossday.com & http://www.Discuz.net */
/********************************************************************************/
=== Discuz! 界面定制說明 ===
本文檔將對 Discuz! 2.0 以來的模板和風格方案及修改方法做必要的說明,如果您熱衷於
使用個性化的界面,請務必仔細閱讀本文檔,它會給您的工作帶來切實的幫助.
Discuz! 自 2.0 以來內建了極為強大和高效的編譯模板功能,基於 Crossday Studio 獨
有的編譯模板內核,您可以輕鬆的擁有以下功能:
多模板 - 一個論壇可以擁有多個完全不同的模板套系;
多界面 - 基於模板的配色與字型參數自定義,根據模板的不同可定義不同內碼和不同語言;
多語言 - 全部語言信息保存在語言包中,修改界面只需修改語言包中的變量內容,不同分
論壇可以擁有自己的語言提示;
基於以上功能,Discuz! 具有以下先進特性:
風格搭配更自由,支持替換變量,論壇風格自由論壇與匹配不同的模板套系;
每個分論壇可以使用不同的界面風格和語言,用戶也選擇自己的風格界面;
由於模板中已包含了各種常用的邏輯關係系,實現用最少數量的模板建立複雜頁面;
界面風格打包和發佈更加容易,支持默認模板和自定模板的無縫連接;
Discuz! 的模板採用文件保存,默認模板保存在 ./templates/default/ 目錄中,該目錄下
*.htm 文件是模板文件, *.lang.php 是語言包 文件,默認模板的目錄不能被修改,而且不能被
刪除,否則將導致嚴重的問題.
默認模板必須包含全部的模板文件和語言包,但自定義模板則只需包含與默認模板有差別的
文件即可,未被包含的文件(模板或語言包),系統會自動讀取默認模板中的內容.例如自定義界
面只修改了 header.htm 模板,在模板目錄中只包含 header.htm 即可了.
自定義模板中的語言包只對該目錄內包含的模板(htm)有效,不會影響到未被包含的模板和
默認模板的語言信息.
如果需要導出論壇界面,系統會自動判斷該方案使用的模板是默認模板或是自定義模板.如
果使用的是自定義模板,導出的內容中將會包含所用到自定義模板的全部內容.因此,除了導出的
文件以外,則只需打包含界面所使用的圖片目錄即可發佈您的界面方案了.導出文件名
dz_style_x.txt,該文件可用記事本打開,為了避免內部錯誤和提高粘貼的速度,文件採用每行
50 字的 base64 編碼,以 Discuz! 2.0 為例,格式如下:
==========================================================================
# Discuz! Style Dump
# Version: Discuz! 2.0
# Time: 2002-12-21 10:25 AM
# From: Discuz! Board (http://discuz.net/)
#
# This file was BASE64 encoded
#
# Discuz! Community: http://www.Discuz.net
# Please visit our website for newest infomation about Discuz!
# --------------------------------------------------------
YTo5OntzOjQ6Im5hbWUiO3M6NDoieG1hcyI7czoxMDoidGVtcG
xhdGVpZCI7czoxOiI0IjtzOjc6InRwbG5hbWUiO3M6NDoieG1h
cyI7czo3OiJjaGFyc2V0IjtzOjY6ImdiMjMxMiI7czo5OiJkaX
JlY3RvcnkiO3M6MTY6Ii4vdGVtcGxhdGVzL3htYXMiO3M6OToi
...
...
==========================================================================
!! 強烈建議您不要修改默認模板的任何內容 !!
如果需新增了自己的模板套系,建議將其放在 ./templates/xxx/ 目錄中,這將給維護和
升級帶來巨大的方便.
Discuz! 自 2.0 以來,率先將編譯模板技術在商業產品中實現,使得模板技術的應用有了
本質的飛躍,不僅解決了困擾已久的速度瓶頸問題,而且模板中包含豐富易用的邏輯功能,又完
美解決了模板的,使得一個模板足以容納一個頁面的全部信息,而不必再像以往那
樣必須用十幾個小模板才能完成一個具有邏輯功能的頁面.將為界面的擴充帶來極大方便--
只需修改模板就可實現一些基本的頁面功能而不必改動程序.
Discuz! 2.0 的模板採用近似 PHP 表達式的語法,支持的元素如下:
1.
邏輯元素包圍符,該符號用於包含條件和循環元素,其中:
statement1
statement2
statement3
為一個典型的條件模板,當條件 expr1 為真時,顯示模板 statement1 內容;否則當
expr2 為真時,顯示模板 statement2 內容,否則顯示模板 statement3 的內容.如同
其他語言中的條件控制一樣,其中 和 是非
必須的.
statement
相當於 PHP 的數組循環語句
foreach($array as $value) {
statement
}
而
statement
相當於 PHP 的數組循環語句
foreach($array as $key => $value) {
statement
}
邏輯元素包圍符在 { } 外面包含了 html 的註釋符號 ,除了為了和信息元素
相區別外,也方便了使用 Dreamweaver 和 Frontpage 之類工具編輯模板的用戶.因邏
輯元素會被識別為 html 的註釋而不被顯示,對於絕大多數用戶,邏輯元素中的內容是
完全不需要修改的,甚至修改錯一個字符就可能引起錯誤信息和整個系統無法運行.因
此通常您在修改模板的時候,不要修改模板的邏輯信息,更不要將邏輯信息內部元素(如
等)的位置,否則可能會導致錯誤.如果您的模板被不慎修改損壞,請立
即用原始模板覆蓋,即可恢覆.
對於高手而言,實際上外部的 是可以省略不寫的,可以用於某些元素在模板
中的定位,但強烈建議普通用戶不要輕易嘗試.
2. { ... }
信息元素包圍符,其中
{CONSTANT}
可以引用界面替換變量,其中必須為大寫字母,該符號實際的作用是引用 PHP 常量
CONSTANT,因此也可以通過它來引用其他的常量內容.
{lang variable}
可以在模板中引用語言變量 variable 的內容,語言變量經由 templates.php.lang
中數組 $language 定義.
如 {lang post_edit} 的內容在編譯模板的時候被替換為 $language['post_edit']
的內容,簡體中文版的意思是 "編輯貼子".
3. {template name}
模板嵌入符,為了避免模板的冗長,可以使用本符號來將 name 模板的內容嵌入本模板
中(實際上為引用).
4. {eval statement}
運行 PHP 語句體 statement.推薦只在特別必須的時候才使用該結構,因為它會破壞
模板的結構和可讀性.
如 {eval echo 'template!';} 實現的功能為 echo 'template';
5. {LF}
換行符,因為 Discuz! 模板引擎會忽略掉多於的換行行(\n),這個符號用來成生需要
的 \n.
我們所推薦的模板修改方法:通過普通編輯器手工書寫 html 或通過 Dreamweaver 或
Frontpage 修改.但是修改需切記,同一邏輯元素內或嵌套中元素的位置和內容切勿
修改,即通常情況下,您不能把 包圍的內容單獨的移動,更不能刪除.但是整個最
外部邏輯結構是可以移動或刪除的.
如果修改後模板所在頁面在輸出類似如下的錯誤信息 Parse error: parse error,
unexpected '}' in D:\FoxServ\www\dc\forumdata\templates\1_login.tpl.php on line 6.
說明模板中出現了非匹配,或格式錯誤的邏輯元素,請仔細檢查是否有元素不對應,沒有結束或
嵌套損壞,格式錯誤的現象,必要時可以恢覆原始模板來解決問題.
Discuz! 提供了方便的界面打包程序,前面已對其格式做了介紹,將導出信息的內容粘貼
到系統設置 中 風格方案 中的 導入界面方案中,執行即可.程序會自動解析數據內容,恢覆
相關的界面設置,自定義替換變量和需要的模板文件(如果使用非默認模板).如果需要導入非
默認的模板,必須將 ./templates 目錄屬性設置為 777.如果設置 777 後仍提示無法建立目
錄,此為空間限制所造成,請按照提示導出的目錄用 FTP 手工建立,如
./templates/myTemplate 並設置屬性 777,再用數據導入即可成功完成.
再次強烈建議您不要修改默認模板的內容,不當的修改默認模板可能導致整個系統的運行
故障.如果需要新增界面和修改模板,請通過新增模板套系的方法來實現,這將給日後的升級和
維護帶來巨大好處.
助您使用愉快,並在自己動手 DIY Discuz! 界面風格的中得到滿足.
Crossday Studio, 2003-1-3 12:00
http://www.Discuz.net
http://www.crossday.com
               (
geocities.com/hk/tyreal_kw)                   (
geocities.com/hk)