/********************************************************************************/ /* 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