POST TIME:2020-03-30 17:08
最近給一兄弟做一個類似DZ的archiver功能的插件。
經過我的3次誤解,終于把程序弄好了。。。
然后我對DedeCMS 5.3也有了一些了解。下面隨便扯扯心得,高手莫笑。
發布單頁文檔和更新單頁文檔時,斷點設在inc_archives_functions.php中MakeArt函數處。
$reurl = $arc->MakeHtml();
從這行跟進去到arc.archives.class.php中。
這個類文件是個關鍵類文件,用于處理提交上來的文章。(靜態動態都處理,不是只生成HTML)
LoadTemplet()方法,看名字就知道作用是載入模板。具體追進去可以看到需要哪些變量載入。這個對我來說比較重要,因為要發一篇文章用到2中模板的話,需要看看需要哪些變量以確定模板的路徑和名稱。
為了兼容PHP4,織夢的CLASS都是PHP4的風格,沒有privite protect的聲明,默認的function和var在類外面都是可見和可修改的。
于是追出了具體的變量,我在類外面進行修改,然后再調用MakHtml()方法即可完成我想要的效果--載入另一個模板生成到指定路徑。
細細看看每行代碼,可以看到代碼還是有些不規范的,不說變量命名規則,比較顯而易見的是類似$GLOBALS["cfg_basedir"]的寫法,同一文件中別的地方數組的字符下標那里都用得單引號,這里用的卻是雙引號 。。。規范化的路還是有一段要走,呵呵。
更新所有文檔時的動作在 makehtml_archives_action.php 中,斷在$rurl = $ac->MakeHtml(); 原理和上面說的一樣。
上一篇:dede的使用技巧 我的使用心得
下一篇:5.7使用心得之TAGS優化