discuz 框架也算是比較流行的社區論壇框架,discuz 的基礎架構采用世界上最流行的 web 編程組合 PHP + MySQL 實現,是一個經過完善設計,適用於各種服務器環境的高效論壇系統解決方案。
1、安裝 discuz
先下載 discuz 的安裝包,解壓之后有3個文件,如下:
然后把 upload 文件夾(另兩個文件不用管)移動到本地服務器主機文件夾里(比如 htdocs),把 upload 文件夾的名字改成項目名(比如 discuz),再在地址欄輸入 http://localhost/phpMyAdmin,添加一個數據庫(庫名就叫 discuz),如下:
再在地址欄輸入 http://localhost/discuz,進入 discuz 安裝流程,在第三步的時候,填寫內容如下:
這樣 discuz 就算是安裝完了。
2、discuz 運行流程
比如:本地服務器主機文件夾找到剛剛移進去的 discuz 文件夾(沒改名的話就是 upload), 打開 home.php 文件
require_once libfile() 這個方法表示它會去找 source/module 目錄里的文件,home/.$mod 表示文件名(比如:http://localhost/discuz/home.php?mod=invite 表示找到 module/home/home_invite.php),然后在 home_invite.php 里面會有一個叫 include_once 方法(比如 include_once template('home/invite') 表示會打開 template/default/home/invite.htm),運行里面的代碼。
3、創建一個新的模板風格,以便開發
打開 template 文件夾,創建一個新目錄如:template/test;
將 template/default 目錄下的
這四個文件復制到 test 文件夾,將 discuz_style_default.xml 文件名改成 discuz_style_test.xml,然后打開
修改文件中以下四個參數:
<item id="templateid"><![CDATA[1]]></item> 指定初始化templateid,這里不要和現有安裝風格的id相同,把數字1改成另一個數字;
<item id="tplname"><![CDATA[默認模板套系]]></item> 指定擴展風格套系的名稱,例如:test。
<item id="directory"><![CDATA[./template/default]]></item> 指定擴展風格所在的文件夾,這個文件夾的名字就是你剛才在template新建的test。
另外我們復制的配置文件中需要我們特別注意的就是以下兩個參數:
<item id="styleimgdir"><![CDATA[]]></item> 此參數為擴展目錄地址,例如:template/test/cmsoft,在 test 文件夾創建 cmsoft 文件夾;
<item id="imgdir"><![CDATA[]]></item> 此參數為風格基礎圖片存放的目錄,默認使用地址 static/image/common/ 目錄,一般我們只需要留空就行了。
在 test 文件夾創建必要的子目錄與文件如:template/test/common,template/test/common/extend_common.css,template/test/common/extend_module.css;
其中 common 目錄為公共模板目錄,其內部新建的 extend_common.css、extend_module.css 為擴展型 CSS 文件,它們可以在 template/default/common/common.css 的和
module.css 的基礎上進行 CSS 代碼的覆蓋性擴展。
登錄 discuz 后台(http://localhost/discuz/admin.php),輸入安裝的時候填的管理員賬戶密碼,在界面的版塊下找到風格管理,會多了一個 test 的風格,點擊安裝。
4、discuz 調用模塊
比如:打開 template/default/common/header.htm,第一行代碼<!--{subtemplate common/header_common}-->表示 common 目錄下 header_common.html 文件的內容。
在 header_common.html 里有一段 js 代碼,定義的一些變量,用的比較多的就是 discuz_uid(用戶 ID)、JSPATH(js 路徑)、CSSPATH(css 路徑)等。在新增頁面時,只需要在第一行代碼和最后一行代碼寫上 <!--{template common/header}--> 和 <!--{template common/footer}-->,很明顯這表示頁面公用的頭部和尾部內容,然后中間開發自己寫的代碼就行。