discuz簡明入門教程

一、整個站點的基本結構:

  1、首先,介紹網站最主要的三個文件夾:root\source\root\template\root\static\,分別是代碼文件夾、模版文件夾、靜態文件夾(jscssimage)

  2、其次,介紹一些基本的控制文件。

  入口文件[ root\xxx.php ],包括forum.phpportal.phphome.php等,作用是控制頁面的轉向,每一個入口文件中都包含了內核(core_class)、方法(function_xxx)、模塊(module)三個最主要的部分。該文件的工作流程是先引用內核文件進行初始化,然後引用方法文件聲明和定義需要調用的函數,最後在模塊文件中執行相關的函數,而整個入口文件的作用僅僅只是區分入口,引入相對入口所需的文件,以及根據提交的$_GET['mod']來判斷要轉向的模塊,真正執行代碼的部分是在模塊文件中。

  方法文件[ root\source\function\function_xxx.php ],定義和聲明函數方法的文件。該文件中全部都是function,因此該文件執行時什麼都不會出現,因爲什麼都不會被執行。

  模塊文件[ root\source\module\xxx\ccc.php ],調用方法以及執行邏輯語句所在的文件,由$_GET['mod']來選擇,執行完畢之後調用靜態模版,這樣靜態模版上就可以直接取到程序執行是所得到的數據。

  模版文件[ root\template\xxx\ccc.htm ],被模塊文件所調用,可以執行一些php語句來輸出數據。

  內核文件[ root\source\class\*.php ],系統的一些內核代碼,其中的core_class.php中包括了初始化函數,可以在裏面加入一些初始化代碼以及全局數據。

  3、還有的就是一些比較特殊的文件夾,比如[ root\template\common\ ]中的文件,有一些是共用的,比如headfootcommon.css等。

二、網站的工作原理

  首先,我們先來看一下URL地址:

  http://localhost/forum.php?mod=forumdisplay&fid=38

  從這個URL中我們可以得到一些信息:入口文件forum.phpmod=forumdisplayfid=38

  接下來,程序走過的路線就是先進入forum.php的代碼段,打開文件,一開始就有兩句引入:

  require './source/class/class_core.php';

  require './source/function/function_forum.php';

  一個是內核、一個是方法函數。然後往下看,又出現了一個賦值語句

  $mod = !in_array($discuz->var['mod'], $modarray) ? 'index' : $discuz->var['mod'];

  這一句的作用就是判斷傳過來的mod值是否有效,有效的話就引入有效的模塊,若無效則引入默認的index模塊。

  最後就是引用模塊 require DISCUZ_ROOT.'./source/module/forum/forum_'.$mod.'.php';

  打開source/module/forum/forum_forumdisplay.php,裏面就是獲得數據的代碼了。其中一開始就有

  $_G['action']['fid'] = $_G['fid']; 一句,也就是fid在這裏被獲取了。下面如何獲取數據之類之類的我就不在此說明了,大致都是調用function裏面的函數,然後有個返回值……我們直接看最後

  if(!defined('IN_ARCHIVER')) {

    include template($template);

  } else {

    include loadarchiver('forum/forumdisplay');

  }

  好了在此調用模版文件,然後數據就可以在模版文件上輸出了。

 三、一些要注意的地方

  模版文件中使用的是標籤來替代php語句,詳細的資料請查閱官方的相關文檔(或者隨便開一個模版,裏面還有的標籤都有,依葫蘆畫瓢),實在無法使用標籤的時候,可以試試{eval php語句}來執行。

  template文件夾中的文件修改後要在管理中心更新緩存纔會生效。特別是common.css那個該死的文件。

  root/data/文件夾中的文件不全是臨時緩存,不能一口氣刪掉(刪掉的話就哭去吧)

  source/class/block/中的模塊是可以修改的,詳情請看 http://hi.baidu.com/xxfaxy/blog/item/f28dde62d4069dc1e7113afb.html

 

以上是本人的一些愚見,作爲一個Discuz的初學者,感覺官方的資料有些晦澀,對於初學者來說比較難以理解,謹此文獻給廣大入門的初學的盆友們。

網上搜到的文獻資料:

phpcmsUCenter的通信方法:url已丟失

Discuz X2 數據字典:http://wiki.blueidea.com/index.php?title=Discuz!X/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%97%E5%85%B8

如何DIY門戶:http://tech.cncms.com/cms/discuz/77137.html

門戶單網頁製作:http://www.discuz.net/thread-2233010-1-1.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章