日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dedecms代码研究三

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dedecms代码研究三 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上次,我們從dedecms的index.PHP文件中了解到了很多信息,也提出了一些問題:

1)加載了/include/common.inc.php,里面做了哪些工作?2)/include/arc.partview.class.php到底是干什么的,/include/下還有很多arc開頭的文件都是干什么的?3)MfTemplet這個函數到底對模板文件路徑這個字符串做了什么操作?4)partview類的相關方法都有什么秘密?

本文開始就帶著前面的問題,繼續我們的dedecms之旅吧。


我們就先來看看common.inc.php里面都有什么吧

?

//error_reporting(E_ALL); error_reporting(E_ALL || ~E_NOTICE); define('DEDEINC', str_replace("\\", '/', dirname(__FILE__) ) ); define('DEDEROOT', str_replace("\\", '/', substr(DEDEINC,0,-8) ) ); define('DEDEDATA', DEDEROOT.'/data'); define('DEDEMEMBER', DEDEROOT.'/member'); define('DEDETEMPLATE', DEDEROOT.'/templets');
。。。。。。。。。。。。。。。。。。。。。。
define('DEDEMODEL', './model');
define('DEDECONTROL', './control');
define('DEDEAPPTPL', './templates');

//系統配置參數
require_once(DEDEDATA."/config.cache.inc.php");

//數據庫配置文件
require_once(DEDEDATA.'/common.inc.php');

?

打開/include/common.inc.php里面的注釋已經說地比較清楚了。我們大概說說結構。

先是定義一堆常量。然后是做一些安全措施,對PHP的系統環境進行一些設置,代碼里面的注釋已經寫地很清楚了。

接下來是把dedecms的系統配置參數文件包含進來:require_once(DEDEDATA."/config.cache.inc.php");

看文件名字,我們猜測這個配置文件可能是數據庫里面的配置信息的緩存。

接下來加載了數據庫配置信息文件:require_once(DEDEDATA.'/common.inc.php');

這個文件,不是根據數據庫中信息生成的緩存,而是dedecms安裝的時候生成的。前一篇文章我們說過index.php文件開始,檢測dedecms是否安裝,就是看這個文件是否存在的。

再接下來,整理了很多目錄,比如:站點根目錄、模板目錄,插件目錄、數據目錄等,還整理了很多變量。最后加載了數據庫操作類dedesql.class.php和常用函數文件common.func.php

嗯,common.inc.php的謎底揭開,里面沒什么好玩的東西啦,都是最基本的東西。

?
接下來我們就得看看arc.partview.class.php吧,這里面可是dedecms關鍵呢

加載了channelunit.class.php,typelink.class.php,ftp.class.php

?下面就是partview類的定義啦

因為index.php中使用partview類的SetTemplet方法SaveToHtml方法,所以,我們為了能更簡單地深入,就從這兩個方法著手。

我們先看看partview的構造函數。

創建了一個DedeTagParse類的實例,看名字是標簽解析類哦。然后設置了幾個參數。

接下來,new了一個TypeLink類,設置了一堆參數。搞的很云里霧里的。

?
一、看看SetTemplet吧。啊,這個還算簡單。

① 使用DedeTagParse類的LoadTemplet方法載入模板。

② 設置一些Fields數組的元素

③ 調用ParseTemplet方法。
ParseTemplet方法里面弄了一堆$GLOBALS數組的元素,然后調用了MakeOneTag函數。費解啊

?

二、再看看SaveToHtml方法吧
前面就是建目錄,最后用DedeTagParse的SaveTo方法保存到文件。

?
呃~不給力啊。

只能回頭想想,都看到了什么~

嗯,為了能生成首頁,搞了個很搞不懂的partview類,然后里面調用了貌似萬能的DedeTagParse方法,解析模板,生成靜態文件。

僅此而已。

里面還夾雜了其他函數和類,但不管怎么樣這個DedeTagParse是重點,下次得重點分析了。

今天就到這吧,鳥兒的~太亂了,一點章法都沒有

轉載于:https://www.cnblogs.com/ronghua/p/5935820.html

總結

以上是生活随笔為你收集整理的dedecms代码研究三的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。